SAP产生银行流水线凭证号.docx

上传人:b****5 文档编号:29039168 上传时间:2023-07-20 格式:DOCX 页数:13 大小:19.32KB
下载 相关 举报
SAP产生银行流水线凭证号.docx_第1页
第1页 / 共13页
SAP产生银行流水线凭证号.docx_第2页
第2页 / 共13页
SAP产生银行流水线凭证号.docx_第3页
第3页 / 共13页
SAP产生银行流水线凭证号.docx_第4页
第4页 / 共13页
SAP产生银行流水线凭证号.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SAP产生银行流水线凭证号.docx

《SAP产生银行流水线凭证号.docx》由会员分享,可在线阅读,更多相关《SAP产生银行流水线凭证号.docx(13页珍藏版)》请在冰豆网上搜索。

SAP产生银行流水线凭证号.docx

SAP产生银行流水线凭证号

1、se11创建结构,必须包含行项目号POSNR字段,和其他需要扩展的字段,如记账码PostingKey、原因代码ReasonCode

   2、SE19实现BADI增强ACC_DOCUMENT,这个增强是用来将BAPI_ACC_DOCUMENT_POST参数表EXTENSION2传入系统表

   3、使用BAPI_ACC_DOCUMENT_POST参数表EXTENSION2,将扩展字段传入

详细步骤如下:

1、创建结构,se11,很简单,不再赘述,如下图:

2、SE19实现BADI增强ACC_DOCUMENT

通过ACC_DOCUMENThelp文档知道,方法CHANGE用来完成字段的扩展,还有一个需要注意的是参考业务类型,这个一定要选对,不然执行BAPI的时候不会调用这个BADI,我用的是BKPFF,如下图:

激活这个BADI实现。

双击change方法创建,可以查看ACC_DOCUMENT的实现例子CL_EXM_IM_ACC_DOCUMENT(R/34.7版本,其他版本可能名称不一样),,将这个实例的change方法的代码直接copy过来,激活方法,代码如下

***********************************************************************

*ExampletomovefieldsfromBAPIparameterEXTENSION2tostructure *

*ACCIT(accountingdocumentlineitems).                            *

*Thedictionarystructure(contentforEXTENSION2-STRUCTURE)must   *

*containfieldPOSNR,(TYPEPOSNR_ACC)toindentifythecorrectline*

*itemoftheinternaltableACCIT.                                  *

***********************************************************************

 DATA:

wa_extension  TYPEbapiparex,

       ext_value(960)TYPEc,

       wa_accit      TYPEaccit,

       l_ref         TYPEREFTOdata.

 FIELD-SYMBOLS:

TYPEANY,

                TYPEANY.

 SORTc_extension2BYstructure.

 LOOPATc_extension2INTOwa_extension.

   ATNEWstructure.

     CREATEDATAl_refTYPE(wa_extension-structure).

     ASSIGNl_ref->*TO.

   ENDAT.

   CONCATENATEwa_extension-valuepart1wa_extension-valuepart2

               wa_extension-valuepart3wa_extension-valuepart4

          INTOext_value.

   MOVEext_valueTO.

   ASSIGNCOMPONENT'POSNR'OFSTRUCTURETO.

   READTABLEc_accitWITHKEYposnr=

         INTOwa_accit.

   IFsy-subrcISINITIAL.

     MOVE-CORRESPONDINGTOwa_accit.

     MODIFYc_accitFROMwa_accitINDEXsy-tabix.

   ENDIF.

 ENDLOOP.

3、使用BAPI_ACC_DOCUMENT_POST参数表EXTENSION2,将扩展字段传入

**********************************************************************

*INTERNALTABLEDECLARATION

**********************************************************************

*&—-G/LACCOUNTITEM

DATA:

ACCOUNTGLTYPESTANDARDTABLEOFBAPIACGL09.

*&—CURRENCYITEMS

DATA:

CURRENCY_AMOUNTTYPESTANDARDTABLEOFBAPIACCR09.

*&—-RETURNPARAMETER

DATA:

RETURNTYPESTANDARDTABLEOFBAPIRET2WITHHEADERLINE.

*&—-it_extension2ITEMS

DATA:

IT_EXTENSION2TYPESTANDARDTABLEOFBAPIPAREXWITHHEADERLINE.

*&—WORKAREAFORZEXTEN

DATA:

