DECLARE
out_return_status varchar2(1) := NULL;
out_msg_count number := 0;
out_msg_data varchar2(2000);
in_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
in_Agreement_val_rec OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
in_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
in_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
in_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
in_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
in_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
in_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
out_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
out_Agreement_val_rec OE_Pricing_Cont_PUB.Agreement_Val_Rec_Type;
out_price_list_rec QP_PRICE_LIST_PUB.Price_List_Rec_Type;
out_price_list_val_rec QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type;
out_price_list_line_tbl QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type;
out_price_list_line_val_tbl QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type;
out_pricing_attr_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type;
out_pricing_attr_val_tbl QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type;
K number := 1;
j number := 1;
begin
--dbms_output.put_line('Creating an Agreement record');
-- Creating an Agreement record
--- Agreement creation rec
in_Agreement_rec.name :='Testing_123_ABC';
in_Agreement_rec.creation_date :=sysdate;
in_Agreement_rec.created_by := 1738;
in_Agreement_rec.last_update_date := sysdate;
in_Agreement_rec.last_updated_by := 1738;
in_Agreement_rec.agreement_type_code := 'STANDARD';
in_Agreement_rec.agreement_num := '2001- XMP2';
in_Agreement_rec.sold_to_org_id := 3801;
in_Agreement_rec.revision := '1';
in_Agreement_rec.revision_date := sysdate;
in_Agreement_rec.term_id := 1000;
in_Agreement_rec.OVERRIDE_IRULE_FLAG := 'Y';
in_Agreement_rec.OVERRIDE_ARULE_FLAG := 'Y';
in_Agreement_rec.agreement_id := FND_API.G_MISS_NUM;
in_Agreement_rec.operation := QP_GLOBALS.G_OPR_CREATE;
/* set the list_header_id to g_miss_num */
----- Price List creaation rec
in_price_list_rec.list_header_id := FND_API.G_MISS_NUM;
in_price_list_rec.name := 'Testing_123_ABC';
in_price_list_rec.list_type_code := 'AGR';
in_price_list_rec.description := 'Testing_123_ABC';
in_price_list_rec.currency_code := 'INR';
--in_price_list_rec.QUALIFICATION_IND:=22;
in_price_list_rec.operation := QP_GLOBALS.G_OPR_CREATE;
------ List Line creation rec
in_price_list_line_tbl(1).list_line_id := FND_API.G_MISS_NUM;
in_price_list_line_tbl(1).list_line_type_code := 'PLL';
in_price_list_line_tbl(1).operation := QP_GLOBALS.G_OPR_CREATE;
in_price_list_line_tbl(1).operand := 200;
in_price_list_line_tbl(1).arithmetic_operator := 'UNIT_PRICE';
in_price_list_line_tbl(1).REVISION_REASON_CODE:=100;
in_price_list_line_tbl(1).QUALIFICATION_IND:=22;
-- in_price_list_line_tbl(K).COMPARISON_OPERATOR_CODE:='-';
---- Price Attribute creation recc
-----1st record
--
in_pricing_attr_tbl(1).pricing_attribute_id := FND_API.G_MISS_NUM;
in_pricing_attr_tbl(1).list_line_id := FND_API.G_MISS_NUM;
in_pricing_attr_tbl(1).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM';
in_pricing_attr_tbl(1).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1';
in_pricing_attr_tbl(1).PRODUCT_ATTR_VALUE := '100487';
in_pricing_attr_tbl(1).PRODUCT_UOM_CODE := 'EA';
in_pricing_attr_tbl(1).EXCLUDER_FLAG := 'N';
in_pricing_attr_tbl(1).ATTRIBUTE_GROUPING_NO := 1;
in_pricing_attr_tbl(1).comparison_operator_code := '=';
in_pricing_attr_tbl(1).PRICE_LIST_LINE_INDEX := 1;
in_pricing_attr_tbl(1).operation := QP_GLOBALS.G_OPR_CREATE;
---- 2nd price attribute record
in_pricing_attr_tbl(2).pricing_attribute_id := FND_API.G_MISS_NUM;
in_pricing_attr_tbl(2).list_line_id := FND_API.G_MISS_NUM;
in_pricing_attr_tbl(2).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM';
in_pricing_attr_tbl(2).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1';
in_pricing_attr_tbl(2).PRODUCT_ATTR_VALUE := '100487';
in_pricing_attr_tbl(2).PRODUCT_UOM_CODE := 'EA';
in_pricing_attr_tbl(2).ATTRIBUTE_GROUPING_NO := 1;
in_pricing_attr_tbl(2).PRICE_LIST_LINE_INDEX := 1;
in_pricing_attr_tbl(2).pricing_attribute_context := 'PRICING ATTRIBUTE';
in_pricing_attr_tbl(2).pricing_attribute := 'PRICING_ATTRIBUTE19';
in_pricing_attr_tbl(2).PRICING_ATTRIBUTE_DATATYPE:='C';
in_pricing_attr_tbl(2).pricing_attr_value_from := 200;
in_pricing_attr_tbl(2).comparison_operator_code := '=';
in_pricing_attr_tbl(2).operation := QP_GLOBALS.G_OPR_CREATE;
in_pricing_attr_tbl(2).QUALIFICATION_IND:=22;
oe_debug_pub.add('Calling the process Agreements API');
OE_Pricing_Cont_PUB.Process_Agreement
( p_api_version_number => 1.0
, p_init_msg_list => FND_API.G_FALSE
, p_return_values => FND_API.G_FALSE
, p_commit => FND_API.G_FALSE
, x_return_status => out_return_status
, x_msg_count => out_msg_count
, x_msg_data => out_msg_data
, p_Agreement_rec => in_Agreement_rec
, p_Price_LHeader_rec => in_price_list_rec
, p_Price_LLine_tbl => in_price_list_line_tbl
, p_Pricing_Attr_tbl => in_pricing_attr_tbl
, x_Agreement_rec => out_Agreement_rec
, x_Agreement_val_rec => out_Agreement_val_rec
, x_Price_LHeader_rec => out_price_list_rec
, x_Price_LHeader_val_rec => out_price_list_val_rec
, x_Price_LLine_tbl => out_price_list_line_tbl
, x_Price_LLine_val_tbl => out_price_list_line_val_tbl
, x_Pricing_Attr_tbl => out_pricing_attr_tbl
, x_Pricing_Attr_val_tbl => out_pricing_attr_val_tbl
);
dbms_output.put_line ('Status '||out_return_status);
IF out_return_status <> FND_API.G_RET_STS_SUCCESS THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
oe_debug_pub.add('after process agreement ');
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
out_return_status := FND_API.G_RET_STS_ERROR;
rollback;
-- Get message count and data
--dbms_output.put_line('err msg 1 is : ' || out_msg_data);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
out_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
rollback;
--dbms_output.put_line(' msg count 2 is : ' || out_msg_count);
for k in 1 .. out_msg_count loop
out_msg_data := oe_msg_pub.get( p_msg_index => k,
p_encoded => 'F'
);
-- Get message count and data
--dbms_output.put_line('err msg ' || k ||'is: ' || out_msg_data);
null;
end loop;
WHEN OTHERS THEN
out_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
rollback;
-- Get message count and data
--dbms_output.put_line('err msg 3 is : ' || out_msg_data);
for k in 1 .. out_msg_count loop
out_msg_data := oe_msg_pub.get( p_msg_index => k,
p_encoded => 'F'
);
-- Get message count and data
--dbms_output.put_line('err msg ' || k ||'is: ' || out_msg_data);
null;
end loop;
end;
/
No comments:
Post a Comment