新增和更新價目表行
--目的:在已有的價目表頭基礎上,增加行資訊--限制:該api有些問題,如果強制增加頭資訊,會有很多問題,所以該例子只是在已有頭資訊基礎上,增加行資訊--需要手動傳參的部分:見注釋--注意事項:無需類比登陸
DECLARE p_list_header_id NUMBER(10 ); p_inventory_item_id NUMBER(10 ); p_product_uom_code VARCHAR2(50 ); p_primary_uom_flag VARCHAR2(50 ); p_operand NUMBER(10 ); p_start_active_date DATE; p_end_active_date DATE; x_return_status VARCHAR2(10 ); x_msg_count NUMBER(10 ); x_msg_data VARCHAR2(2000 ); l_price_list_rec qp_price_list_pub.price_list_rec_type; l_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type; l_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type; x_price_list_rec qp_price_list_pub.price_list_rec_type; x_price_list_val_rec qp_price_list_pub.price_list_val_rec_type; x_price_list_line_tbl qp_price_list_pub.price_list_line_tbl_type; x_price_list_line_val_tbl qp_price_list_pub.price_list_line_val_tbl_type; x_qualifiers_tbl qp_qualifier_rules_pub.qualifiers_tbl_type; x_qualifiers_val_tbl qp_qualifier_rules_pub.qualifiers_val_tbl_type; x_pricing_attr_tbl qp_price_list_pub.pricing_attr_tbl_type; x_pricing_attr_val_tbl qp_price_list_pub.pricing_attr_val_tbl_type;BEGIN
l_price_list_rec.list_header_id := p_list_header_id; -- 業務實體 + 價目表名稱 確定 l_price_list_rec.list_type_code := 'PRL'; -- 固定 l_price_list_rec.operation := qp_globals.g_opr_update; --固定
l_price_list_line_tbl( 1).list_header_id := p_list_header_id; -- 業務實體 + 價目表名稱 確定 l_price_list_line_tbl( 1).list_line_id := fnd_api.g_miss_num; l_price_list_line_tbl( 1).list_line_type_code := 'PLL' ; -- 固定 l_price_list_line_tbl( 1).operation := qp_globals.g_opr_create; -- 固定 l_price_list_line_tbl( 1).operand := p_operand; -- 值 l_price_list_line_tbl( 1).arithmetic_operator := 'UNIT_PRICE' ; -- 固定
l_price_list_line_tbl( 1).start_date_active := p_start_active_date; -- 直接傳入 起始日期 l_price_list_line_tbl( 1).end_date_active := p_end_active_date; -- 直接傳入 到期日
l_price_list_line_tbl( 1).organization_id := NULL ; -- 直接傳空 l_price_list_line_tbl( 1).primary_uom_flag := p_primary_uom_flag; --------根據 主要單位 直接傳入 /* l_price_list_line_tbl(1).end_date_active := '24-12-2013'; --直接傳入varchar 到期日 */ l_pricing_attr_tbl( 1).pricing_attribute_id := fnd_api.g_miss_num; l_pricing_attr_tbl( 1).list_line_id := fnd_api.g_miss_num; l_pricing_attr_tbl( 1).product_attribute_context := 'ITEM' ; -- 固定 l_pricing_attr_tbl( 1).product_attribute := 'PRICING_ATTRIBUTE1' ; --固定 l_pricing_attr_tbl( 1).product_attr_value := p_inventory_item_id; -- 傳入 inventory_item_id l_pricing_attr_tbl( 1).product_uom_code := p_product_uom_code; --直接傳入 單位 l_pricing_attr_tbl( 1).excluder_flag := 'N' ; -- ? 暫時固定 l_pricing_attr_tbl( 1).attribute_grouping_no := 1 ; --固定 l_pricing_attr_tbl( 1).price_list_line_index := 1 ; --固定 l_pricing_attr_tbl( 1).operation := qp_globals.g_opr_create; -- 固定
qp_price_list_pub.process_price_list(p_api_version_number => 1, p_init_msg_list => fnd_api.g_true, p_return_values => fnd_api.g_false, p_commit => fnd_api.g_false, x_return_status => x_return_status, x_msg_count => x_msg_count, x_msg_data => x_msg_data, p_price_list_rec => l_price_list_rec, p_price_list_line_tbl => l_price_list_line_tbl, p_pricing_attr_tbl => l_pricing_attr_tbl, x_price_list_rec => x_price_list_rec, x_price_list_val_rec => x_price_list_val_rec, x_price_list_line_tbl => x_price_list_line_tbl, x_qualifiers_tbl => x_qualifiers_tbl, x_qualifiers_val_tbl => x_qualifiers_val_tbl, x_pricing_attr_tbl => x_pricing_attr_tbl, x_pricing_attr_val_tbl => x_pricing_attr_val_tbl, x_price_list_line_val_tbl => x_price_list_line_val_tbl); IF x_return_status = fnd_api.g_ret_sts_success THEN dbms_output.put_line( 'x_return_status:' || x_return_status); dbms_output.put_line( '新增成功'); ELSE dbms_output.put_line( 'x_return_status:' || x_return_status); dbms_output.put_line( '新增出錯'); END IF;END;