WA_ZEXTENLIKEZEXTEN.”ZEXTEN就是刚才SE11创建的那个结构

**********************************************************************

*赋值

**********************************************************************

*&EXTENSION2扩展字段增强部分

 WA_ZEXTEN-POSNR='0000000010'."凭证行项目

 WA_ZEXTEN-RSTGR='171'."凭证行项目原因代码

 IT_EXTENSION2-STRUCTURE ='ZEXTEN'.

 IT_EXTENSION2-VALUEPART1=WA_ZEXTEN.

 APPENDIT_EXTENSION2.

*其他参数表的字段赋值如下例

HEADER-HEADER_TXT='TESTHEADER'."凭证抬头文本

 HEADER-USERNAME=SY-UNAME. "用户名

 HEADER-COMP_CODE='1000'."公司代码

 HEADER-DOC_DATE='20090618'."凭证中的凭证日期

 HEADER-PSTNG_DATE='20090618'."凭证中的记帐日期

 HEADER-DOC_TYPE='S1'."凭证类型

* HEADER-BUS_ACT='RFBU'."交易业务

 WA_ACCOUNTGL-ITEMNO_ACC='0000000010'."会计凭证行项目编号

 WA_ACCOUNTGL-GL_ACCOUNT='1002010105'."总分类帐帐目

* WA_ACCOUNTGL-ITEM_TEXT=.

 WA_ACCOUNTGL-BUS_AREA='8000'."业务范围

 APPENDWA_ACCOUNTGLTOACCOUNTGL.

 CLEARWA_ACCOUNTGL.

 WA_ACCOUNTGL-ITEMNO_ACC='0000000020'."会计凭证行项目编号

 WA_ACCOUNTGL-GL_ACCOUNT='1301040000'."总分类帐帐目

 WA_ACCOUNTGL-BUS_AREA='8000'."业务范围

*WA_ACCOUNTGL-ITEM_TEXT=.

*wa_accountgl-ACCT_TYPE='R'.

 APPENDWA_ACCOUNTGLTOACCOUNTGL.

 CLEARWA_ACCOUNTGL.

 WA_CURRENCY_AMOUNT-ITEMNO_ACC='0000000010'."行项目编号

 WA_CURRENCY_AMOUNT-AMT_DOCCUR='500'."金额

 WA_CURRENCY_AMOUNT-CURRENCY='RMB'.

 APPENDWA_CURRENCY_AMOUNTTOCURRENCY_AMOUNT.

 CLEARWA_CURRENCY_AMOUNT.

 WA_CURRENCY_AMOUNT-ITEMNO_ACC='0000000020'.

 WA_CURRENCY_AMOUNT-AMT_DOCCUR='-500'.

 WA_CURRENCY_AMOUNT-CURRENCY='RMB'.

 APPENDWA_CURRENCY_AMOUNTTOCURRENCY_AMOUNT.

 CLEARWA_CURRENCY_AMOUNT.

 *执行BAPI

CALLFUNCTION'BAPI_ACC_DOCUMENT_POST'

 EXPORTING

 DOCUMENTHEADER=HEADER

*CUSTOMERCPD=

*CONTRACTHEADER=

*IMPORTING

*OBJ_TYPE=

*OBJ_KEY=

*OBJ_SYS=

 TABLES

 ACCOUNTGL=ACCOUNTGL

*ACCOUNTRECEIVABLE=

*ACCOUNTPAYABLE=

*ACCOUNTTAX=

 CURRENCYAMOUNT=CURRENCY_AMOUNT

*CRITERIA=

*VALUEFIELD=

*EXTENSION1=

 RETURN=RETURN

*PAYMENTCARD=

*CONTRACTITEM=

 EXTENSION2=IT_EXTENSION2

*REALESTATE=

 .

 IFRETURN-TYPENA'EA'.

   CALLFUNCTION'BAPI_TRANSACTION_COMMIT'

     EXPORTING

       WAIT='X'.

 ENDIF.

