*&---------------------------------------------------------------------* *& Report Z_TEST_LUOLIN_001 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT z_test_luolin_001. DATA: ls_cont_hdr_in TYPE bapisdhd1, ls_cont_hdr_inx TYPE bapisdhd1x, lv_salesdoc TYPE bapivbeln-vbeln, lt_return TYPE TABLE OF bapiret2, lt_partner TYPE TABLE OF bapiparnr, lt_item_in TYPE TABLE OF bapisditm, lt_item_inx TYPE TABLE OF bapisditmx, lt_cond_in TYPE TABLE OF bapicond, lt_cond_inx TYPE TABLE OF bapicondx, lv_msg TYPE string. DATA: lt_extensionin TYPE TABLE OF bapiparex. DATA : ls_bape_vbak TYPE bape_vbak, ls_bape_vbakx TYPE bape_vbakx, ls_exten TYPE bapiparex, lt_exten TYPE STANDARD TABLE OF bapiparex, ls_extenx TYPE bapiparex, lt_extenx TYPE STANDARD TABLE OF bapiparex. DATA logic_switch TYPE bapisdls. START-OF-SELECTION. " prepare contract header data ls_cont_hdr_in-doc_type = 'ZCQ'. " contract type( cq->km) ls_cont_hdr_in-purch_no_c = 'po_num'. " purchase order ls_cont_hdr_in-sales_org = '1001'. " sales organization ls_cont_hdr_in-distr_chan = '20'. " distribution channel ls_cont_hdr_in-division = '00'. " division ls_cont_hdr_in-ct_valid_f = '20190705'. " contract valid from date ls_cont_hdr_in-ct_valid_t = '20191231'. " contract valid to date ls_cont_hdr_inx-doc_type = 'x'. ls_cont_hdr_inx-purch_no_c = 'x'. ls_cont_hdr_inx-sales_org = 'x'. ls_cont_hdr_inx-distr_chan = 'x'. ls_cont_hdr_inx-division = 'x'. ls_cont_hdr_inx-ct_valid_f = 'x'. ls_cont_hdr_inx-ct_valid_t = 'x'. * Prepare Contract Item Data APPEND INITIAL LINE TO lt_item_in ASSIGNING FIELD-SYMBOL(<fs_item_in>). <fs_item_in>-itm_number = '000010'. <fs_item_in>-material = '9S110001'. * <fs_item_in>-plant = '1000'. * <fs_item_in>-ship_point = '1000'. <fs_item_in>-target_qty = '10'. <fs_item_in>-target_qu = 'KG'. " pc->st APPEND INITIAL LINE TO lt_item_inx ASSIGNING FIELD-SYMBOL(<fs_item_inx>). <fs_item_inx>-itm_number = 'x'. <fs_item_inx>-material = 'x'. * <fs_item_inx>-plant = 'x'. * <fs_item_inx>-ship_point = 'x'. <fs_item_inx>-target_qty = 'x'. <fs_item_inx>-target_qu = 'x'. * prepare Partner details APPEND INITIAL LINE TO lt_partner ASSIGNING FIELD-SYMBOL(<fs_partner>). <fs_partner>-partn_role = 'AG'. " sold to party <fs_partner>-partn_numb = '0000100000'. APPEND INITIAL LINE TO lt_cond_in ASSIGNING FIELD-SYMBOL(<fs_cond_in>). <fs_cond_in>-itm_number = '000010'. " <fs_cond_in>-cond_st_no = '010'. " <fs_cond_in>-cond_type = 'ZCB6'. " <fs_cond_in>-cond_value = '11.000000000'. " <fs_cond_in>-currency = 'CNY'. " <fs_cond_in>-cond_unit = 'KG'. " APPEND INITIAL LINE TO lt_cond_in ASSIGNING <fs_cond_in>. <fs_cond_in>-itm_number = '000010'. " <fs_cond_in>-cond_st_no = '010'. " <fs_cond_in>-cond_type = 'ZPR0'. " <fs_cond_in>-cond_value = '11.000000000'. " <fs_cond_in>-currency = 'CNY'. " <fs_cond_in>-cond_unit = 'KG'. " APPEND INITIAL LINE TO lt_cond_inx ASSIGNING FIELD-SYMBOL(<fs_cond_inx>). <fs_cond_inx>-itm_number = '000010'. " <fs_cond_inx>-cond_st_no = '010'. " <fs_cond_inx>-cond_type = 'ZCB6'. " <fs_cond_inx>-updateflag = 'I'. " <fs_cond_inx>-cond_value = 'X'. " <fs_cond_inx>-currency = 'X'. " <fs_cond_inx>-cond_unit = 'X'. " APPEND INITIAL LINE TO lt_cond_inx ASSIGNING <fs_cond_inx>. <fs_cond_inx>-itm_number = '000010'. " <fs_cond_inx>-cond_st_no = '174'. " <fs_cond_inx>-cond_type = 'ZPR0'. " <fs_cond_inx>-updateflag = 'I'. " <fs_cond_inx>-cond_value = 'X'. " <fs_cond_inx>-currency = 'X'. " <fs_cond_inx>-cond_unit = 'X'. " * ls_bape_vbak-zzcredit = '10000'. "信用额度 * ls_bape_vbak-zzprojectno = '项目号'. "项目号 * ls_bape_vbak-zzprojectname = '项目名称'. "项目名称 * ls_bape_vbak-zzbigprojectname = '战略地产名称'. "战略地产名称 * ls_bape_vbak-zzoalcbianma = 'OA流程编码'. "OA流程编码 * ls_exten-structure = 'BAPE_VBAK'. * ls_exten+30(960) = ls_bape_vbak. * APPEND ls_exten TO lt_exten. * CLEAR:ls_exten. * * ls_bape_vbak-zzcredit = 'X'. "信用额度 * ls_bape_vbak-zzprojectno = 'X'. "项目号 * ls_bape_vbak-zzprojectname = 'X'. "项目名称 * ls_bape_vbak-zzbigprojectname = 'X'. "战略地产名称 * ls_bape_vbak-zzoalcbianma = 'X'. "OA流程编码 * ls_exten-structure = 'BAPE_VBAKX'. * ls_exten+30(960) = ls_bape_vbakx. * APPEND ls_extenx TO lt_extenx. CLEAR:ls_extenx. ls_bape_vbak-zzcredit = '10000'. "信用额度 ls_bape_vbak-zzprojectno = '项目号'. "项目号 ls_bape_vbak-zzprojectname = '项目名称'. "项目名称 ls_bape_vbak-zzbigprojectname = '战略地产名称'. "战略地产名称 ls_bape_vbak-zzoalcbianma = 'OA流程编码'. "OA流程编码 ls_exten-structure = 'BAPE_VBAK'. * ls_exten+30(960) = ls_bape_vbak. ls_exten-VALUEPART1 = ls_bape_vbak. APPEND ls_exten TO lt_exten. CLEAR:ls_extenx. ls_bape_vbakx-zzcredit = 'X'. "信用额度 ls_bape_vbakx-zzprojectno = 'X'. "项目号 ls_bape_vbakx-zzprojectname = 'X'. "项目名称 ls_bape_vbakx-zzbigprojectname = 'X'. "战略地产名称 ls_bape_vbakx-zzoalcbianma = 'X'. "OA流程编码 ls_extenx-structure = 'BAPE_VBAKX'. * ls_extenx+30(960) = ls_bape_vbakx. ls_extenx-VALUEPART1 = ls_bape_vbakx. APPEND ls_extenx TO lt_extenx. CLEAR:ls_extenx. logic_switch-pricing = 'G'. "G:执行手动输入价格条件,B:重新执行价格条件更新 CALL FUNCTION 'BAPI_CONTRACT_CREATEFROMDATA' EXPORTING * SALESDOCUMENTIN = contract_header_in = ls_cont_hdr_in contract_header_inx = ls_cont_hdr_inx * SENDER = * BINARY_RELATIONSHIPTYPE = ' ' * INT_NUMBER_ASSIGNMENT = ' ' * BEHAVE_WHEN_ERROR = ' ' logic_switch = logic_switch * TESTRUN = * CONVERT = ' ' IMPORTING salesdocument = lv_salesdoc TABLES return = lt_return contract_items_in = lt_item_in contract_items_inx = lt_item_inx contract_partners = lt_partner contract_conditions_in = lt_cond_in contract_conditions_inx = lt_cond_inx * CONTRACT_CFGS_REF = * CONTRACT_CFGS_INST = * CONTRACT_CFGS_PART_OF = * CONTRACT_CFGS_VALUE = * CONTRACT_CFGS_BLOB = * CONTRACT_CFGS_VK = * CONTRACT_CFGS_REFINST = * contract_data_in = * contract_data_inx = * CONTRACT_TEXT = * CONTRACT_KEYS = extensionin = lt_exten * PARTNERADDRESSES = extensionex = lt_extenx. . READ TABLE lt_return TRANSPORTING NO FIELDS WITH KEY type = 'e'. IF sy-subrc IS NOT INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. LOOP AT lt_return ASSIGNING FIELD-SYMBOL(<fs_return>). CALL FUNCTION 'FORMAT_MESSAGE' EXPORTING id = <fs_return>-id lang = 'en' no = <fs_return>-number v1 = <fs_return>-message_v1 v2 = <fs_return>-message_v2 v3 = <fs_return>-message_v3 v4 = <fs_return>-message_v4 IMPORTING msg = lv_msg EXCEPTIONS not_found = 1 OTHERS = 2. IF sy-subrc <> 0. ENDIF. WRITE :/ lv_msg. ENDLOOP. WRITE :/ 'contract:', lv_salesdoc , 'has been created' . ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF.

网友评论