Oracle EBS11i:使用接口表抛数所生成OM订单
2014-11-26 17:05
225 查看
一开始是用接口抛数据到interface的表,再通过后台跑请求,抛入ERP的,不过在测试过程中发现速度有点慢,等待的时间有点长,所以到最后才换成直接使用API生在订单.
这里记录并分享一下主要的procedure ,欢迎指教!谢谢.
--抛数据到接口表
/*插入至接口表中*/
procedure InsertOOMINTERFACE(P_SOE_ORDERNO varchar2,
v_retval out varchar2,
v_retmessage out varchar2) is
cursor cur_om_header is
select *
from bbkedu_om_temp_header oth
where oth.soe_order_no = P_SOE_ORDERNO
and rownum = 1
order by oth.soeheadid desc;
cursor cur_om_lines is
select *
from bbkedu_om_temp_line otl
where otl.soe_order_no = P_SOE_ORDERNO;
v_header_id varchar(20);
retval varchar2(5000);
v_line_id varchar(20);
v_errorcode varchar(1000);
v_bill_to_id Number; ---收单方ID
v_count number;
v_request_id number;
begin
for crm_header_rec in cur_om_header loop
Select Oe_Order_Headers_s.Nextval Into v_header_id From Dual;
Insert Into oe_headers_iface_all
(Operation_Code,
order_Source_Id,
org_Id,
orig_Sys_Document_Ref,
ordered_Date,
order_Type_Id,
Price_List_Id,
Transactional_Curr_Code,
Salesrep_Id,
Payment_Term_Id,
Sold_From_Org_Id,
Sold_To_Org_Id,
sold_to_contact_id,
Ship_From_Org_Id,
Ship_To_Org_Id,
ship_to_contact_id,
Invoice_To_Org_Id,
invoice_to_contact_id,
Booked_Flag,
Closed_Flag,
Created_By,
Creation_Date,
Last_Update_Date,
Last_Updated_By,
Request_Date,
Return_Reason_Code,
Accounting_Rule_Id,
Conversion_Type_Code,
Demand_Class_Code,
Fob_Point_Code,
Freight_Carrier_Code,
Freight_Terms_Code,
Invoicing_Rule_Id,
Last_Update_Login,
order_Category,
order_Date_Type_Code,
Sales_Channel_Code,
Tax_Exempt_Flag,
global_attribute2,
global_attribute3)
Values
('Insert',
0,
102,
'OE_ORDER_HEADERS_ALL' || v_header_id,
crm_header_rec.Ordered_Date,
crm_header_rec.Order_Type_Id,
crm_header_rec.Price_List_Id,
crm_header_rec.Transactional_Curr_Code,
crm_header_rec.Salesrep_Id,
crm_header_rec.Payment_Term_Id,
crm_header_rec.customer_id,
crm_header_rec.Sold_To_Org_Id,
NULL,
crm_header_rec.Ship_To_Org_Id,
null,
NULL,
crm_header_rec.Invoice_To_Org_Id,
NULL,
'Y',
'N',
-1,
crm_header_rec.Creation_Date,
crm_header_rec.Creation_Date,
-1,
SYSDATE,
NULL,
1,
'Corporate',
crm_header_rec.Demand_Class_Code,
NULL,
NULL,
NULL,
-2,
-1,
'ORDER',
NULL,
NULL,
'S',
crm_header_rec.soeheadid,
crm_header_rec.soe_order_no);
FOR crm_line_rec IN cur_om_lines LOOP
Select Oe_Order_Lines_s.NEXTVAL INTO v_line_id FROM Dual;
--dbms_output.put_line('line_id is ' || v_line_id);
/*v_line_id := v_line_id + 1;*/
Insert INTO oe_lines_iface_all
(Orig_Sys_Document_Ref,
order_Source_Id,
orig_Sys_Line_Ref,
Created_By,
Creation_Date,
Last_Updated_By,
Last_Update_Date,
org_Id,
Inventory_Item_Id,
ordered_Quantity,
order_Quantity_Uom,
Unit_Selling_Price,
Unit_List_Price,
Request_Date,
Schedule_Ship_Date,
Return_Reason_Code,
Subinventory,
Sold_From_Org_Id,
Sold_To_Org_Id,
Ship_From_Org_Id,
Ship_To_Org_Id,
Invoice_To_Org_Id,
Operation_Code,
Line_Type_Id,
Line_Number,
Price_List_Id,
Pricing_Date,
Tax_Code,
Tax_Value,
Tax_Date,
Payment_Term_Id,
Salesrep_Id,
Item_Revision,
Calculate_Price_Flag,
Accounting_Rule_Id,
Closed_Flag,
Delivery_Lead_Time,
Demand_Class_Code,
Invoicing_Rule_Id,
Item_Type_Code,
Last_Update_Login,
Option_Flag,
Pricing_Quantity,
Pricing_Quantity_Uom,
Promise_Date,
Schedule_Arrival_Date,
Shipment_Number,
Shipment_Priority_Code,
Ship_Set_Id,
Ship_Tolerance_Above,
Ship_Tolerance_Below,
Source_Type_Code,
Tax_Exempt_Flag,
global_attribute2,
ATTRIBUTE12,
global_attribute3)
VALUES
('OE_ORDER_HEADERS_ALL' || v_header_id,
0,
'OE_ORDER_LINES_ALL' || v_line_id,
-1,
SYSDATE,
-1,
SYSDATE,
102,
crm_line_rec.inventory_item_id,
crm_line_rec.ordered_quantity,
crm_line_rec.pricing_quantity_uom,
crm_line_rec.Unit_Selling_Price,
crm_line_rec.Unit_List_Price,
crm_line_rec.Request_Date,
NULL,
NULL,
NULL,
crm_line_rec.Sold_From_Org_Id,
crm_line_rec.Sold_To_Org_Id,
crm_line_rec.Ship_From_Org_Id,
crm_line_rec.Ship_To_Org_Id,
crm_header_rec.Invoice_To_Org_Id,
'Insert',
crm_line_rec.Line_Type_Id,
NULL,
crm_line_rec.Price_List_Id,
crm_line_rec.Pricing_Date,
NULL,
NULL,
NULL,
crm_header_rec.payment_term_id,
crm_line_rec.Salesrep_Id,
NULL,
'Y',
1,
'N',
NULL,
crm_line_rec.Demand_Class_Code,
-2,
'STANDARD',
-1,
NULL,
crm_line_rec.Pricing_Quantity,
crm_line_rec.Pricing_Quantity_Uom,
crm_line_rec.Promise_Date,
NULL,
NULL,
NULL,
NULL,
0,
0,
'INTERNAL',
'S',
crm_line_rec.global_attribute2,
crm_line_rec.soelineid,
crm_line_rec.soe_order_no);
retval := 1;
END LOOP;
END LOOP;
COMMIT;
end InsertOOMINTERFACE;
--调用后台跑请求
Procedure RUNOMIMPORTREQUEST(retcode out number, retmessage out varchar2) is
v_request_id number;
v_request_flag BOOLEAN;
v_concat varchar2(25) := 'CUX' || to_char(sysdate, 'YYMMDDHH24');
v_phase varchar2(240);
v_status varchar2(240);
v_dev_phase varchar2(240);
v_dev_status varchar2(240);
v_message varchar2(240);
custom_exception EXCEPTION;
Begin
--初始化设置 dezai.cn
fnd_global.apps_initialize(5047, 1013, 201);
v_request_id := FND_REQUEST.SUBMIT_REQUEST('ONT', -- 请求定义的模组代码
'OEOIMP', -- Concurrent 名称
NULL, --固定值
NULL, --固定值
FALSE, --固定值
'', -- 订单来源
'', --Order Reference
'NO', --validate only,
'', --Instance
'', --change sequence
null, --Trim Trailing blanks
'Yes', --validate descriptive flexfields
chr(0) -- 代表传参结束,本例子说明传了3个参数
);
IF v_request_id <> 0 THEN
COMMIT;
END IF;
EXCEPTION
WHEN custom_exception THEN
retcode := -20002;
retmessage := ' 错误提示:导入ERP正式表出错!' || SUBSTR(SQLERRM, 1, 250);
--RAISE custom_exception;
ROLLBACK;
RETURN;
WHEN OTHERS THEN
retcode := -20003;
retmessage := ' 错误提示:导入ERP正式表出错!' || SUBSTR(SQLERRM, 1, 250);
FND_FILE.PUT_LINE(FND_FILE.LOG, retcode);
--RAISE custom_exception;
ROLLBACK;
RETURN;
end RUNOMIMPORTREQUEST;
相关文章推荐
- 简单两步快速学会使用Mybatis-Generator自动生成entity实体、dao接口和简单mapper映射(用mysql和oracle举例)
- Oracle序列 生成订单流水号(加日期或别的信息)
- 注意使用PowerDesigner 生成 Oracle表时候带来的问题
- Oracle学习记录——使用自定义函数和触发器实现主键动态生成
- U811.1接口EAI系列之四--委外订单生成--VB语言
- 使用VTemplate模板引擎动态生成订单流程图
- 使用CodeSmith为一个ORACLE中的表生成存储过程失败
- Oracle序列生成订单流水号
- 在oracle中 生成大规模数据 500万条 (使用导入数据方式 sqlldr 导入命令 *.ctl文件)
- ORACLE调用接口(OCI)中对象类型转化器(OTT)的使用
- 使用Toad生成Oracle Scheduler Job DDL
- hibernate3 Annotation中使用oracle seq生成主键值
- oracle的序列使用,创建、表中调用、主键自动生成
- Linq to Oracle 使用教程(八)使用 T4 模版生成代码
- 一张OM订单(同一ITEM)要生成多个AR发票
- 在VB中如何直接使用CLSID生成接口实例
- 使用mex C生成MATLAB的股票数据分析接口
- red hat下使用oracle instant client的occi接口读写数据库中文乱码问题
- oracle 坏块 使用bbed模拟坏块生成
- Oracle一些接口表的使用方法