Oracle EBS供应商接口导入

1、供应商导入组成
供应商导入主要分为供应商头信息导入、供应商地点信息导入、供应商联系人导入三个部分的信息,其他按实际需求进行添加。
供应商头信息导入:导入供应商的头信息
供应商地点信息导入:导入供应商的地点、地址信息
供应商联系人信息导入:导入对应地址上的联系人信息
供应商地点附加信息导入:导入供应商对应地点上的附加信息
供应商税率导入:导入供应商地点上的税信息及税率
供应商付款方法导入:导入供应商地点上的默认付款方法
供应商银行导入:导入供应商地点上对应的银行、账户等信息
2、供应商导入顺序
由于数据的先后关联依赖关系,同一供应商的信息导入必须按照一定的顺序进行:先导头信息,再导地点信息,最后导入地点下的地点附加信息、联系人、税率、银行、默认付款方法等信息。
供应商导入流程:
第一步:创建需要导入供应商信息的中间表,字段上提供供应商头信息、地点信息等必输字段。
第二步:向中间表中插入需要导入的供应商信息,验证需要插入的数据是否满足供应商信息规则,去除不合规范的数据。
第三步:对需要导入的数据在数据库标准表中尽行验证是否存在,不存在的供应商信息调用标准API进行导入操作,已存在的供应商根据实际需求是否进行更新。
第四步:导入完成后在界面或者后台表中查询该供应商信息,检验导入的供应商信息是否正确。
3、供应商导入的接口程序
(1)、供应商头信息创建和更新

  1. --供应商头信息的创建  
  2. l_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;  
  3. --供应商类型  
  4. l_vendor_rec.vendor_type_lookup_code := i_vendor_type_code;  
  5. --供应商名称  
  6. l_vendor_rec.vendor_name           := i_vendor_name;  
  7. --供应商编码  
  8. l_vendor_rec.segment1              :=get_vendor_number(i_tax_no, i_vendor_type_code);  
  9. --供应商税号  
  10. l_vendor_rec.tax_reference         := i_tax_no;  
  11. l_vendor_rec.pay_group_lookup_code := 'STANDARD';  
  12. 来源系统编码  
  13. l_vendor_rec.attribute2            := i_src_vendor_num;  
  14. --供应商类别  
  15. l_vendor_rec.attribute4            := i_vendor_classify_code;  
  16.   
  17. --创建新的供应商  
  18. pos_vendor_pub_pkg.create_vendor  
  19. (  
  20. p_vendor_rec    => l_vendor_rec,  
  21. x_return_status => l_return_status, --返回的状态  
  22. x_msg_count     => l_msg_count,     --返回的错误数量  
  23. x_msg_data      => l_msg_data,      --返回的错误信息  
  24. x_vendor_id     => l_vendor_id,     --返回的创建的供应商id  
  25. x_party_id      => l_party_id);     --返回的机构id  


  1. l_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;  
  2. --更新供应商头信息  
  3. pos_vendor_pub_pkg.update_vendor  
  4. (  
  5. p_vendor_rec    => l_vendor_rec,  
  6. x_return_status => l_return_status, --返回的状态  
  7. x_msg_count     => l_msg_count,     --返回的错误数量  
  8. x_msg_data      => l_msg_data);     --返回的错误信息  


