EBS 接口开发

http://blog.csdn.net/whhitgen/article/details/7279625

1 根据数据源创建临时表

2 将数据源导入临时表

3将临时表的数据导入标准接口表

4 创建采购员

5 提交Import Standard Purchase Orders请求

 

1 根据数据源创建临时表

     /* Formatted on 2012/02/20 10:24 (Formatter Plus v4.8.7) */

CREATE TABLE po_headers_interface_beke(

      org_id NUMBER,

      process_code VARCHAR2(25),

      action VARCHAR2(25),

      document_type_code VARCHAR2(25),

      document_subtype VARCHAR2(25),

      document_num VARCHAR2(20),

      approval_status VARCHAR2(25),

      agent_id NUMBER,

      vendor_id NUMBER,

      vendor_site_id NUMBER,

      interface_source_code VARCHAR2(25),

      batch_id NUMBER,

      interface_header_id NUMBER NOT NULL

)

 

/* Formatted on 2012/02/20 10:38 (Formatter Plus v4.8.7) */

CREATE TABLE po_lines_interface_beke(

       process_code VARCHAR2(25),

       action VARCHAR2(25),

       line_num NUMBER,

       item_id NUMBER,

       unit_price NUMBER,

       interface_header_id NUMBER NOT NULL

)

2 将数据源导入临时表,可以用sql loader,也可以在PL/SQL Developer中复制粘贴,

    由于数据不多,在这里用复制粘贴的方式

/* Formatted on 2012/02/21 11:31 (Formatter Plus v4.8.7) */

SELECT *

  FROM po_headers_interface_beke for update

 

/* Formatted on 2012/02/21 11:32 (Formatter Plus v4.8.7) */

SELECT *

  FROM po_lines_interface_beke for update

 

3 创建存储过程,将临时表的数据导入标准接口表,在此创建了一个包,包两个存储过程

3.1 package

                /* Formatted on 2012/02/21 13:34 (Formatter Plus v4.8.7) */

CREATE OR REPLACE PACKAGE po_interface_beke_pkg

IS

   PROCEDURE po_interface_add_bpa_beke (

      p_user_id        IN   NUMBER := 0,

      p_resp_id        IN   NUMBER := 52054,

      p_resp_appl_id   IN   NUMBER := 201

   );

 

   PROCEDURE po_interface_add_bpa_beke2 (

      p_user_id        IN   NUMBER := 0,

      p_resp_id        IN   NUMBER := 52054,

      p_resp_appl_id   IN   NUMBER := 201

   );

END po_interface_beke_pkg;

 

3.2 package body

                /* Formatted on 2012/02/21 13:37 (Formatter Plus v4.8.7) */

CREATE OR REPLACE PACKAGE BODY po_interface_beke_pkg

