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
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