FORM FRM_YZPZ .

  DATA:

 LS_DOCUMENTHEADER    TYPE BAPIACHE09,

        LT_ACCOUNTGL         TYPE TABLE OF BAPIACGL09,

        LS_ACCOUNTGL         TYPE BAPIACGL09,

        LT_EXTENSION2        TYPE TABLE OF BAPIPAREX,

        LS_EXTENSION2        TYPE BAPIPAREX,

        LT_CURRENCYAMOUNT    TYPE TABLE OF BAPIACCR09,

        LS_CURRENCYAMOUNT    TYPE BAPIACCR09,

        L_POSNR TYPE POSNR,

        L_CPOSNR TYPE POSNR_ACC,

        L_PERNR TYPE PERNR_D.

  DATA:

 LT_RETURN TYPE  TABLE OF BAPIRET2,

        LS_RETURN TYPE BAPIRET2.

  DATA:

 LV_STR(10) TYPE C.

  CONCATENATE GS_PZMN-ZSQR '-借款'  INTO  LV_STR .

  CONDENSE LV_STR NO-GAPS.

* Collect header infor.

  LS_DOCUMENTHEADER-USERNAME   = SY-UNAME. "GS_OUT-UNAME.

  LS_DOCUMENTHEADER-COMP_CODE  = GS_OUT-BUKRS.

  LS_DOCUMENTHEADER-DOC_DATE   = GS_PZMN-ZPZRQ.

  LS_DOCUMENTHEADER-FISC_YEAR  = GS_PZMN-ZGZRQ+0(4).

  LS_DOCUMENTHEADER-FIS_PERIOD = GS_PZMN-ZGZRQ+4

(2).

  LS_DOCUMENTHEADER-PSTNG_DATE = GS_PZMN-ZGZRQ.

  LS_DOCUMENTHEADER-DOC_TYPE   = 'ZB'.

*  ls_documentheader-header_txt = '借款'.

  LS_DOCUMENTHEADER-HEADER_TXT = LV_STR.

*collect GL account.

  READ TABLE GT_YZPZ  INTO GS_YZPZ INDEX 1.

* 借记:

40

  CLEAR L_POSNR.

  L_POSNR = L_POSNR + 1.

  LS_ACCOUNTGL-ITEMNO_ACC = L_POSNR.

  LS_ACCOUNTGL-GL_ACCOUNT = GS_YZPZ-KTONR.

  LS_ACCOUNTGL-FUNC_AREA = 'YM01'.

  APPEND LS_ACCOUNTGL TO LT_ACCOUNTGL.

  LS_CURRENCYAMOUNT-ITEMNO_ACC = L_POSNR.

  LS_CURRENCYAMOUNT-CURRENCY = GS_OUT-WAERS.

  LS_CURRENCYAMOUNT-AMT_DOCCUR = GS_PZMN-ZJKJE.

  APPEND LS_CURRENCYAMOUNT TO LT_CURRENCYAMOUNT.

  LS_EXTENSION2-STRUCTURE = 'ZSTRUCTURE'.

  L_CPOSNR = L_POSNR.

  ZSTRUCTURE-POSNR = L_CPOSNR.

  ZSTRUCTURE-BSCHL = '40'.

  ZSTRUCTURE-PERNR  = GS_YZPZ-ZYGBH.

  L_PERNR = ZSTRUCTURE-PERNR.

  LS_EXTENSION2-VALUEPART1 = ZSTRUCTURE.

  APPEND LS_EXTENSION2 TO LT_EXTENSION2.

  CLEAR LS_EXTENSION2.

* 贷记50

  READ TABLE GT_YZPZ  INTO GS_YZPZ INDEX 2.

  L_POSNR = L_POSNR + 1.

  LS_ACCOUNTGL-ITEMNO_ACC = L_POSNR.

  LS_ACCOUNTGL-GL_ACCOUNT = GS_YZPZ-KTONR.

  APPEND LS_ACCOUNTGL TO LT_ACCOUNTGL.

  LS_CURRENCYAMOUNT-ITEMNO_ACC = L_POSNR.

  LS_CURRENCYAMOUNT-CURRENCY = GS_OUT-WAERS.

  LS_CURRENCYAMOUNT-AMT_DOCCUR = GS_PZMN-ZJKJE * ( - 1 ).

  APPEND LS_CURRENCYAMOUNT TO LT_CURRENCYAMOUNT.

  LS_EXTENSION2-STRUCTURE = 'ZSTRUCTURE'.

  L_CPOSNR = L_POSNR.

  ZSTRUCTURE-POSNR  = L_CPOSNR.

  ZSTRUCTURE-BSCHL  = '50'.

  ZSTRUCTURE-RSTGR  = GS_YZPZ-RSTGR.

  ZSTRUCTURE-HBKID  = GS_YZPZ-HBKID.

  ZSTRUCTURE-HKTID  = GS_YZPZ-HKTID.

  SELECT SINGLE TXT20 FROM T053S INTO ZSTRUCTURE-SGTXT

    WHERE SPRAS = 1 AND BUKRS = 'GI00' AND RSTGR  = ZSTRUCTURE-RSTGR.

  LS_EXTENSION2-VALUEPART1 = ZSTRUCTURE.

  APPEND LS_EXTENSION2 TO LT_EXTENSION2.

  CLEAR LS_EXTENSION2.