(2)、供应商地点的创建和更新

  1. --供应商地点的创建  
  2. l_vendor_site_rec           ap_vendor_pub_pkg.r_vendor_site_rec_type;  
  3.   
  4. --赋值  
  5. l_vendor_site_code          := ‘TEST001’;  
  6. --地址编码  
  7. l_vendor_site_rec.vendor_site_code := l_vendor_site_code;  
  8. --地址名称  
  9. l_party_site_name                 := 'TEST'  
  10. l_vendor_site_rec.party_site_name := l_party_site_name;  
  11. --国家编码  
  12. l_vendor_site_rec.country      := 'CN';  
  13.       
  14. --当地址的国家不是中国、香港和其他时,必输字段  
  15. /*IF  l_country_code NOT IN ('CN''ZZ''HK'THEN  
  16.       l_vendor_site_rec.state  := 'US';  
  17.       l_vendor_site_rec.county := 'US';  
  18.       l_vendor_site_rec.city   := 'New York';  
  19.   END IF;  
  20. */  
  21. --供应商id  
  22. l_vendor_site_rec.vendor_id     := l_vendor_id;  
  23. --业务实体  
  24. l_vendor_site_rec.org_id        := i_org_id;  
  25. --详细地址  
  26. l_vendor_site_rec.address_line1 := l_addr;  
  27. --详细地址2  
  28. l_vendor_site_rec.address_line2 := i_detail_addr;  
  29. --传真  
  30. l_vendor_site_rec.fax           := i_fax_num;  
  31. --供应商类型  
  32. l_vendor_site_rec.attribute1    := i_vendor_type_code;  
  33. --来源系统编码  
  34. l_vendor_site_rec.attribute2    := i_src_vendor_num;  
  35. --供应商类别  
  36. l_vendor_site_rec.attribute4    := i_vendor_classify_code;  
  37. --付款标识  
  38. l_vendor_site_rec.pay_site_flag := 'Y';  
  39. --采购标识  
  40. l_vendor_site_rec.purchasing_site_flag := 'Y';  
  41. --付款冻结标识  
  42. l_vendor_site_rec.hold_all_payments_flag := 'N';  
  43.   
  44. --设置成当前的业务实体  
  45. mo_global.set_policy_context(p_access_mode => 'S', p_org_id => i_org_id);  
  46.   
  47. --创建供应商地点  
  48. pos_vendor_pub_pkg.create_vendor_site(  
  49. p_vendor_site_rec => l_vendor_site_rec,  
  50. x_return_status   => l_return_status, --返回的导入状态  
  51. x_msg_count       => l_msg_count,     --错误数量  
  52. x_msg_data        => l_msg_data,      --错误信息  
  53. x_vendor_site_id  => l_vendor_site_id,--返回的创建成功的地点id  
  54. x_party_site_id   => l_party_site_id, --返回机构地点id  
  55. x_location_id     => l_location_id);  


  1. --供应商地点更新  
  2. l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;  
  3.   
  4. --赋值  
  5. --付款冻结标识  
  6. l_vendor_site_rec.hold_all_payments_flag   := ‘N’;  
  7. --业务实体  
  8. l_vendor_site_rec.org_id              := i_org_id;  
  9. --详细地址1  
  10. l_vendor_site_rec.address_line1       := l_address_line1;  
  11. --详细地址2  
  12. l_vendor_site_rec.address_line2       := l_address_line2;  
  13. --地点id  
  14. l_vendor_site_rec.vendor_site_id      := i_vendor_site_id;  
  15. --地址名称  
  16. l_vendor_site_rec.party_site_name    := i_party_site_name;  
  17. --付款账户组合id  
  18. l_vendor_site_rec.accts_pay_code_combination_id := l_accts_pay_code_combination_id;  
  19. --与付款账户组合id  
  20. l_vendor_site_rec.prepay_code_combination_id    := i_prepay_code_combination_id;  
  21.   
  22. --更新供应商地点  
  23. pos_vendor_pub_pkg.update_vendor_site(  
  24. x_return_status   => o_return_status,   --导入状态  
  25. x_msg_count       => l_msg_count,       --错误数量  
  26. x_msg_data        => l_msg_data,        --错误信息  
  27. p_vendor_site_rec => l_vendor_site_rec);  


