BAPI_ACC_DOCUMENT_POST使用

会计凭证过账BAPI:BAPI_ACC_DOCUMENT_POST
最近又对这个BAPI研究了一下,发现之前还是有很多理解不深,现在再次补充部分内容:
1.可以用来做预制凭证过账
2.总账凭证,应收应付
3.资产类过账
过账预制凭证时也百度过很多方法基本都是做增强的方法,但是后来本人在BAPI抬头的结构内发现有一个字段DOC_STATUS,只需要将其赋值为2,同样可以生成预制凭证,无需增强。各位可以尝试一下,如果有误欢迎大家指正。
入参定义

      DATA:LS_DOCUMENTHEADER    TYPE BAPIACHE09,  "会计凭证表头
           LT_ACCOUNTGL         LIKE BAPIACGL09 OCCURS 0 WITH HEADER LINE, "总账科目数据
           LT_CURRENCYAMOUNT    LIKE BAPIACCR09 OCCURS 0 WITH HEADER LINE, "货币数据
           LT_ACCOUNTPAYABLE    LIKE BAPIACAP09 OCCURS 0 WITH HEADER LINE , "供应商项目,应付时使用
           LT_ACCOUNTRECEIVABLE LIKE BAPIACAR09 OCCURS 0 WITH HEADER LINE, "客户项目,应收时使用
           LT_CRITERIA          LIKE BAPIACKEC9 OCCURS 0 WITH HEADER LINE, "获利能力特性值,当需要在获利能力段填写数据时使用
           LT_RETURN            TYPE TABLE OF BAPIRET2,
           LS_RETURN            TYPE   BAPIRET2.
DATA:LT_EXTENSION2 TYPE STANDARD TABLE OF BAPIPAREX WITH HEADER LINE. "BAPI里面没有的扩展字段

**这里给入参表按照需求赋值,就不具体写了,关于扩展字段怎么设置网上有很多方法。同时若是过账资产类凭证,需要对表头这两个字段 GS_HEADER BUS_ACT = ‘RFBU’ OBJ_TYPE = 'BKPFF’赋值,之后资产业务类型字段同样需要写在增强内。最后在调用过账前最好先调用BAPI_ACC_DOCUMENT_CHECK检查一下,入参和过账的BAPI一样

   CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
        EXPORTING
          DOCUMENTHEADER    = LS_DOCUMENTHEADER
*         CUSTOMERCPD       =
*         CONTRACTHEADER    =
*        IMPORTING
*         OBJ_TYPE          =
*         OBJ_KEY           =
*         OBJ_SYS           =
        TABLES
          ACCOUNTGL         = LT_ACCOUNTGL
*         ACCOUNTRECEIVABLE =
*         ACCOUNTPAYABLE    =
*         ACCOUNTTAX        =
          CURRENCYAMOUNT    = LT_CURRENCYAMOUNT
          CRITERIA          = LT_CRITERIA
*         CRITERIA          =
*         VALUEFIELD        =
*         EXTENSION1        =
          RETURN            = LT_RETURN
*         PAYMENTCARD       =
*         CONTRACTITEM      =
          EXTENSION2        = LT_EXTENSION2
          ACCOUNTPAYABLE    = LT_ACCOUNTPAYABLE
          ACCOUNTRECEIVABLE = LT_ACCOUNTRECEIVABLE.
      .

你可能感兴趣的:(ABAP开发,abap)