示例:仅供参考
FUNCTION ZDER0010_OUTPUT_IDOC.
*"----------------------------------------------------------------------
*"*"本地接口:
*" EXPORTING
*" VALUE(O_DOCNUM) TYPE EDI_DOCNUM
*" TABLES
*" IT_TAB STRUCTURE ZDER0010_INFO OPTIONAL
*"----------------------------------------------------------------------
CALL FUNCTION 'AB_SLEEP'
EXPORTING
WAIT_TIME = 5.
GET TIME.
DATA : LT_EDIDD TYPE EDIDD OCCURS 0, "IDOC 数据记录
LS_EDIDD TYPE EDIDD. "IDOC 数据记录
DATA:LWA_SEG_INFO TYPE ZDER0010_INFO.
*----------------------------------------------------------------------
* 整理数据
*----------------------------------------------------------------------
LOOP AT IT_TAB INTO LWA_SEG_INFO .
LS_EDIDD-SEGNAM = 'ZDER0010_INFO'.
LS_EDIDD-SDATA = LWA_SEG_INFO.
APPEND LS_EDIDD TO LT_EDIDD.
CLEAR LWA_SEG_INFO.
ENDLOOP.
DATA: V_DO_HANDLE_ERROR TYPE EDIGENERAL-ERRHANDLE,
LS_EDIDC TYPE EDIDC,
V_INBOUND_PROCESS_DATA_IN TYPE TEDE2,
LT_EDIDC TYPE STANDARD TABLE OF EDIDC.
DATA: SYSTEM_NAME TYPE CHAR10.
*获取本地系统参数
LS_EDIDC-SNDPRN = 'SYS_HUA'.
CASE SY-MANDT.
WHEN '604'.
LS_EDIDC-RCVPRN = 'SAPDEV'.
LS_EDIDC-RCVPOR = 'SAPDEV'.
WHEN '800'.
LS_EDIDC-RCVPRN = 'SAPPRD'.
LS_EDIDC-RCVPOR = 'SAPPRD'.
ENDCASE.
LS_EDIDC-RCVPRT = 'LS'.
CONCATENATE 'SAP' SY-SYSID INTO SYSTEM_NAME.
LS_EDIDC-SNDPOR = SYSTEM_NAME.
LS_EDIDC-SNDPRT = 'LS'.
LS_EDIDC-MESTYP = 'ZDER0010_MSG'. "信息类型
LS_EDIDC-IDOCTP = 'ZDER0010_IDOC'. "IDOC 类型
LS_EDIDC-DIRECT = '2'.
CALL FUNCTION 'IDOC_INBOUND_WRITE_TO_DB'
EXPORTING
* PI_STATUS_MESSAGE =
PI_DO_HANDLE_ERROR = V_DO_HANDLE_ERROR
* PI_NO_DEQUEUE = ' '
PI_RETURN_DATA_FLAG = ' '
* PI_RFC_MULTI_CP = ' '
IMPORTING
PE_IDOC_NUMBER = LS_EDIDC-DOCNUM
* PE_STATE_OF_PROCESSING =
PE_INBOUND_PROCESS_DATA = V_INBOUND_PROCESS_DATA_IN
TABLES
T_DATA_RECORDS = LT_EDIDD
* T_LINKED_OBJECTS =
CHANGING
PC_CONTROL_RECORD = LS_EDIDC "Control Data
EXCEPTIONS
IDOC_NOT_SAVED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
APPEND LS_EDIDC TO LT_EDIDC.
CALL FUNCTION 'IDOC_START_INBOUND'
EXPORTING
PI_INBOUND_PROCESS_DATA = V_INBOUND_PROCESS_DATA_IN
PI_CALLED_ONLINE = 'X'
* PI_DO_COMMIT = 'X'
* PI_START_EVENT_ENABLED = 'X'
* PI_ORG_UNIT = ' '
SUCC_SHOW_FLAG = 'X'
* PI_PARTNER_OPTION =
TABLES
T_CONTROL_RECORDS = LT_EDIDC
* T_DATA_RECORDS =
EXCEPTIONS
* INVALID_DOCUMENT_NUMBER = 1
* ERROR_BEFORE_CALL_APPLICATION = 2
* INBOUND_PROCESS_NOT_POSSIBLE = 3
* OLD_WF_START_FAILED = 4
* WF_TASK_ERROR = 5
* SERIOUS_INBOUND_ERROR = 6
OTHERS = 1.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
O_DOCNUM = LS_EDIDC-DOCNUM.