版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/gh320/article/details/36666133
新增和更新价目表行
--目的:在已有的价目表头基础上,添加行信息
--限制:该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; -- 业务实体 + 价目表名称 确定
:= p_list_header_id; -- 业务实体 + 价目表名称 确定
l_price_list_line_tbl( 1).list_line_id
:= fnd_api.g_miss_num;
:= fnd_api.g_miss_num;
l_price_list_line_tbl( 1).list_line_type_code
:= 'PLL' ; -- 固定
:= 'PLL' ; -- 固定
l_price_list_line_tbl( 1).operation
:= qp_globals.g_opr_create; -- 固定
:= qp_globals.g_opr_create; -- 固定
l_price_list_line_tbl( 1).operand
:= p_operand; -- 值
:= p_operand; -- 值
l_price_list_line_tbl( 1).arithmetic_operator
:= 'UNIT_PRICE' ; -- 固定
:= 'UNIT_PRICE' ; -- 固定
l_price_list_line_tbl( 1).start_date_active
:= p_start_active_date; -- 直接传入 起始日期
:= p_start_active_date; -- 直接传入 起始日期
l_price_list_line_tbl( 1).end_date_active
:= p_end_active_date; -- 直接传入 截止日期
:= p_end_active_date; -- 直接传入 截止日期
l_price_list_line_tbl( 1).organization_id
:= NULL ; -- 直接传空
:= NULL ; -- 直接传空
l_price_list_line_tbl( 1).primary_uom_flag
:= p_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;
:= fnd_api.g_miss_num;
l_pricing_attr_tbl( 1).list_line_id
:= fnd_api.g_miss_num;
:= fnd_api.g_miss_num;
l_pricing_attr_tbl( 1).product_attribute_context
:= 'ITEM' ; -- 固定
:= 'ITEM' ; -- 固定
l_pricing_attr_tbl( 1).product_attribute
:= 'PRICING_ATTRIBUTE1' ; --固定
:= 'PRICING_ATTRIBUTE1' ; --固定
l_pricing_attr_tbl( 1).product_attr_value
:= p_inventory_item_id; -- 传入 inventory_item_id
:= p_inventory_item_id; -- 传入 inventory_item_id
l_pricing_attr_tbl( 1).product_uom_code
:= p_product_uom_code; --直接传入 单位
:= p_product_uom_code; --直接传入 单位
l_pricing_attr_tbl( 1).excluder_flag
:= 'N' ; -- ? 临时固定
:= 'N' ; -- ? 临时固定
l_pricing_attr_tbl( 1).attribute_grouping_no
:= 1 ; --固定
:= 1 ; --固定
l_pricing_attr_tbl( 1).price_list_line_index
:= 1 ; --固定
:= 1 ; --固定
l_pricing_attr_tbl( 1).operation
:= qp_globals.g_opr_create; -- 固定
:= 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);
x_return_status);
dbms_output.put_line( '新增成功');
ELSE
dbms_output.put_line( 'x_return_status:' ||
x_return_status);
x_return_status);
dbms_output.put_line( '新增出错');
END IF;
END;