IS

   PROCEDURE po_interface_add_bpa_beke (

      p_user_id        IN   NUMBER := 0,

      p_resp_id        IN   NUMBER := 52054,

      p_resp_appl_id   IN   NUMBER := 201

   )

   IS

      l_iface_rec         po_headers_interface%ROWTYPE;

      l_iface_lines_rec   po_lines_interface%ROWTYPE;

   BEGIN

      SELECT po_headers_interface_s.NEXTVAL

        INTO l_iface_rec.interface_header_id

        FROM DUAL;

 

      SELECT phib.org_id, phib.process_code,

             phib.action, phib.document_type_code,

             phib.document_subtype, phib.document_num,

             phib.approval_status, phib.agent_id,

             phib.vendor_id, phib.vendor_site_id,

             phib.interface_source_code, phib.batch_id

        INTO l_iface_rec.org_id, l_iface_rec.process_code,

             l_iface_rec.action, l_iface_rec.document_type_code,

             l_iface_rec.document_subtype, l_iface_rec.document_num,

             l_iface_rec.approval_status, l_iface_rec.agent_id,

             l_iface_rec.vendor_id, l_iface_rec.vendor_site_id,

             l_iface_rec.interface_source_code, l_iface_rec.batch_id

        FROM po_headers_interface_beke phib;

 

      INSERT INTO po_headers_interface

           VALUES l_iface_rec;

 

      SELECT po_lines_interface_s.NEXTVAL

        INTO l_iface_lines_rec.interface_line_id

        FROM DUAL;

 

      l_iface_lines_rec.interface_header_id := l_iface_rec.interface_header_id;

 

      SELECT plib.process_code, plib.action,

             plib.line_num, plib.item_id,

             plib.unit_price

        INTO l_iface_lines_rec.process_code, l_iface_lines_rec.action,

             l_iface_lines_rec.line_num, l_iface_lines_rec.item_id,

             l_iface_lines_rec.unit_price

        FROM po_lines_interface_beke plib;

 

      INSERT INTO po_lines_interface

           VALUES l_iface_lines_rec;

 

      --Should initialize before po_docs_interface_sv5.process_po_header_interface

      fnd_global.apps_initialize (user_id           => p_user_id,

                                  resp_id           => p_resp_id,

                                  resp_appl_id      => p_resp_appl_id

                                 );

      po_docs_interface_sv5.process_po_headers_interface

                          (x_selected_batch_id               => l_iface_rec.batch_id,

                           x_buyer_id                        => NULL,

                           x_document_type                   => l_iface_rec.document_type_code,

                           x_document_subtype                => l_iface_rec.document_subtype,

                           x_create_items                    => 'N',

                           x_create_sourcing_rules_flag      => NULL,

                           x_rel_gen_method                  => NULL,

                           x_approved_status                 => l_iface_rec.approval_status,

                           x_commit_interval                 => 1,

                           x_process_code                    => l_iface_lines_rec.process_code,

                           x_interface_header_id             => NULL,

                           x_org_id_param                    => NULL,

                           x_ga_flag                         => NULL

                          );

   END po_interface_add_bpa_beke;

 

 

   PROCEDURE po_interface_add_bpa_beke2 (

      p_user_id        IN   NUMBER := 0,

      p_resp_id        IN   NUMBER := 52054,

      p_resp_appl_id   IN   NUMBER := 201

   )

   IS

      l_iface_rec         po_headers_interface%ROWTYPE;

      l_iface_lines_rec   po_lines_interface%ROWTYPE;

 

      CURSOR cur_headers

      IS

         SELECT phib.org_id, phib.process_code, phib.action,

                phib.document_type_code, phib.document_subtype,

                phib.document_num, phib.approval_status, phib.agent_id,

                phib.vendor_id, phib.vendor_site_id,

                phib.interface_source_code, phib.batch_id,

                phib.interface_header_id

           FROM po_headers_interface_beke phib;

 

      CURSOR cur_lines

      IS

         SELECT plib.process_code, plib.action, plib.line_num, plib.item_id,

                plib.unit_price, plib.interface_header_id

           FROM po_lines_interface_beke plib;

   BEGIN

      FOR rec_headers IN cur_headers

      LOOP

         SELECT po_headers_interface_s.NEXTVAL

           INTO l_iface_rec.interface_header_id

           FROM DUAL;

 

         l_iface_rec.org_id := rec_headers.org_id;

         l_iface_rec.process_code := rec_headers.process_code;

         l_iface_rec.action := rec_headers.action;

         l_iface_rec.document_type_code := rec_headers.document_type_code;

         l_iface_rec.document_subtype := rec_headers.document_subtype;

         l_iface_rec.document_num := rec_headers.document_num;

         l_iface_rec.approval_status := rec_headers.approval_status;

         l_iface_rec.agent_id := rec_headers.agent_id;

         l_iface_rec.vendor_id := rec_headers.vendor_id;

         l_iface_rec.vendor_site_id := rec_headers.vendor_site_id;

         l_iface_rec.interface_source_code :=

                                             rec_headers.interface_source_code;

         l_iface_rec.batch_id := rec_headers.batch_id;

 

         INSERT INTO po_headers_interface

              VALUES l_iface_rec;

 

         FOR rec_lines IN cur_lines

         LOOP

            IF rec_lines.interface_header_id =

                                              rec_headers.interface_header_id

            THEN

               SELECT po_lines_interface_s.NEXTVAL

                 INTO l_iface_lines_rec.interface_line_id

                 FROM DUAL;

 

               l_iface_lines_rec.interface_header_id :=

                                               l_iface_rec.interface_header_id;

               l_iface_lines_rec.process_code := rec_lines.process_code;

               l_iface_lines_rec.action := rec_lines.action;

               l_iface_lines_rec.line_num := rec_lines.line_num;

               l_iface_lines_rec.item_id := rec_lines.item_id;

               l_iface_lines_rec.unit_price := rec_lines.unit_price;

 

               INSERT INTO po_lines_interface

                    VALUES l_iface_lines_rec;

 

               --Should initialize before po_docs_interface_sv5.process_po_header_interface

               fnd_global.apps_initialize (user_id           => p_user_id,

                                           resp_id           => p_resp_id,

                                           resp_appl_id      => p_resp_appl_id

                                          );

               po_docs_interface_sv5.process_po_headers_interface

                          (x_selected_batch_id               => l_iface_rec.batch_id,

                           x_buyer_id                        => NULL,

                           x_document_type                   => l_iface_rec.document_type_code,

                           x_document_subtype                => l_iface_rec.document_subtype,

                           x_create_items                    => 'N',

                           x_create_sourcing_rules_flag      => NULL,

                           x_rel_gen_method                  => NULL,

                           x_approved_status                 => l_iface_rec.approval_status,

                           x_commit_interval                 => 1,

                           x_process_code                    => l_iface_lines_rec.process_code,

                           x_interface_header_id             => NULL,

                           x_org_id_param                    => NULL,

                           x_ga_flag                         => NULL

                          );

            END IF;

         END LOOP;

      END LOOP;

   END po_interface_add_bpa_beke2;

END po_interface_beke_pkg;

 

4 创建采购员

4.1 在Human Resources模块里创建employee

4.2 在System Adminstrator里面,把刚创建的employee添加到Person项里

4.3 在Purchasing Super User里,在Setup->Personnel->Buyers表单里把刚才创建的employee设置为Buyer采购员

5 提交Import Standard Purchase Orders请求,根据Batch Id可以看出是刚才导入的数据

That’s all.

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值