供应商导入R12

银行信息导入,分几种情况,比较常用的就是供应商层银行信息,和地点层银行信息;
1、导入供应商层银行信息比较简单:
v_bank_tbl                    iby_temp_ext_bank_accts%ROWTYPE;
SELECT iby_temp_ext_bank_accts_s.nextval
          INTO v_temp_ext_bank_acct_id
          FROM dual;
必须信息是:
v_bank_tbl.temp_ext_bank_acct_id := v_temp_ext_bank_acct_id;
v_bank_tbl.country_code          := rec_suppliers.country_code; --国家
v_bank_tbl.bank_account_num      := rec_suppliers.bank_account_num; --银行帐户号
v_bank_tbl.object_version_number := 1;
v_bank_tbl.status                := 'NEW';
直接INSERT INTO iby.iby_temp_ext_bank_accts VALUES v_bank_tbl;
2、导入供应地点层,无法直接导入,需要在导入供应商层的情况下,有一个标准的过程可以调用,进行分配
--assign_site_bank_account,将供应商层的银行帐户分配到地点层
  PROCEDURE assign_site_bank_account IS
    rec_payee              iby_disbursement_setup_pub.payeecontext_rec_type;
    rec_assignment_attribs iby_fndcpt_setup_pub.pmtinstrassignment_rec_type;
    l_return_status        VARCHAR2(100);
    l_msg_count            NUMBER;
    l_msg_data             VARCHAR2(2000);
    l_assign_id            NUMBER;
    l_response             iby_fndcpt_common_pub.result_rec_type;
  
    CURSOR cur_temp IS
      SELECT ieba.bank_account_num
            ,ieba.ext_bank_account_id
            ,apss.vendor_site_id
            ,apss.party_site_id
            ,apss.org_id
            ,aps.vendor_id
            ,aps.party_id
        FROM ap.ap_suppliers          aps
            ,iby_account_owners       iao
            ,iby_ext_bank_accounts    ieba
            ,ap.ap_supplier_sites_all apss
       WHERE aps.party_id = iao.account_owner_party_id
         AND iao.ext_bank_account_id = ieba.ext_bank_account_id
         AND apss.vendor_id = aps.vendor_id
         AND EXISTS
       (SELECT 1
                FROM cux_vendor_import_temp temp
               WHERE nvl2(temp.vendor_name, temp.vendor_name, temp.segment1) =
                     nvl2(temp.vendor_name, aps.vendor_name, aps.segment1)
                 AND temp.import_flag = 'Y'
                 AND temp.bank_account_assignment_level = 'SITE');--具体过滤条件看你临时表怎么设计!
  BEGIN
    FOR rec_temp IN cur_temp LOOP
      rec_assignment_attribs.instrument.instrument_type := 'BANKACCOUNT';
      rec_assignment_attribs.instrument.instrument_id   := rec_temp.ext_bank_account_id; --<external bank account id returned after creating the bank account>  
      rec_payee.party_id                                := rec_temp.party_id; --<account owner party id> 
      rec_payee.payment_function                        := 'PAYABLES_DISB';
      rec_payee.party_site_id                           := rec_temp.party_site_id;
      rec_payee.supplier_site_id                        := rec_temp.vendor_site_id;
      rec_payee.org_id                                  := rec_temp.org_id;
      rec_payee.org_type                                := 'OPERATING_UNIT';
    
      --p_api_version        IN   NUMBER,
      --p_init_msg_list      IN   VARCHAR2  := FND_API.G_FALSE,
      --p_commit             IN   VARCHAR2  := FND_API.G_TRUE,
      --x_return_status      OUT  NOCOPY VARCHAR2,
      --x_msg_count          OUT  NOCOPY NUMBER,
      --x_msg_data           OUT  NOCOPY VARCHAR2,
      --p_payee              IN   PayeeContext_rec_type,
      --p_assignment_attribs IN   IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_rec_type,
      --x_assign_id          OUT  NOCOPY NUMBER,
      --x_response           OUT  NOCOPY IBY_FNDCPT_COMMON_PUB.Result_rec_type
      iby_disbursement_setup_pub.set_payee_instr_assignment(p_api_version        => 1.0,
                                                            p_init_msg_list      => fnd_api.g_false,
                                                            p_commit             => fnd_api.g_true,
                                                            x_return_status      => l_return_status,
                                                            x_msg_count          => l_msg_count,
                                                            x_msg_data           => l_msg_data,
                                                            p_payee              => rec_payee,
                                                            p_assignment_attribs => rec_assignment_attribs,
                                                            x_assign_id          => l_assign_id,
                                                            x_response           => l_response);
      COMMIT;
    END LOOP;
  EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('Exception at assign_site_bank_account:' ||
                           SQLERRM);
      ROLLBACK;
  END assign_site_bank_account;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值