详解EBS接口开发之采购申请导入(转载)

  1. /*+++++++++++++++++++++++++++++++++++++++++++++++++++  
  2.   --将数据写入至采购申请接口表  
  3.   +++++++++++++++++++++++++++++++++++++++++++++++++++*/  
  4.   PROCEDURE insert_procure_main(errbuf  OUT NOCOPY VARCHAR2,  
  5.                                 retcode OUT NOCOPY VARCHAR2) AS  
  6.     l_poreq_inter_record po.po_requisitions_interface_all%ROWTYPE;  
  7.     CURSOR poreq_cur IS  
  8. /**此处为游标收集数据的SQL,略***/  
  9.     --索引表  
  10.     TYPE l_poreq_tbl IS TABLE OF poreq_cur%ROWTYPE INDEX BY BINARY_INTEGER;  
  11.     l_poreq_record l_poreq_tbl;  
  12.     /*  
  13.     L_TEMPLATE_ID    Number;  
  14.     L_LINE_ID        Number; --记录上一行  
  15.     L_HEADER_ID      Number; --记录上一个头信息  
  16.     L_COUNT          Number := 0; --记录行中非本状态的行数  
  17.     L_LINE_STATUS    Varchar2(120);  
  18.     L_HEADER_STATUS  Varchar2(120);  
  19.     L_IMPORTED_COUNT Number := 0; --已导入的行数  
  20.     L_LINE_COUNT     Number := 0;  
  21.       
  22.     L_ERROR_COUNT Number := 0; --导入发生错误的行数*/  
  23.   BEGIN  
  24.     --初始化    
  25.     --RETCODE := '0';  
  26.     --ERRBUF  := Null;  
  27.     l_poreq_record.delete;  
  28.     ----Body Start  
  29.     OPEN poreq_cur;  
  30.     --批量获取数据  
  31.     FETCH poreq_cur BULK COLLECT  
  32.       INTO l_poreq_record;  
  33.     IF l_poreq_record.count > 0  
  34.     THEN  
  35.       --在输出结果时既可以使用集合的count属性和可以使用first和last:  
  36.       --for i in L_POREQ_RECORD.first .. L_POREQ_RECORD.last  
  37.       FOR i IN 1 .. l_poreq_record.count LOOP  
  38.         --接口表的序列:PO_REQUISITIONS_INTER_ALL_s  
  39.         SELECT po_requisitions_inter_all_s.nextval  
  40.         INTO l_poreq_inter_record.request_id  
  41.         FROM dual;  
  42.         --费用账户ID  
  43.         SELECT mpv.material_account  
  44.         INTO l_poreq_inter_record.charge_account_id  
  45.         FROM mtl_parameters_view mpv  
  46.         WHERE mpv.organization_id = l_poreq_record(i).received_org_id;  
  47.         --who  
  48.         l_poreq_inter_record.creation_date     := SYSDATE;  
  49.         l_poreq_inter_record.created_by        := fnd_global.user_id;  
  50.         l_poreq_inter_record.last_update_login := fnd_global.login_id;  
  51.         l_poreq_inter_record.last_update_date  := SYSDATE;  
  52.         l_poreq_inter_record.last_updated_by   := fnd_global.user_id;  
  53.         --purchase  
  54.         l_poreq_inter_record.interface_source_code       := 'ROI'--来源代码,用来控制接口请求的运行范围  
  55.         l_poreq_inter_record.source_type_code            := 'VENDOR'--来源类型。如果目标类型是EXPENSE或者SHOP FLOOR,那么必须给,一般是VENDOR  
  56.         l_poreq_inter_record.requisition_type            := 'PURCHASE'--采购申请类型:默认采购申请  
  57.         l_poreq_inter_record.destination_type_code       := l_poreq_record(i)  
  58.                                                             .destination_type_code; --目的地类型  
  59.         l_poreq_inter_record.item_description            := l_poreq_record(i)  
  60.                                                             .item_description; --物料名称  
  61.         l_poreq_inter_record.quantity                    := l_poreq_record(i)  
  62.                                                             .quantity; --数量  
  63.         l_poreq_inter_record.unit_price                  := l_poreq_record(i)  
  64.                                                             .unit_price; --物料编码携带的价格  
  65.         l_poreq_inter_record.authorization_status        := 'INCOMPLETE'--状态,未审批INCOMPLETE  
  66.         l_poreq_inter_record.req_number_segment1         := l_poreq_record(i)  
  67.                                                             .application_no; --申请编号  
  68.         l_poreq_inter_record.header_attribute10          := l_poreq_record(i)  
  69.                                                             .current_month; --月份  
  70.         l_poreq_inter_record.header_attribute11          := l_poreq_record(i)  
  71.                                                             .equip_mai_required; --是否设备维修  
  72.         l_poreq_inter_record.note_to_buyer               := l_poreq_record(i)  
  73.                                                             .note_to_buyer; --通知采购员  
  74.         l_poreq_inter_record.note_to_receiver            := l_poreq_record(i)  
  75.                                                             .note_to_receiver; --通知接收员  
  76.         l_poreq_inter_record.item_id                     := l_poreq_record(i)  
  77.                                                             .item_id; --物料编码ID  
  78.         l_poreq_inter_record.item_segment1               := l_poreq_record(i)  
  79.                                                             .item_number; --物料编码  
  80.         l_poreq_inter_record.category_id                 := l_poreq_record(i)  
  81.                                                             .category_id; --物料类别的ID  
  82.         l_poreq_inter_record.category_segment1           := l_poreq_record(i)  
  83.                                                             .category_segment1; --物料类别  
  84.         l_poreq_inter_record.unit_of_measure             := l_poreq_record(i)  
  85.                                                             .unit_of_measure; --计量单位  
  86.         l_poreq_inter_record.line_type                   := '货物'--行类型默认为货物(物料类型)  
  87.         l_poreq_inter_record.un_number_id                := l_poreq_record(i)  
  88.                                                             .un_number_id; --提报部门ID  
  89.         l_poreq_inter_record.un_number                   := l_poreq_record(i)  
  90.                                                             .un_number; --提报部门  
  91.         l_poreq_inter_record.hazard_class_id             := l_poreq_record(i)  
  92.                                                             .project_number_id; --工程项目号ID  
  93.         l_poreq_inter_record.hazard_class                := l_poreq_record(i)  
  94.                                                             .project_number; --工程项目号  
  95.         l_poreq_inter_record.destination_organization_id := l_poreq_record(i)  
  96.                                                             .received_org_id; --接收组织ID  
  97.         l_poreq_inter_record.deliver_to_location_id      := l_poreq_record(i)  
  98.                                                             .received_place_id; --接收地点ID  
  99.         l_poreq_inter_record.deliver_to_requestor_id     := l_poreq_record(i)  
  100.                                                             .deliver_to_requestor_id; --申请人ID  
  101.         l_poreq_inter_record.deliver_to_requestor_name   := l_poreq_record(i)  
  102.                                                             .deliver_to_requestor_name; --申请人  
  103.         l_poreq_inter_record.suggested_buyer_id          := l_poreq_record(i)  
  104.                                                             .buyer_id; --采购员ID  
  105.         l_poreq_inter_record.suggested_buyer_name        := l_poreq_record(i)  
  106.                                                             .suggested_buyer_name; --采购员  
  107.         l_poreq_inter_record.suggested_vendor_item_num   := substrb(l_poreq_record(i)  
  108.                                                                     .equip_spare_use,  
  109.                                                                     1,  
  110.                                                                     25); --设备备件用途  
  111.         l_poreq_inter_record.line_attribute_category     := '';--<span id="kM0.9812031188048422">@此处为说明性弹性域的段值</span>  
  112.         l_poreq_inter_record.line_attribute2             := l_poreq_record(i)  
  113.                                                             .line_attribute2; --<span id="kM0.2401782302185893">@弹性域值(客户化)</span>  
  114.         l_poreq_inter_record.line_attribute6             := l_poreq_record(i)  
  115.                                                             .line_attribute6; --维修号  
  116.         l_poreq_inter_record.need_by_date                := l_poreq_record(i)  
  117.                                                             .require_time; --需要时间  
  118.         l_poreq_inter_record.currency_code := l_poreq_record(i)  
  119.                                               .currency_code; --币种  
  120.         l_poreq_inter_record.org_id        := l_poreq_record(i).org_id; --业务实体  
  121.         --L_POREQ_INTER_RECORD.CHARGE_ACCOUNT_ID           := L_POREQ_INTER_REC(i).ACCOUNT_ID;  
  122.         --L_POREQ_INTER_RECORD.ACCRUAL_ACCOUNT_ID := --应计帐户  
  123.         --L_POREQ_INTER_RECORD.VARIANCE_ACCOUNT_ID := --差异帐户  
  124.         INSERT INTO po.po_requisitions_interface_all  
  125.         VALUES l_poreq_inter_record;  
  126. /*******此处需要增加反写记录设置,即是标记哪些数据已经被创建过申请等*********/  
  127.         COMMIT;  
  128.       END LOOP;  
  129.       CLOSE poreq_cur;  
  130.       retcode := '0';  
  131.       errbuf  := '导入成功' || l_poreq_record.count || '条采购申请。';  
  132.     END IF;  
  133.     /* --勾选的记录的数量与成功导入的记录数的关系  
  134.     If L_POREQ_RECORD.COUNT*/  
  135.   END;  


[sql]  view plain  copy
  1.                        --多条记录M,单条记录S,全部记录A  
  2. mo_global.set_policy_context(p_access_mode => 'S', p_org_id => org_id);  
  3. fnd_request.set_org_id(org_id);  
  4. l_request_id := fnd_request.submit_request('PO',  
  5.                                            'REQIMPORT',  
  6.                                            '',  
  7.                                            to_char(SYSDATE,  
  8.                                                    'YYYY/MM/DD HH24:MI:SS'),  
  9.                                            FALSE,  
  10.                                            'ROI',  
  11.                                            '',  
  12.                                            'ALL',  
  13.                                            '',  
  14.                                            'N',  
  15.                                            'N',  
  16.                                            chr(0),  
  17.                                              

  1. COMMIT;  


转载出处:https://blog.csdn.net/cai_xingyun/article/details/17795699

猜你喜欢

转载自blog.csdn.net/f_zhangyu/article/details/80528888