更多内容可以参考我的博客



详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697

/*+++++++++++++++++++++++++++++++++++++++++++++++++++
--将数据写入至采购申请接口表
+++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE insert_procure_main(errbuf OUT NOCOPY VARCHAR2,
retcode OUT NOCOPY VARCHAR2) AS
l_poreq_inter_record po.po_requisitions_interface_all%ROWTYPE;
CURSOR poreq_cur IS
/**此处为游标收集数据的SQL,略***/
--索引表
TYPE l_poreq_tbl IS TABLE OF poreq_cur%ROWTYPE INDEX BY BINARY_INTEGER;
l_poreq_record l_poreq_tbl;
/*
L_TEMPLATE_ID Number;
L_LINE_ID Number; --记录上一行
L_HEADER_ID Number; --记录上一个头信息
L_COUNT Number := 0; --记录行中非本状态的行数
L_LINE_STATUS Varchar2(120);
L_HEADER_STATUS Varchar2(120);
L_IMPORTED_COUNT Number := 0; --已导入的行数
L_LINE_COUNT Number := 0; L_ERROR_COUNT Number := 0; --导入发生错误的行数*/
BEGIN
--初始化
--RETCODE := '0';
--ERRBUF := Null;
l_poreq_record.delete;
----Body Start
OPEN poreq_cur;
--批量获取数据
FETCH poreq_cur BULK COLLECT
INTO l_poreq_record;
IF l_poreq_record.count > 0
THEN
--在输出结果时既可以使用集合的count属性和可以使用first和last:
--for i in L_POREQ_RECORD.first .. L_POREQ_RECORD.last
FOR i IN 1 .. l_poreq_record.count LOOP
--接口表的序列:PO_REQUISITIONS_INTER_ALL_s
SELECT po_requisitions_inter_all_s.nextval
INTO l_poreq_inter_record.request_id
FROM dual;
--费用账户ID
SELECT mpv.material_account
INTO l_poreq_inter_record.charge_account_id
FROM mtl_parameters_view mpv
WHERE mpv.organization_id = l_poreq_record(i).received_org_id;
--who
l_poreq_inter_record.creation_date := SYSDATE;
l_poreq_inter_record.created_by := fnd_global.user_id;
l_poreq_inter_record.last_update_login := fnd_global.login_id;
l_poreq_inter_record.last_update_date := SYSDATE;
l_poreq_inter_record.last_updated_by := fnd_global.user_id;
--purchase
l_poreq_inter_record.interface_source_code := 'ROI'; --来源代码,用来控制接口请求的运行范围
l_poreq_inter_record.source_type_code := 'VENDOR'; --来源类型。如果目标类型是EXPENSE或者SHOP FLOOR,那么必须给,一般是VENDOR
l_poreq_inter_record.requisition_type := 'PURCHASE'; --采购申请类型:默认采购申请
l_poreq_inter_record.destination_type_code := l_poreq_record(i)
.destination_type_code; --目的地类型
l_poreq_inter_record.item_description := l_poreq_record(i)
.item_description; --物料名称
l_poreq_inter_record.quantity := l_poreq_record(i)
.quantity; --数量
l_poreq_inter_record.unit_price := l_poreq_record(i)
.unit_price; --物料编码携带的价格
l_poreq_inter_record.authorization_status := 'INCOMPLETE'; --状态,未审批INCOMPLETE
l_poreq_inter_record.req_number_segment1 := l_poreq_record(i)
.application_no; --申请编号
l_poreq_inter_record.header_attribute10 := l_poreq_record(i)
.current_month; --月份
l_poreq_inter_record.header_attribute11 := l_poreq_record(i)
.equip_mai_required; --是否设备维修
l_poreq_inter_record.note_to_buyer := l_poreq_record(i)
.note_to_buyer; --通知采购员
l_poreq_inter_record.note_to_receiver := l_poreq_record(i)
.note_to_receiver; --通知接收员
l_poreq_inter_record.item_id := l_poreq_record(i)
.item_id; --物料编码ID
l_poreq_inter_record.item_segment1 := l_poreq_record(i)
.item_number; --物料编码
l_poreq_inter_record.category_id := l_poreq_record(i)
.category_id; --物料类别的ID
l_poreq_inter_record.category_segment1 := l_poreq_record(i)
.category_segment1; --物料类别
l_poreq_inter_record.unit_of_measure := l_poreq_record(i)
.unit_of_measure; --计量单位
l_poreq_inter_record.line_type := '货物'; --行类型默认为货物(物料类型)
l_poreq_inter_record.un_number_id := l_poreq_record(i)
.un_number_id; --提报部门ID
l_poreq_inter_record.un_number := l_poreq_record(i)
.un_number; --提报部门
l_poreq_inter_record.hazard_class_id := l_poreq_record(i)
.project_number_id; --工程项目号ID
l_poreq_inter_record.hazard_class := l_poreq_record(i)
.project_number; --工程项目号
l_poreq_inter_record.destination_organization_id := l_poreq_record(i)
.received_org_id; --接收组织ID
l_poreq_inter_record.deliver_to_location_id := l_poreq_record(i)
.received_place_id; --接收地点ID
l_poreq_inter_record.deliver_to_requestor_id := l_poreq_record(i)
.deliver_to_requestor_id; --申请人ID
l_poreq_inter_record.deliver_to_requestor_name := l_poreq_record(i)
.deliver_to_requestor_name; --申请人
l_poreq_inter_record.suggested_buyer_id := l_poreq_record(i)
.buyer_id; --采购员ID
l_poreq_inter_record.suggested_buyer_name := l_poreq_record(i)
.suggested_buyer_name; --采购员
l_poreq_inter_record.suggested_vendor_item_num := substrb(l_poreq_record(i)
.equip_spare_use,
1,
25); --设备备件用途
l_poreq_inter_record.line_attribute_category := '';--<span id="kM0.9812031188048422">@此处为说明性弹性域的段值</span>
l_poreq_inter_record.line_attribute2 := l_poreq_record(i)
.line_attribute2; --<span id="kM0.2401782302185893">@弹性域值(客户化)</span>
l_poreq_inter_record.line_attribute6 := l_poreq_record(i)
.line_attribute6; --维修号
l_poreq_inter_record.need_by_date := l_poreq_record(i)
.require_time; --需要时间
l_poreq_inter_record.currency_code := l_poreq_record(i)
.currency_code; --币种
l_poreq_inter_record.org_id := l_poreq_record(i).org_id; --业务实体
--L_POREQ_INTER_RECORD.CHARGE_ACCOUNT_ID := L_POREQ_INTER_REC(i).ACCOUNT_ID;
--L_POREQ_INTER_RECORD.ACCRUAL_ACCOUNT_ID := --应计帐户
--L_POREQ_INTER_RECORD.VARIANCE_ACCOUNT_ID := --差异帐户
INSERT INTO po.po_requisitions_interface_all
VALUES l_poreq_inter_record;
/*******此处需要增加反写记录设置,即是标记哪些数据已经被创建过申请等*********/
COMMIT;
END LOOP;
CLOSE poreq_cur;
retcode := '0';
errbuf := '导入成功' || l_poreq_record.count || '条采购申请。';
END IF;
/* --勾选的记录的数量与成功导入的记录数的关系
If L_POREQ_RECORD.COUNT*/
END;

                           --多条记录M,单条记录S,全部记录A
