IDoc接口應用于SAP系統與其他系統的業務數據交換過程,包含數據結構的定義以及數據的處理邏輯,其中的數據結構即為IDoc(intermediate document).IDoc是一種系統間通用的數據交換格式,通過IDoc,SAP系統可以和SAP系統和非SAP系統進行數據交換。
只需要添加接收端的logical System
Segment type 名字前三位不能有“_,"不然會報錯無法保存 創建完成后,會自動生成一個結構體。
Release 填系統版本
先創建Model view ,然後添加剛創建的Message type
全是綠色就是成功了,我這個已經有了,所有都是 已經存在。如果有報錯的話,按報錯提示再處理。
REPORT zt_new_user.
TABLES: ztab_create_user.
DATA: gs_tabinfo TYPE ztnew_user,
gs_edidc TYPE edidc,
gt_edidc TYPE TABLE OF edidc,
gt_edidd TYPE TABLE OF edidd WITH HEADER LINE.
CLEAR gt_edidc.
gs_edidc-mestyp = 'ZTN_USER'.
gs_edidc-idoctp = 'ZT_NEW_USER'.
gs_edidc-rcvprn = 'IDES800'.
gs_edidc-rcvprt = 'LS'.
CLEAR: gs_tabinfo,
gt_edidd.
gt_edidd-segnam = 'ZTNEW_USER'.
gt_edidd-dtint2 = 0.
gs_tabinfo-username = 'TEST03'.
gs_tabinfo-password = '12345678'.
gs_tabinfo-firstname = 'ASD'.
gs_tabinfo-lastname = 'asdff'.
gt_edidd-sdata = gs_tabinfo.
APPEND gt_edidd.
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
EXPORTING
master_idoc_control = gs_edidc
TABLES
communication_idoc_control = gt_edidc
master_idoc_data = gt_edidd
EXCEPTIONS
error_in_idoc_control = 1
error_writing_idoc_status = 2
error_in_idoc_data = 3
sending_logical_system_unknown = 4
OTHERS = 5.
IF sy-subrc = 0.
COMMIT WORK.
WRITE: 'IDoc sent'.
LOOP AT gt_edidc INTO gs_edidc.
NEW-LINE.
WRITE: 'IDoc Nnumber is', gs_edidc-docnum,
'; Receiver partner is', gs_edidc-rcvprn,
'; Sender partner',gs_edidc-sndprn.
ENDLOOP.
ENDIF.
下面是接收端配置,如果發送方和接收方在同一服務器下,第2步至第7步則無需配置。
FUNCTION ZCREATE_USER.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) TYPE BDWF_PARAM-RESULT
*" VALUE(APPLICATION_VARIABLE) TYPE BDWF_PARAM-APPL_VAR
*" VALUE(IN_UPDATE_TASK) TYPE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) TYPE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC
*" IDOC_DATA STRUCTURE EDIDD
*" IDOC_STATUS STRUCTURE BDIDOCSTAT
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR
*" SERIALIZATION_INFO STRUCTURE BDI_SER
*" EXCEPTIONS
*" WRONG_FUNCTION_CALLED
*" OTHERS
*"----------------------------------------------------------------------
TABLES: ztab_create_user.
DATA: ls_tabinfo TYPE ZTNEW_USER.
DATA: ls_tab LIKE ztab_create_user OCCURS 0 WITH HEADER LINE.
data: logondata like BAPILOGOND,
address like BAPIADDR3,
return like TABLE OF BAPIRET2 with HEADER LINE.
CLEAR idoc_contrl.
READ TABLE idoc_contrl INDEX 1.
IF idoc_contrl-mestyp <> 'ZTN_USER'.
RAISE wrong_function_called.
ENDIF.
LOOP AT idoc_contrl.
LOOP AT idoc_data WHERE docnum = idoc_contrl-docnum.
CASE idoc_data-segnam.
WHEN 'ZTNEW_USER'.
ls_tabinfo = idoc_data-sdata.
MOVE-CORRESPONDING ls_tabinfo TO ls_tab.
address-firstname = ls_tab-firstname.
address-lastname = ls_tab-lastname.
CALL FUNCTION 'BAPI_USER_CREATE1'
EXPORTING
username = ls_tab-username
logondata = logondata
password = ls_tab-password
address = address
TABLES
RETURN = return.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
IF sy-subrc = 0.
CLEAR idoc_status.
idoc_status-docnum = idoc_contrl-docnum.
idoc_status-status = '53'.
APPEND idoc_status.
ELSE.
CLEAR idoc_status.
idoc_status-docnum = idoc_contrl-docnum.
idoc_status-status = '51'.
idoc_status-msgty = 'E'.
idoc_status-msgid = 'YMSG'.
idoc_status-msgno = '001'.
APPEND idoc_status.
ENDIF.
ENDLOOP.
ENDFUNCTION.
接收到數據后創建用戶
回車后在Identification 中添加入站函數
到此結束。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有