DECLARE
p_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE;
p_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE;
p_line_attr_tbl QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
p_LINE_DETAIL_tbl QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
p_LINE_DETAIL_qual_tbl QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
p_LINE_DETAIL_attr_tbl QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
p_related_lines_tbl QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
p_control_rec QP_PREQ_GRP.CONTROL_RECORD_TYPE;
x_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE;
x_line_qual QP_PREQ_GRP.QUAL_TBL_TYPE;
x_line_attr_tbl QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
x_line_detail_tbl QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
x_line_detail_qual_tbl QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
x_line_detail_attr_tbl QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
x_related_lines_tbl QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
x_return_status VARCHAR2(240);
x_return_status_text VARCHAR2(240);
qual_rec QP_PREQ_GRP.QUAL_REC_TYPE;
line_attr_rec QP_PREQ_GRP.LINE_ATTR_REC_TYPE;
line_rec QP_PREQ_GRP.LINE_REC_TYPE;
rltd_rec QP_PREQ_GRP.RELATED_LINES_REC_TYPE;
ldet_rec QP_PREQ_GRP.LINE_DETAIL_REC_TYPE;
line_detail_attr_rec QP_PREQ_GRP.LINE_DETAIL_ATTR_REC_TYPE;
line_detail_qual_rec QP_PREQ_GRP.LINE_DETAIL_QUAL_REC_TYPE;
l_pricing_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
l_qualifier_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type; I BINARY_INTEGER;
l_version VARCHAR2(240); --Variables
l_operation QP_LIST_LINES.ARITHMETIC_OPERATOR%TYPE; --Operation
l_operand QP_LIST_LINES.OPERAND%TYPE; --Operand
l_list_line_type_code QP_LIST_LINES.LIST_LINE_TYPE_CODE%TYPE; --List line type
l_mod_level_code QP_LIST_LINES.MODIFIER_LEVEL_CODE%TYPE; --Modifier level code BEGIN DBMS_OUTPUT.ENABLE(10000); oe_debug_pub.SetDebugLevel(5); -- Set debug level
oe_debug_pub.G_DIR :='/usr/tmp'; -- Directory to store debug file --Print debug file name
dbms_output.put_line('The File is'|| oe_debug_pub.Set_Debug_Mode('FILE')); --Initialization
oe_debug_pub.Initialize;
oe_debug_pub.debug_on;
--fnd_global.apps_initialize(1564,21623,660);
mo_global.init('QP'); /*QP_Attr_Mapping_PUB.Build_Contexts(
p_request_type_code => 'ONT',
p_pricing_type => 'L',
x_price_contexts_result_tbl => l_pricing_contexts_Tbl,
x_qual_contexts_result_tbl => l_qualifier_Contexts_Tbl );*/ -- Passing Information to the Pricing Engine
-- Setting up the control record variables
-- Please refer documentation for explanation of each of these settings ---- Control Record
p_control_rec.pricing_event :='LINE';-- 'BATCH';
p_control_rec.calculate_flag := 'Y'; --QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
p_control_rec.simulation_flag := 'N';
p_control_rec.rounding_flag := 'Q';
p_control_Rec.manual_discount_flag := 'Y';
p_control_rec.request_type_code := 'ONT';
p_control_rec.TEMP_TABLE_INSERT_FLAG := 'Y'; -- Request Line (Order Line) Information
line_rec.request_type_code :='ONT';
line_rec.line_id :=17157; -- Order Line Id. This can be any thing for this script
line_rec.line_Index :='1'; -- Request Line Index
line_rec.line_type_code := 'LINE'; -- LINE or ORDER(Summary Line)
line_rec.pricing_effective_date := sysdate; -- Pricing as of what date ?
line_rec.active_date_first := sysdate; -- Can be Ordered Date or Ship Date
line_rec.active_date_second := sysdate; -- Can be Ordered Date or Ship Date
line_rec.active_date_first_type := 'NO TYPE'; -- ORD/SHIP
line_rec.active_date_second_type :='NO TYPE'; -- ORD/SHIP
line_rec.line_quantity := 1; -- Ordered Quantity
line_rec.line_uom_code := 'EA'; -- Ordered UOM Code
line_rec.currency_code := 'USD'; -- Currency Code
line_rec.price_flag := 'Y'; -- Price Flag can have 'Y' , 'N'(No pricing) , 'P'(Phase)
p_line_tbl(1) := line_rec; --Attach detail attributes -- Pricing Attributes Passed In
--Pass inventory item id
line_attr_rec.LINE_INDEX := 1; -- Attributes for the above line. Attributes are attached with the line index
line_attr_rec.PRICING_CONTEXT :='ITEM';
line_attr_rec.PRICING_ATTRIBUTE :='PRICING_ATTRIBUTE1';
line_attr_rec.PRICING_ATTR_VALUE_FROM := '25006';-- Inventory Item Id
line_attr_rec.VALIDATED_FLAG :='N';
p_line_attr_tbl(3):= line_attr_rec; --Pass price list id
qual_rec.LINE_INDEX := 1; -- Attributes for the above line. Attributes are attached with the line index
qual_rec.QUALIFIER_CONTEXT :='MODLIST';
qual_rec.QUALIFIER_ATTRIBUTE :='QUALIFIER_ATTRIBUTE4';
qual_rec.QUALIFIER_ATTR_VALUE_FROM :='6009'; -- Price List Id
qual_rec.COMPARISON_OPERATOR_CODE := '=';
qual_rec.VALIDATED_FLAG :='Y';
p_qual_tbl(1):= qual_rec; --Modifier Line
qual_rec.LINE_INDEX := 1; -- Attributes for the above line. Attributes are attached with the line index
qual_rec.QUALIFIER_CONTEXT :='MODLIST';
qual_rec.QUALIFIER_ATTRIBUTE :='QUALIFIER_ATTRIBUTE2';
qual_rec.QUALIFIER_ATTR_VALUE_FROM :='47682'/*'39360'*/; -- Modifier line id
qual_rec.COMPARISON_OPERATOR_CODE := '=';
qual_rec.VALIDATED_FLAG :='N';
p_qual_tbl(2):= qual_rec; -- Actual Call to the Pricing Engine
QP_PREQ_PUB.PRICE_REQUEST
(p_line_tbl,
p_qual_tbl,
p_line_attr_tbl,
p_line_detail_tbl,
p_line_detail_qual_tbl,
p_line_detail_attr_tbl,
p_related_lines_tbl,
p_control_rec,
x_line_tbl,
x_line_qual,
x_line_attr_tbl,
x_line_detail_tbl,
x_line_detail_qual_tbl,
x_line_detail_attr_tbl,
x_related_lines_tbl,
x_return_status,
x_return_status_text);
/*
-- Interpreting Information From the Pricing Engine . Output statements commented. Please uncomment for debugging
*/
-- Return Status Information ..
DBMS_OUTPUT.PUT_LINE('Return Status text '|| x_return_status_text);
DBMS_OUTPUT.PUT_LINE('Return Status '|| x_return_status); DBMS_OUTPUT.PUT_LINE('+---------Information Returned to Caller---------------------+ '); DBMS_OUTPUT.PUT_LINE('-------------Request Line Information-------------------'); I := x_line_tbl.FIRST;
IF I IS NOT NULL THEN
LOOP
DBMS_OUTPUT.PUT_LINE('Line Index: '||x_line_tbl(I).line_index);
DBMS_OUTPUT.PUT_LINE('Unit_price: '||x_line_tbl(I).unit_price);
DBMS_OUTPUT.PUT_LINE('Percent price: '||x_line_tbl(I).percent_price);
DBMS_OUTPUT.PUT_LINE('Adjusted Unit Price: '||x_line_tbl(I).adjusted_unit_price);
DBMS_OUTPUT.PUT_LINE('Pricing status code: '||x_line_tbl(I).status_code);
DBMS_OUTPUT.PUT_LINE('Pricing status text: '||x_line_tbl(I).status_text);
EXIT WHEN I = x_line_tbl.LAST;
I := x_line_tbl.NEXT(I);
END LOOP;
END IF; DBMS_OUTPUT.PUT_LINE('-----------Pricing Attributes Information-------------'); I := x_line_detail_attr_tbl.FIRST;
IF I IS NOT NULL THEN
LOOP DBMS_OUTPUT.PUT_LINE('Line detail Index '||x_line_detail_attr_tbl(I).line_detail_index);
DBMS_OUTPUT.PUT_LINE('Context '||x_line_detail_attr_tbl(I).pricing_context);
DBMS_OUTPUT.PUT_LINE('Attribute '||x_line_detail_attr_tbl(I).pricing_attribute);
DBMS_OUTPUT.PUT_LINE('Value '||x_line_detail_attr_tbl(I).pricing_attr_value_from);
DBMS_OUTPUT.PUT_LINE('Status Code '||x_line_detail_attr_tbl(I).status_code);
DBMS_OUTPUT.PUT_LINE('---------------------------------------------------'); EXIT WHEN I = x_line_detail_attr_tbl.last;
I:=x_line_detail_attr_tbl.NEXT(I); END LOOP;
END IF; DBMS_OUTPUT.PUT_LINE('-----------Qualifier Attributes Information-------------'); I := x_line_detail_qual_tbl.FIRST;
IF I IS NOT NULL THEN
LOOP
DBMS_OUTPUT.PUT_LINE('Line Detail Index '||x_line_detail_qual_tbl(I).line_detail_index);
DBMS_OUTPUT.PUT_LINE('Context '||x_line_detail_qual_tbl(I).qualifier_context);
DBMS_OUTPUT.PUT_LINE('Attribute '||x_line_detail_qual_tbl(I).qualifier_attribute);
DBMS_OUTPUT.PUT_LINE('Value '||x_line_detail_qual_tbl(I).qualifier_attr_value_from);
DBMS_OUTPUT.PUT_LINE('Status Code '||x_line_detail_qual_tbl(I).status_code);
DBMS_OUTPUT.PUT_LINE('---------------------------------------------------'); EXIT WHEN I = x_line_detail_qual_tbl.last;
I:=x_line_detail_qual_tbl.NEXT(I); END LOOP;
END IF; I := x_line_detail_tbl.FIRST; DBMS_OUTPUT.PUT_LINE('------------Price List/Discount Information------------'); IF I IS NOT NULL THEN
LOOP
DBMS_OUTPUT.PUT_LINE('Line Index: '||x_line_detail_tbl(I).line_index);
DBMS_OUTPUT.PUT_LINE('Line Detail Index: '||x_line_detail_tbl(I).line_detail_index);
DBMS_OUTPUT.PUT_LINE('Line Detail Type:'||x_line_detail_tbl(I).line_detail_type_code);
DBMS_OUTPUT.PUT_LINE('List Header Id: '||x_line_detail_tbl(I).list_header_id);
DBMS_OUTPUT.PUT_LINE('List Line Id: '||x_line_detail_tbl(I).list_line_id);
DBMS_OUTPUT.PUT_LINE('List Line Type Code: '||x_line_detail_tbl(I).list_line_type_code);
DBMS_OUTPUT.PUT_LINE('Adjustment Amount : '||x_line_detail_tbl(I).adjustment_amount);
DBMS_OUTPUT.PUT_LINE('Line Quantity : '||x_line_detail_tbl(I).line_quantity);
DBMS_OUTPUT.PUT_LINE('Operand Calculation Code: '||x_line_detail_tbl(I).Operand_calculation_code);
DBMS_OUTPUT.PUT_LINE('Operand value: '||x_line_detail_tbl(I).operand_value);
DBMS_OUTPUT.PUT_LINE('Automatic Flag: '||x_line_detail_tbl(I).automatic_flag);
DBMS_OUTPUT.PUT_LINE('Override Flag: '||x_line_detail_tbl(I).override_flag);
DBMS_OUTPUT.PUT_LINE('status_code: '||x_line_detail_tbl(I).status_code);
DBMS_OUTPUT.PUT_LINE('status text: '||x_line_detail_tbl(I).status_text);
DBMS_OUTPUT.PUT_LINE('-------------------------------------------');
EXIT WHEN I = x_line_detail_tbl.LAST;
I := x_line_detail_tbl.NEXT(I);
END LOOP;
END IF; DBMS_OUTPUT.PUT_LINE('--------------Related Lines Information for Price Breaks/Service Items---------------'); I := x_related_lines_tbl.FIRST;
IF I IS NOT NULL THEN
LOOP
DBMS_OUTPUT.PUT_LINE('Line Index :'||x_related_lines_tbl(I).line_index);
DBMS_OUTPUT.PUT_LINE('Line Detail Index: '||x_related_lines_tbl(I).LINE_DETAIL_INDEX);
DBMS_OUTPUT.PUT_LINE('Relationship Type Code: '||x_related_lines_tbl(I).relationship_type_code);
DBMS_OUTPUT.PUT_LINE('Related Line Index: '||x_related_lines_tbl(I).RELATED_LINE_INDEX);
DBMS_OUTPUT.PUT_LINE('Related Line Detail Index: '||x_related_lines_tbl(I).related_line_detail_index);
DBMS_OUTPUT.PUT_LINE('Status Code: '|| x_related_lines_tbl(I).STATUS_CODE);
EXIT WHEN I = x_related_lines_tbl.LAST;
I := x_related_lines_tbl.NEXT(I);
END LOOP;
END IF; END;

Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier的更多相关文章

  1. HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item

    In this Document Goal   Solution   References APPLIES TO: Oracle Advanced Pricing - Version 11.5.10 ...

  2. How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes

    How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes ...

  3. 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

    原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...

  4. Sample Code之Web scene-slides

    这是我的第一篇随笔,在开始正文前说几句. 这个系列会记录我学习Arcgis js API 4.10的全过程,希望能对自己也对其他有需要的人有帮助.很多时候上网看一些大神的帖子会感到一头雾水,一是自己水 ...

  5. android studio2.2 的Find Sample Code点击没有反应

    1 . 出现的问题描述:           右键点击Find Sample Code后半天没有反应,然后提示 Samples are currently unavailable for :{**** ...

  6. Code First 关系 Fluent API

    通过实体框架 Code First,可以使用您自己的域类表示 EF 执行查询.更改跟踪和更新函数所依赖的模型.Code First 利用称为“约定先于配置”的编程模式.这意味着 Code First ...

  7. IOS开发苹果官方Sample Code及下载地址

    IOS开发苹果官方Sample Code及下载地址 在线浏览地址:https://developer.apple.com/library/ios/navigation/#section=Resourc ...

  8. OAF Sample Code(转)

    原文地址: OAF Sample Code

  9. Code First约定-Fluent API配置

    转自:http://blog.163.com/m13864039250_1/blog/static/2138652482015283397609/ 用Fluent API 配置/映射属性和类型 简介 ...

随机推荐

  1. springMVC源码分析--HandlerMapping(一)

    HandlerMapping的工作就是为每个请求找到合适的请求找到一个处理器handler,其实现机制简单来说就是维持了一个url到Controller关系的Map结构,其提供的实际功能也是根据req ...

  2. 奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示

    Orbbec Astra Pro传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示 这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在R ...

  3. 计算机网络中的TCP/IP模型

    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Inter ...

  4. 使用github搭建网站

    http://blog.csdn.net/pipisorry/article/details/51707366 使用github建站 github设计了Pages功能,允许用户自定义项目首页,用来替代 ...

  5. 3.0、Android Studio构建和运行应用

    默认情况下,Android Studio可以通过简单的点击就会将新的项目部署到虚拟机或者物理设备中.在Instant Run的帮助下,你可以将更改的方法或资源文件直接推送到一个运行的app而无需构建一 ...

  6. UNIX环境高级编程——标准IO-实现查看所有用户

    #include <string.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h&g ...

  7. Google会思考的深度学习系统

    上周五在旧金山举行的机器学习会议上,Google软件工程师Quoc V. Le讲解了Google的"深度学习"系统是如何运作的. "深度学习"需要用到大型计算机 ...

  8. 详解EBS接口开发之库存事务处理批次更新

    库存事务处理批次有时候出现导入错误需要更新可使用次程序更新,批次导入可参考博客 详解EBS接口开发之库存事务处理-物料批次导入 http://blog.csdn.net/cai_xingyun/art ...

  9. GDAL1.11版本对SHP文件索引加速测试

    GDAL库中对于矢量数据的读取中可以设置一些过滤器来对矢量图形进行筛选,对于Shapefile格式来说,如果数据量太大,设置这个过滤器时间慢的简直无法忍受.好在GDAL1.10版本开始支持读取Shap ...

  10. 学习笔记-JS公开课二

    typeof运算符的使用 JS中内置对象Array/Date/Math/String可以看成引用类型 做如下测试: <scripttype="text/javascript" ...