mo_global.set_policy_context(p_access_mode => 'S', p_org_id => org_id);
fnd_request.set_org_id(org_id);
l_request_id := fnd_request.submit_request('PO',
'REQIMPORT',
'',
to_char(SYSDATE,
'YYYY/MM/DD HH24:MI:SS'),
FALSE,
'ROI',
'',
'ALL',
'',
'N',
'N',
chr(0), COMMIT;

详解EBS接口开发之采购申请导入的更多相关文章

  1. 详解EBS接口开发之采购订单导入

    采购订单常用标准表简介 1.1   常用标准表 如下表中列出了与采购订单导入相关的表和说明: 表名 说明 其他信息 po.po_headers_all 采购订单头 采购订单号,采购类型,供应商,地点, ...

  2. 详解EBS接口开发之采购接收&退货处理之关键API--(补充)

    PROCEDURE process_rcv_online(p_api_version IN NUMBER, p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_ ...

  3. 详解EBS接口开发之应收INVOICE导入

    (一)应收INVOICE常用标准表简介 1.1   常用标准表 如下表中列出了与应收INVOICE导入相关的表和说明: 表名 说明 其他信息 RA_BATCH_SOURCES_ALL AR事务处理来源 ...

  4. 详解EBS接口开发之销售订单导入

     步骤 1. 创建一个订单导入来源.       - 导航到 OM -> 设置 -> 订单 -> 导入来源       - 输入一个新的订单导入来源名称和描述 - 选择启用来激活 ...

  5. 详解EBS接口开发之库存事务处理采购接收--补充

    除了可以用  详解EBS接口开发之库存事务处理采购接收的方法还可以用一下方法,不同之处在于带有批次和序列控制的时候实现方式不同 The script will load records into ...

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

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

  7. 供应商API补充(详解EBS接口开发之供应商导入)(转)

    原文地址  供应商导入的API补充(详解EBS接口开发之供应商导入) --供应商 --创建 AP_VENDOR_PUB_PKG.Create_Vendor ( p_api_version IN NUM ...

  8. 详解EBS接口开发之应收款处理

    参考实例参考:杜春阳 R12应收模块收款API研究 (一)应收款常用标准表简介 1.1   常用标准表 如下表中列出了与应收款处理相关的表和说明: 表名 说明 其他信息 AR_BATCHES_ALL ...

  9. 详解EBS接口开发之库存事务处理采购接收和退货

    (一)接收&退货常用标准表简介 1.1   常用标准表 如下表中列出了与采购接收&退货导入相关的表和说明: 表名 说明 其他信息 RCV_TRANSACTIONS 采购接收事务表 事务 ...

随机推荐

  1. bzoj 1875: [SDOI2009]HH去散步

    Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但 是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又 ...

  2. hihiocoder 1255(搜索)(2015ACM/ICPC北京站)

    题意: 给你四个矩形,判断能否从中选出3个组成一个矩形 思路: 1.搜索,如果两个能组成一个新的,则将他们合并,继续搜索 2.暴力判断 最开始没注意到3,一直以为要用4个,WR #include &l ...

  3. [APIO2014]

    T1.回文树裸题. #include<cstdio> #include<iostream> #define ll long long using namespace std; ...

  4. C语言程序第三次作业

    (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 输入输出样例1: Enterr x: 10.0 f(10.0) = 0.1 输入输出样例2: En ...

  5. Docker学习笔记【三】安装Redis

    项目中使用到Redis,平常都是别人搭建的,今天试着在Google Cloud Platform 上搭建一个学习环境. 1.使用 docker pull redis 从docker hub中下载镜像 ...

  6. python 程序中调用go

    虽然python优点很多,但是有一个致命的缺点就是运行速度太慢,那么python程序需要一些计算量比较大的模块时一般会调用c或者c++的代码来重写,但是c/c++编写代码代价太高,耗费太多的人力.那么 ...

  7. 腾讯北京SNG一面

    写在前面 面试官超nice,以一种聊天的形式跟你交流.上午10点10左右开始,11点40结束.总的来说,基础还可以,但是有些东西的底层学的还是不够深. 问题回忆 自我介绍 怎么平衡科研与项目开发之间的 ...

  8. rabbitMQ权限相关命令

    权限相关命令为: (1) 设置用户权限 rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP (2) 查看(指 ...

  9. 读书笔记-《Maven实战》-关于Maven依赖传递的思考 2018/4/26

    上次读书笔记中,提到了依赖传递.看着依赖传递表,一直在思考为什么会是这样. 先看传递表: compile test provided runtime compile test provided run ...

  10. 前端开发利器VSCode

    最近找到一款非常好用的开发利器,VSCode.一直认为微软做的东西都很一般,这个软件让我刮目相看了. 之前使用webstorm卡的不行,换了这个非常好用. 用着还不错,这里记录下一些使用的心得. VS ...