Nesse post irei mostrar como aplicar um modificador a uma ordem de venda existente via API.
Execute o script abaixo para criar o modificador
DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type; l_header_adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type; l_line_adj_tbl OE_ORDER_PUB.line_adj_tbl_Type; l_header_scr_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type; l_line_scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type; l_request_rec OE_ORDER_PUB.Request_Rec_Type; l_return_status VARCHAR2 (1000); l_msg_count NUMBER; l_msg_data VARCHAR2 (1000); p_api_version_number NUMBER := 1.0; p_init_msg_list VARCHAR2 (10) := FND_API.G_FALSE; p_return_values VARCHAR2 (10) := FND_API.G_FALSE; p_action_commit VARCHAR2 (10) := FND_API.G_FALSE; x_return_status VARCHAR2 (1); x_msg_count NUMBER; x_msg_data VARCHAR2 (100); p_header_rec OE_ORDER_PUB.Header_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_REC; p_old_header_rec OE_ORDER_PUB.Header_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_REC; p_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_VAL_REC; p_old_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type := OE_ORDER_PUB.G_MISS_HEADER_VAL_REC; p_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_TBL; p_old_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_TBL; p_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_VAL_TBL; p_old_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_VAL_TBL; p_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_PRICE_ATT_TBL; p_old_Header_Price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_PRICE_ATT_TBL; p_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ATT_TBL; p_old_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ATT_TBL; p_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL; p_old_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL; p_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_TBL; p_old_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_TBL; p_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL; p_old_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL; p_line_tbl OE_ORDER_PUB.Line_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_TBL; p_old_line_tbl OE_ORDER_PUB.Line_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_TBL; p_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_VAL_TBL; p_old_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_VAL_TBL; p_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_TBL; p_old_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_TBL; p_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_TBL; p_old_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_TBL; p_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_TBL; p_old_Line_Price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_TBL; p_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_TBL; p_old_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_TBL; p_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_TBL; p_old_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_TBL; p_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_TBL; p_old_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_TBL; p_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_TBL; p_old_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_TBL; p_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_TBL; p_old_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_TBL; p_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_TBL; p_old_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_TBL; p_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type := OE_ORDER_PUB.G_MISS_REQUEST_TBL; x_header_val_rec OE_ORDER_PUB.Header_Val_Rec_Type; x_Header_Adj_tbl OE_ORDER_PUB.Header_Adj_Tbl_Type; x_Header_Adj_val_tbl OE_ORDER_PUB.Header_Adj_Val_Tbl_Type; x_Header_price_Att_tbl OE_ORDER_PUB.Header_Price_Att_Tbl_Type; x_Header_Adj_Att_tbl OE_ORDER_PUB.Header_Adj_Att_Tbl_Type; x_Header_Adj_Assoc_tbl OE_ORDER_PUB.Header_Adj_Assoc_Tbl_Type; x_Header_Scredit_tbl OE_ORDER_PUB.Header_Scredit_Tbl_Type; x_Header_Scredit_val_tbl OE_ORDER_PUB.Header_Scredit_Val_Tbl_Type; x_line_val_tbl OE_ORDER_PUB.Line_Val_Tbl_Type; x_Line_Adj_tbl OE_ORDER_PUB.Line_Adj_Tbl_Type; x_Line_Adj_val_tbl OE_ORDER_PUB.Line_Adj_Val_Tbl_Type; x_Line_price_Att_tbl OE_ORDER_PUB.Line_Price_Att_Tbl_Type; x_Line_Adj_Att_tbl OE_ORDER_PUB.Line_Adj_Att_Tbl_Type; x_Line_Adj_Assoc_tbl OE_ORDER_PUB.Line_Adj_Assoc_Tbl_Type; x_Line_Scredit_tbl OE_ORDER_PUB.Line_Scredit_Tbl_Type; x_Line_Scredit_val_tbl OE_ORDER_PUB.Line_Scredit_Val_Tbl_Type; x_Lot_Serial_tbl OE_ORDER_PUB.Lot_Serial_Tbl_Type; x_Lot_Serial_val_tbl OE_ORDER_PUB.Lot_Serial_Val_Tbl_Type; x_action_request_tbl OE_ORDER_PUB.Request_Tbl_Type; X_DEBUG_FILE VARCHAR2 (500); l_line_tbl_index NUMBER; l_msg_index_out NUMBER (10); BEGIN DBMS_OUTPUT.enable (1000000); FND_GLOBAL.apps_initialize (1139, 21623, 660); MO_GLOBAL.init ('ONT'); MO_GLOBAL.set_policy_context ('S', 81); OE_DEBUG_PUB.G_FILE := ''; OE_DEBUG_PUB.debug_on; OE_DEBUG_PUB.initialize; x_debug_file := OE_DEBUG_PUB.Set_Debug_Mode ('FILE'); --This is to UPDATE order line l_line_tbl_index := 1; -- Changed attributes Header l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC; l_header_rec.header_id := 14075; l_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE; --------- MODIFICADORES---------- l_line_tbl (l_line_tbl_index) := OE_ORDER_PUB.G_MISS_LINE_REC; l_line_tbl (l_line_tbl_index).operation := OE_GLOBALS.G_OPR_UPDATE; l_line_tbl (l_line_tbl_index).header_id := 14075; l_line_tbl (l_line_tbl_index).line_id := 10057; l_line_adj_tbl (1) := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC; l_line_adj_tbl (1).header_id := 14075; l_line_adj_tbl (1).line_id := 10057; l_line_adj_tbl (1).list_header_id := 9057; l_line_adj_tbl (1).list_line_id := 9012; l_line_adj_tbl (1).automatic_flag := 'N'; l_line_adj_tbl (1).list_line_type_code := 'SLT'; l_line_adj_tbl (1).arithmetic_operator := '%'; l_line_adj_tbl (1).operand := 3; l_line_adj_tbl (1).applied_flag := 'Y'; l_line_adj_tbl (1).updated_flag := 'Y'; l_line_adj_tbl (1).Line_Index := 1; l_line_adj_tbl (1).modifier_level_code := 'LINE'; l_line_adj_tbl (1).operation := OE_GLOBALS.G_OPR_CREATE; OE_ORDER_PUB.process_order ( p_api_version_number => 1.0, p_init_msg_list => fnd_api.g_true, p_return_values => fnd_api.g_true, p_action_commit => fnd_api.g_false, x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data, p_header_rec => l_header_rec, p_line_tbl => l_line_tbl, p_line_adj_tbl => l_line_adj_tbl, p_action_request_tbl => l_action_request_tbl, x_header_rec => p_header_rec, x_header_val_rec => x_header_val_rec, x_Header_Adj_tbl => x_Header_Adj_tbl, x_Header_Adj_val_tbl => x_Header_Adj_val_tbl, x_Header_price_Att_tbl => x_Header_price_Att_tbl, x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl, x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl, x_Header_Scredit_tbl => x_Header_Scredit_tbl, x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl, x_line_tbl => p_line_tbl, x_line_val_tbl => x_line_val_tbl, x_Line_Adj_tbl => x_Line_Adj_tbl, x_Line_Adj_val_tbl => x_Line_Adj_val_tbl, x_Line_price_Att_tbl => x_Line_price_Att_tbl, x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl, x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl, x_Line_Scredit_tbl => x_Line_Scredit_tbl, x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl, x_Lot_Serial_tbl => x_Lot_Serial_tbl, x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl, x_action_request_tbl => p_action_request_tbl); DBMS_OUTPUT.put_line ( 'OM Debug file: ' || oe_debug_pub.G_DIR || '/' || oe_debug_pub.G_FILE); FOR i IN 1 .. l_msg_count LOOP Oe_Msg_Pub.get (p_msg_index => i, p_encoded => Fnd_Api.G_FALSE, p_data => l_msg_data, p_msg_index_out => l_msg_index_out); DBMS_OUTPUT.PUT_LINE ('message is: ' || l_msg_data); DBMS_OUTPUT.PUT_LINE ('message index is: ' || l_msg_index_out); END LOOP; -- Check the return status IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN DBMS_OUTPUT.put_line ('Unit Selling Price Update Sucessful'); COMMIT; ELSE DBMS_OUTPUT.put_line ('Unit Selling Price Failed'); END IF; END;
Modificador aplicado com sucesso….
Deixe uma resposta