* post

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

    EXPORTING

      DOCUMENTHEADER    = LS_DOCUMENTHEADER

    TABLES

      ACCOUNTGL         = LT_ACCOUNTGL

*     accountreceivable = lt_accountreceivable

*     accountpayable    = lt_accountpayable

      CURRENCYAMOUNT    = LT_CURRENCYAMOUNT

      EXTENSION2        = LT_EXTENSION2

      RETURN            = LT_RETURN.

  READ TABLE LT_RETURN INTO LS_RETURN WITH KEY TYPE = 'E'.

  IF SY-SUBRC = 0.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE CA 'EA'.

      IF "LS_RETURN-ID NE 'RW' AND

            LS_RETURN-NUMBER NE '609'.

        MESSAGE LS_RETURN-MESSAGE TYPE CNS_E.

*        CONCATENATE LS_RETURN-MESSAGE '/' L_MESSAGE INTO L_MESSAGE.

      ENDIF.

    ENDLOOP.

*    MESSAGE LS_RETURN-MESSAGE TYPE CNS_E.

  ELSE.

*    更新过账信息到ZFIT1001表

    MOVE-CORRESPONDING GS_OUT TO GS_ZFIT1001.

    LOOP AT LT_RETURN INTO LS_RETURN WHERE TYPE <> 'A' AND TYPE <> 'E'.

      IF LS_RETURN-MESSAGE_V2+0(10) CO '1234567890'.

        GS_ZFIT1001-ZPZBH = LS_RETURN-MESSAGE_V2+0(10).

        GS_ZFIT1001-ZGZRQ = GS_PZMN-ZGZRQ.      "过账日期

        GS_ZFIT1001-ZPZRQ = GS_PZMN-ZPZRQ.      "凭证日期

        GS_ZFIT1001-ZYHJE = GS_PZMN-ZJKJE.      "应还款

        GS_ZFIT1001-ZYHWH = GS_PZMN-ZJKJE.      "应还未还

*        GS_ZFIT1001-ZSJFKRQ = GS_PZMN-ZSJFKRQ.   "实际付款日期

*        GS_ZFIT1001-ZDJZT = '05'.               "已付款

        MODIFY ZFIT1001 FROM GS_ZFIT1001.

        IF SY-SUBRC NE 0.

          DO 4 TIMES.

            MODIFY ZFIT1001 FROM GS_ZFIT1001.

            IF SY-SUBRC EQ 0.

              EXIT.

            ENDIF.

          ENDDO.

          IF SY-SUBRC NE 0.

            ROLLBACK WORK.

            MESSAGE TEXT-008  TYPE CNS_E.

          ENDIF.

        ELSE.

          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

          MOVE-CORRESPONDING GS_ZFIT1001 TO GS_OUT.

          MODIFY GT_OUT FROM GS_OUT

          TRANSPORTING ZGZRQ ZPZBH ZYHK ZYHJE ZYHWH "ZDJZT

          WHERE ZDJH  = GS_ZFIT1001-ZDJH.

          MESSAGE S007(ZFI) WITH GS_ZFIT1001-ZPZBH.

        ENDIF.

        EXIT.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.       

FORM FRM_REV_HKPZ .

  DATA:

 LS_BKPF   TYPE BKPF.

  DATA:

 LV_AWKEY  TYPE AWKEY.

  DATA:

 LS_REVERSAL TYPE BAPIACREV,

        LT_RETURN TYPE STANDARD TABLE OF BAPIRET2,

        LS_RETURN TYPE BAPIRET2.

  DATA:

 LT_ROW_NO TYPE LVC_T_ROID,

        LS_ROW_NO TYPE LVC_S_ROID.

  CALL METHOD R_ALV_400->GET

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1