DATA: GS_BDCDATA TYPE BDCDATA,
GT_BDCDATA TYPE TABLE OF BDCDATA,
G_PARAMS TYPE CTU_PARAMS,
GS_MESS TYPE BDCMSGCOLL,
GT_MESS TYPE TABLE OF BDCMSGCOLL.
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR GS_BDCDATA.
GS_BDCDATA-PROGRAM = PROGRAM.
GS_BDCDATA-DYNPRO = DYNPRO.
GS_BDCDATA-DYNBEGIN = 'X'.
APPEND GS_BDCDATA TO GT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR GS_BDCDATA.
GS_BDCDATA-FNAM = FNAM.
GS_BDCDATA-FVAL = FVAL.
APPEND GS_BDCDATA TO GT_BDCDATA.
ENDFORM.
FORM FRM_GET_MSGTXT TABLES PT_MESS STRUCTURE BDCMSGCOLL
CHANGING P_MSG TYPE CHAR200 .
DATA: L_MSGTXT TYPE STRING,
LS_MESS TYPE BDCMSGCOLL.
LOOP AT PT_MESS INTO LS_MESS WHERE MSGTYP EQ 'E'.
CLEAR L_MSGTXT.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = LS_MESS-MSGID
MSGNR = LS_MESS-MSGNR
MSGV1 = LS_MESS-MSGV1
MSGV2 = LS_MESS-MSGV2
MSGV3 = LS_MESS-MSGV3
MSGV4 = LS_MESS-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = L_MSGTXT .
IF SY-TABIX > 1.
CONCATENATE P_MSG ';' L_MSGTXT INTO P_MSG.
ELSE.
P_MSG = L_MSGTXT.
ENDIF.
ENDLOOP.
ENDFORM.
GS_BDCDATA-DYNBEGIN = 'T'.
GS_BDCDATA-FNAM = 'F-02'.
APPEND GS_BDCDATA TO GT_BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'BKPF-BLDAT' SY-DATUM.
PERFORM BDC_FIELD USING 'BKPF-BLART' 'SA'.
PERFORM BDC_FIELD USING 'BKPF-BUKRS' GS_ITEM-BUKRS.
PERFORM BDC_FIELD USING 'BKPF-BUDAT' P_BUDAT.
PERFORM BDC_FIELD USING 'BKPF-BKTXT' '银企联票据凭证(自动过账)'.
*PERFORM BDC_FIELD USING 'BKPF-BKTXT' P_LV_TXT.
PERFORM BDC_FIELD USING 'BKPF-MONAT' P_BUDAT+4(2).
PERFORM BDC_FIELD USING 'BKPF-WAERS' 'CNY'.
PERFORM BDC_FIELD USING 'FS006-DOCID' '*'.
PERFORM BDC_FIELD USING 'RF05A-NEWBS' '09'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO' GS_ITEM-CPRNO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM' 'S'.
PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'SAPMF05A 1300APPL_SUB_T'.
PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'SAPLSEXM 0200APPL_SUB'.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '2320'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF05A-NEWUM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR' GS_ITEM-BILL_AMT.
*PERFORM BDC_FIELD USING 'BSEG-ZFBDT' P_BUDAT.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT' P_DUE_DATE.
PERFORM BDC_FIELD USING 'BSED-WDATE' P_DRAW_DATE.
PERFORM BDC_FIELD USING 'BSEG-SGTXT' P_LV_TXT.
*PERFORM BDC_FIELD USING 'BSED-WNAME' 'OFC'.
*PERFORM BDC_FIELD USING 'BSED-WORT1' 'China'.
*PERFORM BDC_FIELD USING 'BSED-REGIO' '060'.
*PERFORM BDC_FIELD USING 'BSED-WBZOG' '建零片食撒厘魏输移氯'.
PERFORM BDC_FIELD USING 'RF05A-NEWBS' '19'.
PERFORM BDC_FIELD USING 'RF05A-NEWKO' GS_ITEM-CPRNO.
PERFORM BDC_FIELD USING 'RF05A-NEWUM' 'A'.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0304'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR' GS_ITEM-BILL_AMT.
PERFORM BDC_FIELD USING 'BSEG-SGTXT' P_LV_TXT.
LOOP AT GT_BDCDATA INTO GS_BDCDATA WHERE FNAM = 'BSEG-WRBTR'.
CONDENSE GS_BDCDATA-FVAL NO-GAPS.
MODIFY GT_BDCDATA INDEX SY-TABIX FROM GS_BDCDATA TRANSPORTING FVAL.
ENDLOOP.
G_PARAMS-DISMODE = 'N'.
G_PARAMS-DEFSIZE = 'X'.
G_PARAMS-UPDMODE = 'S'.
CALL TRANSACTION 'F-02' USING GT_BDCDATA OPTIONS FROM G_PARAMS MESSAGES INTO GT_MESS.
PERFORM FRM_GET_MSGTXT TABLES GT_MESS CHANGING L_ERROR_MSG.
IF L_ERROR_MSG IS INITIAL.
P_RTRES = 'S'.
READ TABLE GT_MESS INTO GS_MESS WITH KEY MSGTYP = 'S' MSGID = 'F5' MSGNR = '312'.
IF SY-SUBRC EQ 0.
P_FIDOC_BELNR = GS_MESS-MSGV1.
ENDIF.
ELSE.
P_RTRES = 'F'.
CONCATENATE '过账失败:' L_ERROR_MSG INTO P_RTMSG.
ENDIF.
SAP F-02 BDC生成票据类会计凭证
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 除了在 FI 模块手工录入的会计凭证,SAP 大部分会计凭证通过与其他模块集成,由其他模块的业务自动生成会计凭证。...
- SAP 会计凭证有过账、预制和暂记三种状态,区分三种状态的作用: 暂记凭证 (Hold):暂记凭证主要作用是暂时保...
- 会计凭证的概念 会计凭证 (FI document) 是 SAP FI 模块中记录一项交易和事项的最小单位。创建会...
- 对做错的会计凭证,SAP 并不提供常规的删除操作,需要通过冲销 (reversal) 的方式来消除数据影响。对会计...
- 《初级会计实务》 第一章 会计概述 第五节 会计凭证、会计账簿与账务处理程序 一、会计凭证 (一)会计凭证概述 (...