(3)、供应商联系人信息的创建和更新

  1. --联系人新建  
  2. l_contact_rec          ap_vendor_pub_pkg.r_vendor_contact_rec_type;  
  3.   
  4. --赋值  
  5. --供应商id  
  6. l_contact_rec.vendor_id        := l_vendor_id;  
  7. --联系人姓名  
  8. l_contact_rec.person_last_name := i_last_name;  
  9. --联系人身份证号  
  10. l_contact_rec.url           := i_id_num;  
  11. --联系人电话  
  12. l_contact_rec.phone         := i_phone;  
  13. --联系人传真号  
  14. l_contact_rec.fax_phone     := i_fax_num;  
  15. --联系人邮箱  
  16. l_contact_rec.email_address := i_emial_addr;  
  17. --将联系人创到地点  
  18. l_contact_rec.org_party_site_id := l_party_site_id;  
  19.   
  20. --创建联系人  
  21. pos_vendor_pub_pkg.create_vendor_contact(  
  22. p_vendor_contact_rec => l_contact_rec,  
  23. x_return_status      => l_return_status,    --返回状态  
  24. x_msg_count          => l_msg_count,        --错误数量  
  25. x_msg_data           => l_msg_data,         --错误信息  
  26. x_vendor_contact_id  => l_vendor_contact_id,--联系人id  
  27. x_per_party_id       => l_per_party_id,     --联系人机构id  
  28. x_rel_party_id       => l_rel_party_id,     --关系机构id  
  29. x_rel_id             => l_rel_id,           --关系id  
  30. x_org_contact_id     => l_org_contact_id,   --地点联系人id  
  31. x_party_site_id      => l_party_site_id);   --地点id  


  1. --联系人的更新  
  2. l_contact_rec          ap_vendor_pub_pkg.r_vendor_contact_rec_type;  
  3. pos_supp_contact_pkg.update_supplier_contact(  
  4. p_contact_party_id => l_party_id,    --联系人机构id  
  5. p_vendor_party_id  => l_vendor_party_site_id,--供应商机构id  
  6. p_last_name        => i_last_name,        --联系人姓名  
  7. p_phone_number     => i_phone,            --联系人电话  
  8. p_url              => i_id_num,           --联系人身份证号  
  9. p_fax_number       => i_fax_num,          --联系人传真号  
  10. p_email_address    => i_emial_addr,       --联系人邮箱地址  
  11. x_return_status    => l_return_status,    --返回状态  
  12. x_msg_count        => l_msg_count,        --错误数量  
  13. x_msg_data         => l_msg_data);        --错误信息  


(4)、供应商付款方法创建和更新

  1. --付款方法的创建和更新  
  2. l_external_payee_rec_type iby_disbursement_setup_pub.external_payee_rec_type;  
  3.     l_ext_payee_id_rec_type   iby_disbursement_setup_pub.ext_payee_id_rec_type;  
  4.     l_ext_payee_tab           iby_disbursement_setup_pub.external_payee_tab_type;  
  5.     l_ext_payee_id_tab        iby_disbursement_setup_pub.ext_payee_id_tab_type;  
  6.     l_ext_payee_status_tab    iby_disbursement_setup_pub.ext_payee_update_tab_type;  
  7.   
  8. --赋值  
  9. --update site level ext pay infor  
  10. l_ext_payee_id_rec := NULL;  
  11. l_ext_payee_id_tab.delete;  
  12. l_external_payee_rec := NULL;  
  13. l_ext_payee_tab.delete;  
  14. --init param p_ext_payee_id_tab  
  15. --付款方法id  
  16. l_ext_payee_id_rec.ext_payee_id := i_ext_payee_id;  
  17. l_ext_payee_id_tab(1) := l_ext_payee_id_rec_type;  
  18. --init param p_ext_payee_tab  
  19. --地点付款方法id  
  20. l_external_payee_rec.payee_party_site_id := i_party_site_id;  
  21. l_external_payee_rec.payee_party_id := r_payment_method.party_id; --p_party_id;  
  22. --付款功能  
  23. l_external_payee_rec.payment_function    := i_payment_function;  
  24. --付款业务实体  
  25. l_external_payee_rec.payer_org_id        := i_org_id;  
  26. --供应商地点id  
  27. l_external_payee_rec.supplier_site_id    := i_supplier_site_id;  
  28. --供应商业务实体类型  
  29. l_external_payee_rec.payer_org_type    := i_org_type;  
  30. l_external_payee_rec.exclusive_pay_flag  := ‘Y’;  
  31. --默认付款方法  
  32. l_external_payee_rec.default_pmt_method:=i_method_code;   
  33. l_ext_payee_tab(1) := l_external_payee_rec_type;  
  34.   
  35. --创建和更新  
  36. iby_disbursement_setup_pub.update_external_payee(  
  37. p_api_version          => l_api_version,     --版本号  
  38. p_init_msg_list        => 'T',  
  39. p_ext_payee_tab        => l_ext_payee_tab,  
  40. p_ext_payee_id_tab     => l_ext_payee_id_tab,  
  41. x_return_status        => l_return_status,  
  42. x_msg_count            => l_msg_count,  
  43. x_msg_data             => l_msg_data,  
  44. x_ext_payee_status_tab => l_ext_payee_status_tab);  

