创建销售订单的BAPI:BAPI_SALESORDER_CREATEFROMDAT2
创建退货订单的BAPI(传入的参数基本和创建正向销售订单的BAPI是一样的):BAPI_CUSTOMERRETURN_CREATE
创建退货订单的函数(传入的参数基本和创建正向销售订单的BAPI是一样的):SD_SALESDOCUMENT_CREATE
BAPI_CUSTOMERRETURN_CREATE本质上是调用SD_SALESDOCUMENT_CREATE的.
创建退货订单不能使用BAPI_SALESORDER_CREATEFROMDAT2,否则会报”不允许业务对象 BUS2032 和销售凭证类别 H 的组合。”
创建退货订单代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
DATA: E_ORDER_HEADER_IN LIKE BAPISDHD1 OCCURS 0 WITH HEADER LINE, E_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE, E_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE, E_ORDER_BAPISCHDL LIKE BAPISCHDL OCCURS 0 WITH HEADER LINE, E_AUART LIKE VBAK-AUART , E_KUNNR LIKE VBAK-KUNNR, CNT TYPE I, E_MENGE TYPE DZMENG. DATA: lt_order_text TYPE TABLE OF bapisdtext. DATA: ls_order_conditions_in TYPE bapicond. DATA lt_order_conditions_in TYPE TABLE OF bapicond. DATA: e_order_text TYPE bapisdtext. DATA : W_KNA1 LIKE KNA1 , W_ADR6 LIKE ADR6 . data: ls_type type ZSCS004-PURAUDITFLAG. data: ls_knumv type vbak-knumv. DATA : W_NAME LIKE KNA1-NAME1. data: ls_inco1 type KNVV-INCO1, ls_zterm type KNVV-ZTERM. data: it_konv like KONV OCCURS 0 WITH HEADER LINE. "选择条目 data: ls_konv type KONV. DATA : I_BAPISDTEXT TYPE STANDARD TABLE OF BAPISDTEXT. DATA : l_external TYPE BAPI2093_RES_KEY-RESERV_NO. DATA : WA_BAPISDTEXT LIKE LINE OF I_BAPISDTEXT. data:ls_sale type ZSD_SALE_TEST. data: ls_first type KUNNR, ls_last type KUNNR. loop AT ZSD_SALE_TEST INTO ls_sale. "add_text 抬头文本 e_order_text-doc_number = SALESDOCUMENT. e_order_text-itm_number = '000000'. e_order_text-text_id = '0001'. e_order_text-langu = 1. e_order_text-langu_iso = 'ZH'. e_order_text-format_col = '*'. e_order_text-text_line = ls_sale-text_line. e_order_text-function = '005'. APPEND e_order_text TO lt_order_text. "add_text: e_order_text-doc_number = SALESDOCUMENT. e_order_text-itm_number = ls_sale-POSNR. e_order_text-text_id = '0002'. e_order_text-langu = 1. e_order_text-langu_iso = 'ZH'. e_order_text-format_col = '*'. e_order_text-text_line = ls_sale-ARKTX. e_order_text-function = '005'. APPEND e_order_text TO lt_order_text. clear e_order_text. "add_partners 抬头文本 * "客户代码之前加1位 * CONCATENATE '1' ls_sale-FIRST_NAME into ls_first. * CONCATENATE '1' ls_sale-LAST_NAME into ls_last. ls_first = ls_sale-FIRST_NAME. ls_last = ls_sale-LAST_NAME. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = ls_first IMPORTING OUTPUT = ls_first. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = ls_last IMPORTING OUTPUT = ls_last. E_ORDER_PARTNERS-PARTN_ROLE = 'AG'. "售达方 E_ORDER_PARTNERS-PARTN_NUMB = ls_first. "售达方代码 APPEND E_ORDER_PARTNERS. E_ORDER_PARTNERS-PARTN_ROLE = 'WE'. "送达方 E_ORDER_PARTNERS-PARTN_NUMB = ls_last. "送达方代码 APPEND E_ORDER_PARTNERS. E_AUART = ls_sale-AUART. E_ORDER_HEADER_IN-DOC_TYPE = E_AUART. "订单类型 E_ORDER_HEADER_IN-SALES_ORG = ls_sale-VKORG. "销售组织 E_ORDER_HEADER_IN-DISTR_CHAN = ls_sale-VTWEG. "分销渠道 E_ORDER_HEADER_IN-DIVISION = ls_sale-SPART. "产品组 E_ORDER_HEADER_IN-req_date_h = ls_sale-ETDAT. "请求交货日期 E_ORDER_HEADER_IN-ship_type = '01'. "装运类型 E_ORDER_HEADER_IN-ship_cond = ls_sale-VSBED. "装运条件 E_ORDER_HEADER_IN-PURCH_NO_C = ls_sale-BSTNK. "客户采购订单编号 E_ORDER_ITEMS_IN-item_categ = ls_sale-PSTYV. "项目类别 E_ORDER_ITEMS_IN-plant = ls_sale-WERKS. "工厂 E_ORDER_ITEMS_IN-store_loc = ls_sale-LGORT. "库存地点 E_ORDER_ITEMS_IN-MATERIAL = ls_sale-MABNR. "物料 * E_ORDER_ITEMS_IN-BATCH = ls_sale-CHARG. "批次 E_ORDER_ITEMS_IN-TARGET_QTY = ls_sale-KWMENG. "订单数量 E_ORDER_ITEMS_IN-sales_unit = ls_sale-VRKME. "单位 E_ORDER_ITEMS_IN-ITM_NUMBER = ls_sale-POSNR. "项目号 E_ORDER_ITEMS_IN-DLV_PRIO = ls_sale-REQUESTYPE. "交货优先权 * E_ORDER_ITEMS_IN-PMNTTRMS = '0001'. select KNVV~INCO1 KNVV~ZTERM INTO (ls_inco1,ls_zterm) from KNVV where KUNNR = ls_first and VKORG = ls_sale-VKORG and VTWEG = ls_sale-VTWEG and SPART = ls_sale-SPART. endselect. E_ORDER_ITEMS_IN-PMNTTRMS = ls_zterm. "付款条件 E_ORDER_ITEMS_IN-INCOTERMS1 = ls_inco1. "国际贸易条件 E_ORDER_BAPISCHDL-REQ_QTY = ls_sale-KWMENG. "订单数量 E_ORDER_BAPISCHDL-ITM_NUMBER = ls_sale-POSNR. "项目号 * ** add_conditions: ls_order_conditions_in-itm_number = ls_sale-POSNR. ls_order_conditions_in-cond_type = 'ZPR2'. "定价条件 ls_order_conditions_in-cond_value = ls_sale-KBETR. "价格 ls_order_conditions_in-currency = 'RMB'. "货币或% ls_order_conditions_in-cond_unit = ls_sale-VRKME. "条件单位 ls_order_conditions_in-cond_p_unt = ls_sale-KWMENG. "条件定价单位 * ls_order_conditions_in-cond_unit = 'Z37'. * ls_order_conditions_in-itm_number = POSNR. * ** IF ( t_create-auart = 'ZCR' ) OR ( t_create-auart = 'ZDR' ). * ** ls_order_conditions_in-cond_type = 'ZPR2'. * ** ELSE. * ** ls_order_conditions_in-cond_type = 'ZPR1'. * ** ENDIF. * ls_order_conditions_in-cond_value = 10. ls_order_conditions_in-cond_updat = 'X'. "价格更新标志 APPEND ls_order_conditions_in TO lt_order_conditions_in. CLEAR WA_BAPISDTEXT. REFRESH I_BAPISDTEXT. * WA_BAPISDTEXT-TEXT_ID = '0001'. * WA_BAPISDTEXT-LANGU = SY-LANGU. * WA_BAPISDTEXT-TEXT_LINE = COMMENT. * APPEND WA_BAPISDTEXT TO I_BAPISDTEXT. APPEND E_ORDER_BAPISCHDL. APPEND E_ORDER_ITEMS_IN. * MODIFY zsd_sale_test from ls_sale. clear ls_sale. endloop. ****创建销售订单 * CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' * EXPORTING * ORDER_HEADER_IN = E_ORDER_HEADER_IN * IMPORTING * SALESDOCUMENT = SALESDOCUMENT * TABLES * RETURN = RETURN * ORDER_SCHEDULES_IN = E_ORDER_BAPISCHDL * ORDER_ITEMS_IN = E_ORDER_ITEMS_IN * ORDER_PARTNERS = E_ORDER_PARTNERS * ORDER_CONDITIONS_IN = lt_order_conditions_in * ORDER_TEXT = lt_order_text. CALL FUNCTION 'SD_SALESDOCUMENT_CREATE' EXPORTING SALESDOCUMENT = SALESDOCUMENT sales_header_in = E_ORDER_HEADER_IN * logic_switch = lv_logic_switch IMPORTING SALESDOCUMENT_EX = SALESDOCUMENT TABLES return = RETURN sales_items_in = E_ORDER_ITEMS_IN sales_partners = E_ORDER_PARTNERS sales_schedules_in = E_ORDER_BAPISCHDL sales_conditions_in = lt_order_conditions_in sales_text = lt_order_text. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/1647.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。