接外包项目的网站,免费虚拟空间wordpress,网站建设费 摊销处理,十大抖音代运营公司帮助财务同事做了两次过账的批导#xff0c;使用的是BDC批导方式#xff0c;录一次屏#xff0c;将代码提炼然后加工#xff0c;做成Excel模板导入。
准备Excel导入的模板#xff1a;ZEX_PZ1#xff08;这是我本地有的模板#xff09;#xff0c;还有录屏好的代码块。…帮助财务同事做了两次过账的批导使用的是BDC批导方式录一次屏将代码提炼然后加工做成Excel模板导入。
准备Excel导入的模板ZEX_PZ1这是我本地有的模板还有录屏好的代码块。
代码解析
FORM BDC_DATA4.DATA: BEGIN OF RECORD, 这一个DATA部分是录屏产生的照搬
* data element: BLDATBLDAT_001(010),
* data element: BLARTBLART_002(002),
* data element: BUKRSBUKRS_003(004),
* data element: BUDATBUDAT_004(010),
* data element: MONATMONAT_005(002),
* data element: WAERSWAERS_006(005),
* data element: XBLNR1XBLNR_007(016),
* data element: BKTXTBKTXT_008(025),
* data element: SAEOBJARTDOCID_009(010),
* data element: NEWBSNEWBS_010(002),
* data element: NEWKONEWKO_011(017),
* data element: NEWUMNEWUM_012(001),
* data element: WRBTRWRBTR_013(016),
* data element: DZUONRZUONR_014(018),
* data element: SGTXTSGTXT_015(050),
* data element: DZFBDTZFBDT_016(010),
* data element: WSTATWSTAT_017(001),
* data element: WDATEWDATE_018(010),
* data element: WNAMEWNAME_019(030),
* data element: WORT1WORT1_020(030),
* data element: REGIOREGIO_021(003),
* data element: WBZOGWBZOG_022(030),
* data element: WORT2WORT2_023(030),
* data element: WBANKWBANK_024(060),
* data element: WLZBPWLZBP_025(060),
* data element: NEWBSNEWBS_026(002),
* data element: NEWKONEWKO_027(017),
* data element: WRBTRWRBTR_028(016),
* data element: MWSKZMWSKZ_029(002),
* data element: DZFBDTZFBDT_030(010),END OF RECORD.IF IT_ZDOCUMENT-SHKZG 21 OR 此判断是为了有多个过账码情况下进行判断IT_ZDOCUMENT-SHKZG 39 OR
* it_zdocument-umskz I ORIT_ZDOCUMENT-UMSKZ * .*** 此后面的代码按照录屏所填的空设置****PERFORM BDC_DYNPRO USING SAPMF05A 0100.PERFORM BDC_FIELD USING BDC_CURSORRF05A-NEWUM.PERFORM BDC_FIELD USING BDC_OKCODE/00.PERFORM BDC_FIELD USING BKPF-BLDATIT_ZDOCUMENT-BLDAT. 凭证日期PERFORM BDC_FIELD USING BKPF-BLARTIT_ZDOCUMENT-BLART. 凭证类型PERFORM BDC_FIELD USING BKPF-BUKRSIT_ZDOCUMENT-BUKRS. 公司代码PERFORM BDC_FIELD USING BKPF-BUDATIT_ZDOCUMENT-BUDAT. 过帐日期PERFORM BDC_FIELD USING BKPF-MONATIT_ZDOCUMENT-MONAT. 记帐期间PERFORM BDC_FIELD USING BKPF-WAERSIT_ZDOCUMENT-WAERS. 货币PERFORM BDC_FIELD USING BKPF-XBLNRIT_ZDOCUMENT-XBLNR. 参考凭证号PERFORM BDC_FIELD USING BKPF-BKTXTIT_ZDOCUMENT-BKTXT. 凭证抬头文本
* PERFORM BDC_FIELD USING FS006-DOCID
* IT_ZDOCUMENT-DOCID.PERFORM BDC_FIELD USING RF05A-NEWBSIT_ZDOCUMENT-SHKZG. 借贷方标识PERFORM BDC_FIELD USING RF05A-NEWKOIT_ZDOCUMENT-KUNNR. 客编PERFORM BDC_FIELD USING RF05A-NEWUMIT_ZDOCUMENT-UMSKZ.*** 此处是过账码只有正确的过账码才能切换到下一个屏幕***LOOP AT IT_ZDOCUMENT1 WHERE ( UMSKZ * OR UMSKZ W ) AND BELNR IT_ZDOCUMENT-BELNR.PERFORM BDC_FIELD USING RF05A-NEWBSIT_ZDOCUMENT1-SHKZG.PERFORM BDC_FIELD USING RF05A-NEWKOIT_ZDOCUMENT1-KUNNR.PERFORM BDC_FIELD USING RF05A-NEWUMIT_ZDOCUMENT1-UMSKZ.PERFORM BDC_DYNPRO USING SAPMF05A 0320.PERFORM BDC_FIELD USING BDC_CURSORRF05A-NEWKO.PERFORM BDC_FIELD USING BDC_OKCODE/00.PERFORM BDC_FIELD USING BSEG-WRBTRIT_ZDOCUMENT1-WRBTR. 金额PERFORM BDC_FIELD USING BSEG-ZUONRIT_ZDOCUMENT1-ZUONR.PERFORM BDC_FIELD USING BSEG-SGTXTIT_ZDOCUMENT1-BKTXT.PERFORM BDC_FIELD USING BSEG-ZFBDTIT_ZDOCUMENT1-ZFBDT. 到期日PERFORM BDC_FIELD USING BSED-WSTATIT_ZDOCUMENT1-WSTAT. 汇票类型PERFORM BDC_FIELD USING BSED-WDATEIT_ZDOCUMENT1-WDATE. 签发日期PERFORM BDC_FIELD USING BSED-WNAMEIT_ZDOCUMENT1-WNAME. 出票人PERFORM BDC_FIELD USING BSED-WORT1IT_ZDOCUMENT1-WORT1. 出票人地点
* PERFORM BDC_FIELD USING BSED-REGIO
* RECORD-REGIO_021.PERFORM BDC_FIELD USING BSED-WBZOGIT_ZDOCUMENT1-WBZOG. 汇票受票人PERFORM BDC_FIELD USING BSED-WORT2IT_ZDOCUMENT1-WORT2. 受票人地点PERFORM BDC_FIELD USING BSED-WBANKIT_ZDOCUMENT1-WBANK. 汇票长号PERFORM BDC_FIELD USING BSED-WLZBPIT_ZDOCUMENT1-WLZBP. 银行名称
* PERFORM BDC_FIELD USING RF05A-NEWBS
* IT_ZDOCUMENT1-SHKZG. 借贷方标识
* PERFORM BDC_FIELD USING RF05A-NEWKO
* IT_ZDOCUMENT1-KUNNR. 客编ENDLOOP.**此处是过账码同样要正确才能切换到另一个屏幕**LOOP AT IT_ZDOCUMENT1 WHERE UMSKZ AND BELNR IT_ZDOCUMENT-BELNR.*PERFORM BDC_FIELD USING RF05A-NEWBSIT_ZDOCUMENT1-SHKZG.PERFORM BDC_FIELD USING RF05A-NEWKOIT_ZDOCUMENT1-KUNNR.PERFORM BDC_DYNPRO USING SAPMF05A 0302.PERFORM BDC_FIELD USING BDC_CURSORBSEG-WRBTR.PERFORM BDC_FIELD USING BDC_OKCODEBU.PERFORM BDC_FIELD USING BSEG-WRBTRIT_ZDOCUMENT1-WRBTR. 金额
* PERFORM BDC_FIELD USING BSEG-MWSKZ
* IT_ZDOCUMENT1-MWSKZ.PERFORM BDC_FIELD USING BSEG-ZFBDTIT_ZDOCUMENT1-ZFBDT. 到期日PERFORM BDC_TRANSACTION USING FB01 N. A表示可视N表示不可视.ENDLOOP.ENDIF.
ENDFORM.
对于有多个过账码的需求需要找出其不同的差异准确进入到不同的代码块中。
参照写法 IF ( IT_ZDOCUMENT-UMSKZ W OR 第一种凭证IT_ZDOCUMENT-UMSKZ OR IT_ZDOCUMENT-UMSKZ !) AND( IT_ZDOCUMENT-SHKZG 21 ORIT_ZDOCUMENT-SHKZG 39 ).LOOP AT IT_ZDOCUMENT2.IF IT_ZDOCUMENT2-UMSKZ A OR IT_ZDOCUMENT2-UMSKZ *.C1 1.ENDIF.IF ( IT_ZDOCUMENT2-UMSKZ W OR IT_ZDOCUMENT2-UMSKZ ! ) AND IT_ZDOCUMENT2-SHKZG 39.C2 1.ENDIF.ENDLOOP.IF C1 1 AND C2 1.PERFORM BDC_DATA1.DELETE IT_ZDOCUMENT[] WHERE BELNR IT_ZDOCUMENT-BELNR.ENDIF.C1 0.C2 0.ENDIF.
*-----------------------------------------------------------------------------IF( IT_ZDOCUMENT-SHKZG 09 OR 第二种凭证IT_ZDOCUMENT-SHKZG 11 ) AND( IT_ZDOCUMENT-UMSKZ OR IT_ZDOCUMENT-UMSKZ W ) .PERFORM BDC_DATA2.DELETE IT_ZDOCUMENT[] WHERE BELNR IT_ZDOCUMENT-BELNR.ENDIF.IF
*------------------------------------------------------------------------------( IT_ZDOCUMENT-SHKZG 19 OR 第三种凭证IT_ZDOCUMENT-SHKZG 21 ) AND( IT_ZDOCUMENT-UMSKZ OR IT_ZDOCUMENT-UMSKZ W ) .LOOP AT IT_ZDOCUMENT2.IF IT_ZDOCUMENT2-UMSKZ A.C1 1.ENDIF.IF IT_ZDOCUMENT2-SHKZG 19 OR IT_ZDOCUMENT2-UMSKZ W.C2 1.ENDIF.ENDLOOP.IF C1 1 AND C2 1.PERFORM BDC_DATA3.DELETE IT_ZDOCUMENT[] WHERE BELNR IT_ZDOCUMENT-BELNR.ENDIF.C2 0.C1 0.ENDIF.
*---------------------------------------------------------------------------------IF ( IT_ZDOCUMENT-SHKZG 21 OR 第四种凭证IT_ZDOCUMENT-SHKZG 39 ) AND( IT_ZDOCUMENT-UMSKZ OR IT_ZDOCUMENT-UMSKZ * ) .LOOP AT IT_ZDOCUMENT2.IF IT_ZDOCUMENT2-UMSKZ A OR IT_ZDOCUMENT2-UMSKZ W.C1 1.ENDIF.IF IT_ZDOCUMENT2-SHKZG 21 AND IT_ZDOCUMENT2-UMSKZ AND IT_ZDOCUMENT2-SHKZG 29 .C2 1.ENDIF.ENDLOOP.IF C1 1 AND C2 1.PERFORM BDC_DATA4.DELETE IT_ZDOCUMENT[] WHERE BELNR IT_ZDOCUMENT-BELNR.ENDIF.C1 0.C2 0.ENDIF.