现在的位置: 首页 > 综合 > 正文

BAPI_ACC_DOCUMENT_CHECK BAPI_ACC_DOCUMENT_POST

2013年12月14日 ⁄ 综合 ⁄ 共 6967字 ⁄ 字号 评论关闭
 

REPORT  Z_SZQ_TEST.

SELECTION-SCREEN BEGIN OF BLOCK bl01 .

PARAMETERS:
  check_l             RADIOBUTTON GROUP rb1,
  check_a             RADIOBUTTON GROUP rb1 ,
  post                RADIOBUTTON GROUP rb1 DEFAULT 'X'.
SELECTION-SCREEN ULINE.
PARAMETERS:
  rev_c               RADIOBUTTON GROUP rb1,
  rev_p               RADIOBUTTON GROUP rb1.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN END   OF BLOCK bl01 .

DATA:
  gd_documentheader    LIKE bapiache09,
  gd_customercpd       LIKE bapiacpa09,
  gd_fica_hd           LIKE bapiaccahd,
  it_accountreceivable LIKE TABLE OF bapiacar09 WITH HEADER LINE,
  it_accountgl         LIKE TABLE OF bapiacgl09 WITH HEADER LINE,
  it_accounttax        LIKE TABLE OF bapiactx09 WITH HEADER LINE,
  it_criteria          LIKE TABLE OF bapiackec9 WITH HEADER LINE,
  it_valuefield        LIKE TABLE OF bapiackev9 WITH HEADER LINE,
  it_currencyamount    LIKE TABLE OF bapiaccr09 WITH HEADER LINE,
  it_return            LIKE TABLE OF bapiret2   WITH HEADER LINE,
  it_receivers         LIKE TABLE OF bdi_logsys WITH HEADER LINE,
  it_fica_it           LIKE TABLE OF bapiaccait WITH HEADER LINE,
  it_accountpayable    LIKE TABLE OF bapiacap09 WITH HEADER LINE,
  it_paymentcard       LIKE TABLE OF bapiacpc09 WITH HEADER LINE,
  it_ext               LIKE TABLE OF bapiacextc WITH HEADER LINE,
  it_re                LIKE TABLE OF bapiacre09 WITH HEADER LINE,
  it_ext2              LIKE TABLE OF bapiparex  WITH HEADER LINE.

PERFORM fill_header.
PERFORM fill_accountgl.
PERFORM fill_accountpayable.
PERFORM fill_currencyamount.
IF check_l = 'X'.

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
       EXPORTING
            documentheader    = gd_documentheader
            customercpd       = gd_customercpd
            contractheader    = gd_fica_hd
       TABLES
            accountgl         = it_accountgl
            accountreceivable = it_accountreceivable
            accountpayable    = it_accountpayable
            accounttax        = it_accounttax
            criteria          = it_criteria
            valuefield        = it_valuefield
            extension1        = it_ext
            return            = it_return
            paymentcard       = it_paymentcard
            contractitem      = it_fica_it
            extension2        = it_ext2
            realestate        = it_re.
  .

  WRITE: / 'Result of check lines:'.
  PERFORM show_messages.

ENDIF.

IF check_a = 'X'.

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
    EXPORTING
      documentheader    = gd_documentheader
      customercpd       = gd_customercpd
      contractheader    = gd_fica_hd
    TABLES
      accountgl         = it_accountgl
      accountreceivable = it_accountreceivable
      accountpayable    = it_accountpayable
      accounttax        = it_accounttax
      currencyamount    = it_currencyamount
      criteria          = it_criteria
      valuefield        = it_valuefield
      extension1        = it_ext
      return            = it_return
      paymentcard       = it_paymentcard
      contractitem      = it_fica_it
      extension2        = it_ext2
      realestate        = it_re.

  WRITE: / 'Result of check all:'.                          "#EC NOTEXT
  PERFORM show_messages.

ENDIF.

IF post = 'X'.

  DATA: l_type LIKE gd_documentheader-obj_type,
        l_key  LIKE gd_documentheader-obj_key,
        l_sys  LIKE gd_documentheader-obj_sys.

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
    EXPORTING
      documentheader = gd_documentheader
    IMPORTING
      obj_type       = l_type
      obj_key        = l_key
      obj_sys        = l_sys
    TABLES
      accountgl      = it_accountgl
      accountpayable = it_accountpayable
      currencyamount = it_currencyamount
      return         = it_return.

  WRITE: / 'Result of post:'.                               "#EC NOTEXT
  PERFORM show_messages.

ENDIF.

COMMIT WORK.

*---------------------------------------------------------------------*
*      Form  fill_internal_tables
*---------------------------------------------------------------------*
FORM fill_internal_tables.

ENDFORM.                               " fill_internal_tables

*---------------------------------------------------------------------*
*      Form  Show_messages
*---------------------------------------------------------------------*
FORM show_messages.

  IF it_return[] IS INITIAL.
    WRITE: / 'no messages'.
  ELSE.
    SKIP 1.
    LOOP AT it_return.
      WRITE: /    it_return-type,
             (2)  it_return-id,
                  it_return-number,
             (80) it_return-message,
             (20) it_return-parameter,
             (3)  it_return-row,
                  it_return-field.
    ENDLOOP.
  ENDIF.

  ULINE.

ENDFORM.                               " Show_messages

*---------------------------------------------------------------------*
*       FORM fill_accountgl                                           *
*---------------------------------------------------------------------*
FORM fill_accountgl.

  CLEAR it_accountgl.
  it_accountgl-itemno_acc     = 2.
  it_accountgl-gl_account     = '0021710101'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
  APPEND it_accountgl.

ENDFORM.                    "fill_accountgl

*---------------------------------------------------------------------*
*       FORM fill_header                                              *
*---------------------------------------------------------------------*
FORM fill_header.
  gd_documentheader-username   = sy-uname.
  gd_documentheader-header_txt = 'BAPI Test'.               "#EC NOTEXT
  gd_documentheader-comp_code  = '1000'.
  gd_documentheader-doc_date   = sy-datum.
  gd_documentheader-pstng_date = sy-datum.
  gd_documentheader-doc_type = 'RE'.
  gd_documentheader-bus_act    = 'RFBU'.

ENDFORM.                    "fill_header
*---------------------------------------------------------------------*
*       FORM fill_ap                                                  *
*---------------------------------------------------------------------*
FORM fill_accountpayable.

  CLEAR it_accountpayable.
  it_accountpayable-itemno_acc = 1.
  it_accountpayable-vendor_no  = '0000000001'.
  it_accountpayable-item_text  = 'BAPI Test A/P line item'"#EC NOTEXT
  APPEND it_accountpayable.

ENDFORM.                    "fill_accountap
*---------------------------------------------------------------------*
*       FORM fill_currencyamount                                      *
*---------------------------------------------------------------------*
FORM fill_currencyamount.

  CLEAR it_currencyamount.
  it_currencyamount-itemno_acc   = 1.
  it_currencyamount-currency     = 'CNY'.
  it_currencyamount-amt_doccur   = '-1'.
  APPEND it_currencyamount.

  CLEAR it_currencyamount.
  it_currencyamount-itemno_acc   = 2.
  it_currencyamount-currency     = 'CNY'.
  it_currencyamount-amt_doccur   = '1'.
  APPEND it_currencyamount.

ENDFORM.                    "fill_currencyamount

抱歉!评论已关闭.