(5)、供应商地点银行信息的创建
  1. --供应商银行的创建  
  2. l_result_rec              iby_fndcpt_common_pub.result_rec_type;  
  3. l_extbank_rec             iby_ext_bankacct_pub.extbank_rec_type;  
  4.   
  5. --赋值  
  6. l_extbank_rec           := NULL;  
  7. --银行名称  
  8. l_extbank_rec.bank_name := i_bank_name;  
  9. --版本号  
  10. l_extbank_rec.object_version_number := 1;  
  11. --国家  
  12. l_extbank_rec.country_code          := l_country_code;  
  13. --类型  
  14. l_extbank_rec.institution_type      := 'BANK';  
  15.   
  16. --创建银行  
  17. iby_ext_bankacct_pub.create_ext_bank(  
  18. p_api_version   => l_api_version,   --版本号  
  19. p_init_msg_list => fnd_api.g_true,  --默认值’T’  
  20. p_ext_bank_rec  => p_extbank_rec,     
  21. x_bank_id       => o_bank_id,       --返回的银行id  
  22. x_return_status => o_return_status, --返回状态  
  23. x_msg_count     => l_msg_count,     --错误数量  
  24. x_msg_data      => l_msg_data,      --错误信息  
  25. x_response      => l_result_rec);  


供应商支行的创建

  1. --定义  
  2. l_result_rec              iby_fndcpt_common_pub.result_rec_type;  
  3. l_extbankbranch_rec       iby_ext_bankacct_pub.extbankbranch_rec_type;  
  4.   
  5. --赋值  
  6. --银行id  
  7. l_extbankbranch_rec.bank_party_id    := i_bank_id;  
  8. --支行名称  
  9. l_extbankbranch_rec.branch_name  := nvl(i_bank_branch_name, i_branch_number);  
  10. --联行号  
  11. l_extbankbranch_rec.branch_number    := i_branch_number;  
  12. --支行类型  
  13. l_extbankbranch_rec.branch_type      := 'SWIFT';  
  14. --支行版本号  
  15. l_extbankbranch_rec.bch_object_version_number := 1;  
  16.   
  17. --创建支行  
  18. iby_ext_bankacct_pub.create_ext_bank_branch(  
  19. p_api_version         => l_api_version,      --版本号  
  20. p_init_msg_list       => fnd_api.g_true,     --‘T’  
  21. p_ext_bank_branch_rec => l_extbankbranch_rec,  
  22. x_branch_id           => o_branch_id,        --支行id  
  23. x_return_status       => o_return_status,    --返回状态  
  24. x_msg_count           => l_msg_count,        --错误数量  
  25. x_msg_data            => l_msg_data,         --错误信息  
  26. x_response            => l_result_rec);  

