使用API建立銷售訂單,api建立訂單
DECLARE v_api_version_number NUMBER := 1; v_return_status VARCHAR2(2000); v_msg_count NUMBER; v_msg_data VARCHAR2(2000); -- IN Variables -- v_header_rec oe_order_pub.header_rec_type; v_line_tbl oe_order_pub.line_tbl_type; v_action_request_tbl oe_order_pub.request_tbl_type; v_line_adj_tbl oe_order_pub.line_adj_tbl_type; -- OUT Variables -- v_header_rec_out oe_order_pub.header_rec_type; v_header_val_rec_out oe_order_pub.header_val_rec_type; v_header_adj_tbl_out oe_order_pub.header_adj_tbl_type; v_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type; v_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type; v_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type; v_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type; v_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type; v_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type; v_line_tbl_out oe_order_pub.line_tbl_type; v_line_val_tbl_out oe_order_pub.line_val_tbl_type; v_line_adj_tbl_out oe_order_pub.line_adj_tbl_type; v_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type; v_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type; v_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type; v_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type; v_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type; v_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type; v_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type; v_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type; v_action_request_tbl_out oe_order_pub.request_tbl_type; -- v_user_id NUMBER; v_resp_id NUMBER; v_resp_appl_id NUMBER; --BEGIN -- /* To get the user id details */ SELECT user_id INTO v_user_id FROM fnd_user WHERE user_name = 'SETUP01'; /* To get the responsibility and responsibility application id */ SELECT f.responsibility_id, f.application_id INTO v_resp_id, v_resp_appl_id FROM fnd_responsibility_tl f WHERE f.responsibility_name = '受注管理スーパーユーザー(SC)' AND f.language = 'JA'; dbms_output.put_line(v_user_id || ' ' || v_resp_id || ' ' || v_resp_appl_id); -- dbms_output.put_line('Starting of script'); -- Setting the Enviroment -- mo_global.init('ONT'); fnd_global.apps_initialize(user_id => v_user_id, resp_id => v_resp_id, resp_appl_id => v_resp_appl_id); mo_global.set_policy_context('S', fnd_global.org_id); -- Header Record -- v_header_rec := oe_order_pub.g_miss_header_rec; v_header_rec.operation := oe_globals.g_opr_create; v_header_rec.order_number := 1111111; v_header_rec.order_type_id := 1001; --OE_TRANSACTION_TYPES_ALL.TRANSACTION_TYPE_ID v_header_rec.sold_to_org_id := 70802; --HZ_CUST_SITE_USES_ALL.SITE_USE_ID(INV) v_header_rec.ship_to_org_id := 5859039; --HZ_CUST_SITE_USES_ALL.SITE_USE_ID(SHIP_TO) v_header_rec.invoice_to_org_id := 1154; --HZ_CUST_SITE_USES_ALL.SITE_USE_ID(BILL_TO) v_header_rec.order_source_id := 1001; --OE_ORDER_SOURCES.ORDER_SOURCE_ID v_header_rec.booked_flag := 'N'; v_header_rec.price_list_id := 7023; --QP_LIST_HEADERS_ALL_B.LIST_HEADER_ID v_header_rec.pricing_date := SYSDATE; v_header_rec.flow_status_code := 'ENTERED'; --v_header_rec.cust_po_number := ''; v_header_rec.sold_from_org_id := 121; --OU v_header_rec.salesrep_id := 100001013; --JTF_RS_RESOURCE_EXTNS.RESOURCE_ID v_header_rec.transactional_curr_code := 'JPY'; --Currency v_action_request_tbl(1) := oe_order_pub.g_miss_request_rec; -- Line Record -- v_line_tbl(1) := oe_order_pub.g_miss_line_rec; v_line_tbl(1).operation := oe_globals.g_opr_create; v_line_tbl(1).inventory_item_id := 362133; --MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID v_line_tbl(1).ordered_quantity := 1; v_line_tbl(1).unit_selling_price := 235; v_line_tbl(1).calculate_price_flag := 'N'; v_line_tbl(1).line_type_id := 1013; --OE_TRANSACTION_TYPES_ALL.TRANSACTION_TYPE_ID dbms_output.put_line('Starting of API'); -- Calling the API to create an Order -- oe_order_pub.process_order(p_api_version_number => v_api_version_number, p_header_rec => v_header_rec, p_line_tbl => v_line_tbl, p_action_request_tbl => v_action_request_tbl, p_line_adj_tbl => v_line_adj_tbl -- OUT variables , x_header_rec => v_header_rec_out, x_header_val_rec => v_header_val_rec_out, x_header_adj_tbl => v_header_adj_tbl_out, x_header_adj_val_tbl => v_header_adj_val_tbl_out, x_header_price_att_tbl => v_header_price_att_tbl_out, x_header_adj_att_tbl => v_header_adj_att_tbl_out, x_header_adj_assoc_tbl => v_header_adj_assoc_tbl_out, x_header_scredit_tbl => v_header_scredit_tbl_out, x_header_scredit_val_tbl => v_header_scredit_val_tbl_out, x_line_tbl => v_line_tbl_out, x_line_val_tbl => v_line_val_tbl_out, x_line_adj_tbl => v_line_adj_tbl_out, x_line_adj_val_tbl => v_line_adj_val_tbl_out, x_line_price_att_tbl => v_line_price_att_tbl_out, x_line_adj_att_tbl => v_line_adj_att_tbl_out, x_line_adj_assoc_tbl => v_line_adj_assoc_tbl_out, x_line_scredit_tbl => v_line_scredit_tbl_out, x_line_scredit_val_tbl => v_line_scredit_val_tbl_out, x_lot_serial_tbl => v_lot_serial_tbl_out, x_lot_serial_val_tbl => v_lot_serial_val_tbl_out, x_action_request_tbl => v_action_request_tbl_out, x_return_status => v_return_status, x_msg_count => v_msg_count, x_msg_data => v_msg_data); dbms_output.put_line('Completion of API'); IF v_return_status = fnd_api.g_ret_sts_success THEN --COMMIT; dbms_output.put_line('Order Import Success : ' || v_header_rec_out.header_id); ELSE dbms_output.put_line('Order Import failed:' || v_msg_data); --ROLLBACK; FOR i IN 1 .. v_msg_count LOOP v_msg_data := oe_msg_pub.get(p_msg_index => i, p_encoded => 'F'); dbms_output.put_line(i || ') ' || v_msg_data); END LOOP; END IF;END;