" https://blog.csdn.net/weixin_42646630/article/details/106947675
ftp 服务器配置 : SAPFTP_SERVERS
&---------------------------------------------------------------------
*& Report ZHTEST_016
&---------------------------------------------------------------------
*&
&---------------------------------------------------------------------
REPORT ZHTEST_016.
TYPES: BEGIN OF XML_LINE,
DATA(255) TYPE X,
END OF XML_LINE.
DATA:
L_XML_TABLE_FORECAST TYPE TABLE OF XML_LINE,
L_RC TYPE I,
L_XML_SIZE TYPE I,
WA_XML TYPE XML_LINE,
GS_SOLIX TYPE SOLIX,
BINARY_CONTENT_FORECAST TYPE SOLIX_TAB,
SENT_TO_ALL TYPE OS_BOOLEAN,
MAIN_TEXT TYPE BCSY_TEXT,
SEND_REQUEST TYPE REF TO CL_BCS,
DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
RECIPIENT TYPE REF TO IF_RECIPIENT_BCS,
BCS_EXCEPTION TYPE REF TO CX_BCS,
MAILTO TYPE AD_SMTPADR.
DATA: L_IXML TYPE REF TO IF_IXML,
L_STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY,
L_OSTREAM TYPE REF TO IF_IXML_OSTREAM,
L_RENDERER TYPE REF TO IF_IXML_RENDERER,
L_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
DATA: L_ELEMENT_ROOT TYPE REF TO IF_IXML_ELEMENT,
R_ELEMENT TYPE REF TO IF_IXML_ELEMENT,
R_WORKSHEET TYPE REF TO IF_IXML_ELEMENT,
R_TABLE TYPE REF TO IF_IXML_ELEMENT,
R_COLUMN TYPE REF TO IF_IXML_ELEMENT,
R_ROW TYPE REF TO IF_IXML_ELEMENT,
R_CELL TYPE REF TO IF_IXML_ELEMENT,
R_DATA TYPE REF TO IF_IXML_ELEMENT,
L_VALUE TYPE STRING.
DATA : RELTYPE TYPE CHAR1 VALUE ‘1’ .
DATA: L_USER(30) TYPE C VALUE ‘Gavin.zuo’, "用户名
L_PWD(30) TYPE C VALUE ‘Aa@123456’, "密码
L_HOST(64) TYPE C VALUE ‘10.0.8.109’, "FTP服务器地址
L_PATH(64) TYPE C VALUE ‘/sap_fi’, "路径
L_RC2(1),
L_DEST TYPE RFCDES-RFCDEST VALUE ‘SAPFTP’. "前端:sapftp 后台运行:sapftpa.
*DATA: L_USER(30) TYPE C VALUE ‘Gavin.zuo’, "用户名
-
L_PWD(30) TYPE C VALUE 'Aa@123456', "密码
-
L_HOST(64) TYPE C VALUE '10.0.8.109', "FTP服务器地址
-
L_PATH(64) TYPE C VALUE '/sap_fi', "路径
DATA: L_HANDLE TYPE I,
L_COMMAND(255) TYPE C,
L_COMMAND2(255) TYPE C,
L_COMMAND3(255) TYPE C,
L_RESULT TYPE TABLE OF TXMISPOROW,
L_FILENAME TYPE RLGRAP-FILENAME,
L_PWDLENGTH TYPE I,
L_LENGTH TYPE I,
L_FTPPWD(255) TYPE C,
L_KEY TYPE I VALUE 26101957,
L_ENCODING TYPE ABAP_ENCODING VALUE ‘8400’.
FIELD-SYMBOLS:
<LS_FLIGHT> TYPE SFLIGHT.
-
create a ixml factory
L_IXML = CL_IXML=>CREATE( ). -
create the DOM object model
L_DOCUMENT = L_IXML->CREATE_DOCUMENT( ). -
create workbook
PERFORM CREATE_WORKBOOK USING L_DOCUMENT
R_WORKSHEET
R_TABLE. -
column formatting
CASE RELTYPE.
WHEN 1.
PERFORM FRM_FORECAST_COLUMN_FORMAT USING L_DOCUMENT R_TABLE.
WHEN 2.
WHEN OTHERS .
ENDCASE.
SELECT * INTO TABLE @DATA(GT_OUTPUT) FROM T001 .
LOOP AT GT_OUTPUT INTO DATA(GS_OUTPUT) .
R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Row’ PARENT = R_TABLE ).
- R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
- L_VALUE = GS_OUTPUT-PARTNER.
- R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ).
- R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = GS_OUTPUT-BUKRS .
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
*** 风险类 RISK_CLASS
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = GS_OUTPUT-BUTXT.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
ENDLOOP .
-
creating a stream factory
L_STREAMFACTORY = L_IXML->CREATE_STREAM_FACTORY( ). -
connect internal xml table to stream factory
CASE RELTYPE.
WHEN 1.
L_OSTREAM = L_STREAMFACTORY->CREATE_OSTREAM_ITABLE( TABLE = L_XML_TABLE_FORECAST ).
WHEN 2.
WHEN OTHERS.
ENDCASE. -
rendering the document
L_RENDERER = L_IXML->CREATE_RENDERER( OSTREAM = L_OSTREAM DOCUMENT = L_DOCUMENT ).
L_RC = L_RENDERER->RENDER( ). -
saving the xml document
L_XML_SIZE = L_OSTREAM->GET_NUM_WRITTEN_RAW( ).
LOOP AT L_XML_TABLE_FORECAST INTO WA_XML.
CLEAR GS_SOLIX.
GS_SOLIX-LINE = WA_XML-DATA.
APPEND GS_SOLIX TO BINARY_CONTENT_FORECAST.
ENDLOOP.
PARAMETERS : P_PARARM TYPE FLAG .
*** FTP 数据
L_PWDLENGTH = STRLEN( L_PWD ).
IF SY-BATCH = ‘X’.
L_DEST = ‘SAPFTPA’.
ELSE.
L_DEST = ‘SAPFTP’.
ENDIF.
*******开始FTP传输数据
CALL FUNCTION ‘HTTP_SCRAMBLE’ "密码加密
EXPORTING
SOURCE = L_PWD
SOURCELEN = L_PWDLENGTH
KEY = L_KEY
IMPORTING
DESTINATION = L_FTPPWD.
"创建FTP连接
CALL FUNCTION ‘FTP_CONNECT’
EXPORTING
USER = L_USER
PASSWORD = L_FTPPWD
HOST = L_HOST
RFC_DESTINATION = L_DEST
IMPORTING
HANDLE = L_HANDLE
EXCEPTIONS
NOT_CONNECTED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ‘FTP path error’ TYPE ‘S’ DISPLAY LIKE ‘E’.
LEAVE LIST-PROCESSING.
ENDIF.
L_RC2 = COND #( WHEN L_PATH+(1) = ‘/’ THEN ’ ’ ELSE ’ /’ ).
CONCATENATE ‘cd’ L_PATH INTO L_COMMAND SEPARATED BY L_RC2. "拼接FTP命令,这里是打开文件夹地址
CALL FUNCTION ‘FTP_COMMAND’ "执行FTP命令
EXPORTING
HANDLE = L_HANDLE
COMMAND = L_COMMAND
TABLES
DATA = L_RESULT
EXCEPTIONS
TCPIP_ERROR = 1
COMMAND_ERROR = 2
DATA_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
- PERFORM ftp_disconnect USING l_handle l_dest.
MESSAGE ‘FTP path error’ TYPE ‘E’.
ENDIF.
CALL FUNCTION ‘FTP_R3_TO_SERVER’
EXPORTING
HANDLE = L_HANDLE
FNAME = ‘FICO-DATA.xls’
BLOB_LENGTH = L_XML_SIZE
- CHARACTER_MODE = ‘’
TABLES
BLOB = BINARY_CONTENT_FORECAST
EXCEPTIONS
TCPIP_ERROR = 1
COMMAND_ERROR = 2
DATA_ERROR = 3
OTHERS = 4.
IF SY-SUBRC = 0.
- LOOP AT GT_OUT INTO GS_OUT.
- GS_OUT-RV_FLAG = ‘X’.
- MODIFY GT_OUT FROM GS_OUT.
- ENDLOOP.
ENDIF.
"关闭FTP 连接
CALL FUNCTION ‘FTP_DISCONNECT’
EXPORTING
HANDLE = L_HANDLE.
CALL FUNCTION ‘RFC_CONNECTION_CLOSE’
EXPORTING
DESTINATION = L_DEST
EXCEPTIONS
DESTINATION_NOT_OPEN = 1
OTHERS = 2.
IF SY-BATCH IS INITIAL .
DATA : FULLPATH TYPE STRING .
FULLPATH = ‘D:\123456tt.xls’ .
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
FILENAME = FULLPATH
FILETYPE = ‘BIN’
-
TABLEShas_field_separator = '#'
DATA_TAB = BINARY_CONTENT_FORECAST
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0 .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
&---------------------------------------------------------------------
*& Form CREATE_WORKBOOK
&---------------------------------------------------------------------
*& text
&---------------------------------------------------------------------
*& --> L_DOCUMENT
*& --> R_WORKSHEET
*& --> R_TABLE
&---------------------------------------------------------------------
FORM CREATE_WORKBOOK USING L_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT
R_WORKSHEET TYPE REF TO IF_IXML_ELEMENT
R_TABLE TYPE REF TO IF_IXML_ELEMENT.
DATA: L_ELEMENT_ROOT TYPE REF TO IF_IXML_ELEMENT,
NS_ATTRIBUTE TYPE REF TO IF_IXML_ATTRIBUTE,
R_ELEMENT_PROPERTIES TYPE REF TO IF_IXML_ELEMENT,
L_VALUE TYPE STRING.
- create root node ‘workbook’
L_ELEMENT_ROOT = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Workbook’ PARENT = L_DOCUMENT ).
L_ELEMENT_ROOT->SET_ATTRIBUTE( NAME = ‘xmlns’ VALUE = ‘urn:schemas-microsoft-com🏢spreadsheet’ ).
NS_ATTRIBUTE = L_DOCUMENT->CREATE_NAMESPACE_DECL( NAME = ‘ss’ PREFIX = ‘xmlns’
URI = ‘urn:schemas-microsoft-com🏢附件客户SAP信用额度已超70%,请及时维护!’ ). " urn:schemas-microsoft-com🏢spreadsheet
L_ELEMENT_ROOT->SET_ATTRIBUTE_NODE( NS_ATTRIBUTE ).
NS_ATTRIBUTE = L_DOCUMENT->CREATE_NAMESPACE_DECL( NAME = ‘x’ PREFIX = ‘xmlns’
URI = ‘urn:schemas-microsoft-com🏢excel’ ).
L_ELEMENT_ROOT->SET_ATTRIBUTE_NODE( NS_ATTRIBUTE ).
-
create node for document properties
R_ELEMENT_PROPERTIES = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘TEST_REPORT’ PARENT = L_ELEMENT_ROOT ).
L_VALUE = SY-UNAME.
L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Author’ VALUE = L_VALUE PARENT = R_ELEMENT_PROPERTIES ). -
worksheet
R_WORKSHEET = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Worksheet’ PARENT = L_ELEMENT_ROOT ).
R_WORKSHEET->SET_ATTRIBUTE_NS( NAME = ‘Name’ PREFIX = ‘ss’ VALUE = ‘导出数据’ ). -
table
R_TABLE = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Table’ PARENT = R_WORKSHEET ).
R_TABLE->SET_ATTRIBUTE_NS( NAME = ‘FullColumns’ PREFIX = ‘x’ VALUE = ‘1’ ) .
R_TABLE->SET_ATTRIBUTE_NS( NAME = ‘FullRows’ PREFIX = ‘x’ VALUE = ‘1’ ) .
ENDFORM.
&---------------------------------------------------------------------
*& Form FRM_FORECAST_COLUMN_FORMAT
&---------------------------------------------------------------------
*& text
&---------------------------------------------------------------------
*& --> L_DOCUMENT
*& --> R_TABLE
&---------------------------------------------------------------------
FORM FRM_FORECAST_COLUMN_FORMAT USING L_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT
R_TABLE TYPE REF TO IF_IXML_ELEMENT.
DATA: L_ELEMENT_ROOT TYPE REF TO IF_IXML_ELEMENT,
R_COLUMN TYPE REF TO IF_IXML_ELEMENT,
R_ROW TYPE REF TO IF_IXML_ELEMENT,
R_CELL TYPE REF TO IF_IXML_ELEMENT,
R_DATA TYPE REF TO IF_IXML_ELEMENT,
L_VALUE TYPE STRING.
DATA: LV_SHORT TYPE STRING,
LV_MEDIUM TYPE STRING,
LV_LONG TYPE STRING,
LV_EXE_DATE TYPE CHAR10,
LV_EXE_TIME TYPE CHAR10,
LV_EXE_USER TYPE STRING,
LT_MONTH_NAMES TYPE TABLE OF T247,
LS_MONTH_NAME TYPE T247,
LV_DATE_ADD TYPE SY-DATUM,
LV_COUNT TYPE I.
LV_SHORT = ‘60’.
LV_MEDIUM = ‘90’.
LV_LONG = ‘150’.
WRITE SY-DATUM TO LV_EXE_DATE.
CONCATENATE SY-UZEIT+0(2) ‘:’ SY-UZEIT+2(2) INTO LV_EXE_TIME.
LV_EXE_USER = SY-UNAME.
CALL FUNCTION ‘MONTH_NAMES_GET’
EXPORTING
LANGUAGE = SY-LANGU
TABLES
MONTH_NAMES = LT_MONTH_NAMES
EXCEPTIONS
MONTH_NAMES_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
READ TABLE LT_MONTH_NAMES WITH KEY MNR = SY-DATUM+4(2) INTO LS_MONTH_NAME.
ENDIF.
- columns and width
- line
DO 1 TIMES.
R_COLUMN = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Column’ PARENT = R_TABLE ).
R_COLUMN->SET_ATTRIBUTE_NS( NAME = ‘Width’ PREFIX = ‘ss’ VALUE = LV_SHORT ).
ENDDO.
DO 14 TIMES.
R_COLUMN = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Column’ PARENT = R_TABLE ).
ENDDO.
-
information row
R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Row’ PARENT = R_TABLE ).
R_ROW->SET_ATTRIBUTE_NS( NAME = ‘AutoFitHeight’ PREFIX = ‘ss’ VALUE = ‘1’ ). -
type
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = ‘信贷使用率超过70的客户’.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
Column Headers Row
R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Row’ PARENT = R_TABLE ).
R_ROW->SET_ATTRIBUTE_NS( NAME = ‘AutoFitHeight’ PREFIX = ‘ss’ VALUE = ‘1’ ). -
DO 3 TIMES.
-
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
-
ENDDO.
-
name
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = SY-UNAME.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
Date
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = LV_EXE_DATE.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
Time
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
L_VALUE = LV_EXE_TIME.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = L_VALUE PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
Column Headers Row
R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Row’ PARENT = R_TABLE ).
R_ROW->SET_ATTRIBUTE_NS( NAME = ‘AutoFitHeight’ PREFIX = ‘ss’ VALUE = ‘1’ ). -
mandt
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘客户’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
carrid
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘名称’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
风险
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘风险类’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
connid
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘信用额度’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘已使用额’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
-
fldate
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘使用百分比’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
敞口金额
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘敞口金额’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
冻结
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘冻结’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ). -
原因
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Cell’ PARENT = R_ROW ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = ‘Data’ VALUE = ‘原因’ PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = ‘Type’ PREFIX = ‘ss’ VALUE = ‘String’ ).
ENDFORM.