PROCEDURE test_api is l_control_rec QP_GLOBALS.Control_Rec_Type; l_return_status VARCHAR2(1); x_msg_count number; x_msg_data Varchar2(2000); x_msg_index number; l_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type; l_MODIFIER_LIST_val_rec QP_Modifiers_PUB.Modifier_List_Val_Rec_Type; l_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type; l_MODIFIERS_val_tbl QP_Modifiers_PUB.Modifiers_Val_Tbl_Type; l_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type; l_QUALIFIERS_val_tbl QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type; l_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type; l_PRICING_ATTR_val_tbl QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type; l_x_MODIFIER_LIST_rec QP_Modifiers_PUB.Modifier_List_Rec_Type; l_x_MODIFIER_LIST_val_rec QP_Modifiers_PUB.Modifier_List_Val_Rec_Type; l_x_MODIFIERS_tbl QP_Modifiers_PUB.Modifiers_Tbl_Type; l_x_MODIFIERS_val_tbl QP_Modifiers_PUB.Modifiers_Val_Tbl_Type; l_x_QUALIFIERS_tbl QP_Qualifier_Rules_PUB.Qualifiers_Tbl_Type; l_x_QUALIFIERS_val_tbl QP_Qualifier_Rules_PUB.Qualifiers_Val_Tbl_Type; l_x_PRICING_ATTR_tbl QP_Modifiers_PUB.Pricing_Attr_Tbl_Type; l_x_PRICING_ATTR_val_tbl QP_Modifiers_PUB.Pricing_Attr_Val_Tbl_Type; mll_rec qp_list_lines%ROWTYPE; pra_rec qp_pricing_attributes%ROWTYPE; BEGIN /* Create a Modifier header of type 'PRO' (Promotion) */ l_MODIFIER_LIST_rec.currency_code:= 'EGP'; l_MODIFIER_LIST_rec.list_type_code:= 'DLT'; --'PRO'; l_MODIFIER_LIST_rec.start_date_active := sysdate; l_MODIFIER_LIST_rec.end_date_active := sysdate+10; l_MODIFIER_LIST_rec.source_system_code:= 'QP'; l_MODIFIER_LIST_rec.active_flag:= 'Y'; l_MODIFIER_LIST_rec.name:= 'API Test'; l_MODIFIER_LIST_rec.description:= 'API Test'; l_MODIFIER_LIST_rec.version_no:= '9.4'; l_MODIFIER_LIST_rec.pte_code := 'ORDFUL'; l_MODIFIER_LIST_rec.operation:= QP_GLOBALS.G_OPR_CREATE; /* Create a Modifier line to specify 'Get 8% discount' condition */ l_MODIFIERS_tbl(1).list_line_type_code := 'DIS'; l_MODIFIERS_tbl(1).automatic_flag:= 'Y'; l_MODIFIERS_tbl(1).modifier_level_code := 'LINE'; l_MODIFIERS_tbl(1).accrual_flag := 'N'; l_MODIFIERS_tbl(1).start_date_active := sysdate; l_MODIFIERS_tbl(1).end_date_active := sysdate+10; l_MODIFIERS_tbl(1).arithmetic_operator := '%'; l_MODIFIERS_tbl(1).pricing_group_sequence := 1; l_MODIFIERS_tbl(1).pricing_phase_id := 2; l_MODIFIERS_tbl(1).operand := 8; l_MODIFIERS_tbl(1).operation := QP_GLOBALS.G_OPR_CREATE; /* Call the Modifiers Public API to create the modifier header and a modifier line */ commit; QP_Modifiers_PUB.Process_Modifiers( 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 => l_return_status , x_msg_count => x_msg_count , x_msg_data => x_msg_data ,p_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec ,p_MODIFIERS_tbl => l_MODIFIERS_tbl --,p_QUALIFIERS_tbl=> l_QUALIFIERS_tbl --,p_PRICING_ATTR_tbl=> l_PRICING_ATTR_tbl ,x_MODIFIER_LIST_rec => l_MODIFIER_LIST_rec ,x_MODIFIER_LIST_val_rec => l_MODIFIER_LIST_val_rec ,x_MODIFIERS_tbl => l_MODIFIERS_tbl ,x_MODIFIERS_val_tbl => l_MODIFIERS_val_tbl ,x_QUALIFIERS_tbl => l_QUALIFIERS_tbl ,x_QUALIFIERS_val_tbl => l_QUALIFIERS_val_tbl ,x_PRICING_ATTR_tbl => l_PRICING_ATTR_tbl ,x_PRICING_ATTR_val_tbl => l_PRICING_ATTR_val_tbl ); commit; IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN RAISE FND_API.G_EXC_UNEXPECTED_ERROR; END IF; EXCEPTION WHEN FND_API.G_EXC_ERROR THEN l_return_status := FND_API.G_RET_STS_ERROR; --Get message count and data dbms_output.put_line('err msg 1 is : ' || x_msg_data); WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN l_return_status := FND_API.G_RET_STS_UNEXP_ERROR ; dbms_output.put_line(' msg count 2 is : ' || x_msg_count); for k in 1 .. x_msg_count loop x_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: ' || x_msg_data); end loop; WHEN OTHERS THEN l_return_status := FND_API.G_RET_STS_UNEXP_ERROR ; dbms_output.put_line(' msg count 2 is : ' || x_msg_count); for k in 1 .. x_msg_count loop x_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: ' || x_msg_data); end loop; end;