供应商银行账户的创建

  1. --定义  
  2. l_ext_bank_acct_rec       iby_ext_bankacct_pub.extbankacct_rec_type;  
  3. l_result_rec              iby_fndcpt_common_pub.result_rec_type;  
  4.   
  5. --赋值  
  6. --国家  
  7. l_ext_bank_acct_rec.country_code    := l_country_code;  
  8. --帐号  
  9. l_ext_bank_acct_rec.bank_account_num:= i_bank_account_num;  
  10. --开户名  
  11. l_ext_bank_acct_rec.bank_account_name := i_bank_account_name_alt;  
  12.   
  13. --创建帐号  
  14. iby_ext_bankacct_pub.create_ext_bank_acct(  
  15. p_api_version       => '1.0',  
  16. p_init_msg_list     => fnd_api.g_true,  
  17. p_ext_bank_acct_rec => l_ext_bank_acct_rec,  
  18. x_acct_id           => l_bank_acct_id,  
  19. x_return_status     => l_return_status,  
  20. x_msg_count         => l_msg_count,  
  21. x_msg_data          => l_msg_data,  
  22. x_response          => l_result_rec);  


将银行账户挂到对应地点的‘添加’LOV值集中

  1. iby_ext_bankacct_pub.add_joint_account_owner(  
  2. p_api_version         => p_object_version_number, --版本号  
  3. p_init_msg_list       => fnd_api.g_true,  --默认值‘T’  
  4. p_bank_account_id     => l_ext_bank_acct_rec.bank_account_id, --账户id  
  5. p_acct_owner_party_id => l_party_id,  --组织id  
  6. x_joint_acct_owner_id => l_joint_acct_owner_id, --返回的账户所有者的id  
  7. x_return_status       => l_return_status,  
  8. x_msg_count           => l_msg_count,  
  9. x_msg_data            => l_msg_data,  
  10. x_response            => l_result_rec);  


将已经挂到对应lov下的账户挂到对应地点上

  1. --定义  
  2. l_payee_rec               iby_disbursement_setup_pub.payeecontext_rec_type;  
  3. l_instrument_rec          iby_fndcpt_setup_pub.pmtinstrument_rec_type;  
  4. l_assignment_attribs_rec  iby_fndcpt_setup_pub.pmtinstrassignment_rec_type;  
  5.   
  6. --赋值  
  7. --init param p_payee record  
  8. --付款的机构id  
  9. l_payee_rec.party_id         := l_party_id; --p_party_id;  
  10. --付款方式  
  11. l_payee_rec.payment_function := 'PAYABLES_DISB';  
  12. --供应商地点id  
  13. l_payee_rec.supplier_site_id := l_vendor_site_id;  
  14. --机构地点id  
  15. l_payee_rec.party_site_id    := l_party_site_id;  
  16. --业务实体  
  17. l_payee_rec.org_id           := i_org_id;  
  18. --实体类型  
  19. l_payee_rec.org_type         := 'OPERATING_UNIT';  
  20.           
  21. --initparam p_assignment_attribs record  
  22. --付款类型  
  23. l_instrument_rec.instrument_type    := 'BANKACCOUNT';  
  24. --账户id  
  25. l_instrument_rec.instrument_id      := l_bank_acct_id;   
  26. --created in create_ext_bank_acct  
  27. l_assignment_attribs_rec.instrument := l_instrument_rec;  
  28. l_assignment_attribs_rec.priority   := 1;  
  29. --有效期自  
  30. l_assignment_attribs_rec.start_date := SYSDATE;  
  31.   
  32. --创建到地点上  
  33. iby_disbursement_setup_pub.set_payee_instr_assignment(  
  34. p_api_version        => '1.0',            --版本号  
  35. p_init_msg_list      => fnd_api.g_true,   --‘T’  
  36. p_commit             => fnd_api.g_true,   --‘T’  
  37. x_return_status      => l_return_status,  --返回状态  
  38. x_msg_count          => l_msg_count,      --错误数量  
  39. x_msg_data           => l_msg_data,       --错误信息  
  40. p_payee              => l_payee_rec,  
  41. p_assignment_attribs => l_assignment_attribs_rec,  
  42. x_assign_id          => l_assign_id,      --使用id  
  43. x_response           => l_result_rec); 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22816976/viewspace-1433010/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22816976/viewspace-1433010/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值