详解EBS接口开发之供应商导入(转载)
https://blog.csdn.net/f_zhangyu/article/details/80254191
(一)供应商常用标准表简介

1.1 常用标准表

如下表中列出了与供应商相关的表和说明:

表名
说明
其他信息
ap_suppliers
供应商头表
供应商的头信息如:供应商名、供应商编码、税号等
po_vendors
对应视图
ap_supplier_sites_all
供应商地点表
供应商的地点信息,如对应OU、地址等
po_vendor_sites_all
对应视图
pos_supp_prof_ext_b
供应商地点附加信息表
供应商地点附加信息c_ext_attr115,d_ext_attr115字段

ap_supplier_contacts
供应商联系人表
供应商联系人姓名、联系方式等
po_vendor_contacts
对应视图
hz_contact_points
供应商联系人联系信息表
供应商联系人的电话、传真、邮箱等

zx_party_tax_profile
供应商税信息表
供应商纳税类型等

hz_code_assignments
供应商税率表
供应商对应地址上的税率等

iby_external_payees_all
付款信息表
供应商对应地点上的付款方式等

iby_account_ownes
银行账户拥有者
在添加银行账户的lov中

iby_pmt_instr_uses_all
供应商地点银行账户使用表
供应商地点所挂的银行账户

iby_ext_bank_accounts
供应商地点银行账户表
供应商地点银行账户信息

iby_ext_banks_v
地点银行表
地点银行信息
hz_parties
基表
Iby_ext_bank_branches_v
地点银行支行表
地点银行支行的联行号、支行名登信息

供应商银行信息表:IBY_EXT_BANKS_V

字段名
说明
BANK_PARTY_ID
银行id
BANK_NAME
银行名称
BANK_NUMBER
银行编号

供应商银行分行信息表:IBY_EXT_BANK_BRANCHES_V

字段名
说明
BRANCH_PARTY_ID
分行id
BRANCH_NUMBER
分行编号
BANK_PARTY_ID
父行id

供应商账户信息表:IBY_EXT_BANK_ACCOUNTS

字段名
说明
BRANCH_ID
分行id
BANK_ID
父行id
BANK_ACCOUNT_NUM
银行账号

供应商导入顺序及流程

3.1 供应商导入顺序

由于数据的先后关联依赖关系,同一供应商的信息导入必须按照一定的顺序进行:先导头信息,再导地点信息,最后导入地点下的地点附加信息、联系人、税率、银行、默认付款方法等信息。(同时有的时候需要把银行导入到供应商层而不是地点层)

3.2 API供应商导入流程

API供应商导入流程:

第一步:创建需要导入供应商信息的中间表,字段上提供供应商头信息、地点信息等必输字段。

第二步:向中间表中插入需要导入的供应商信息,验证需要插入的数据是否满足供应商信息规则,去除不合规范的数据。

第三步:对需要导入的数据在数据库标准表中尽行验证是否存在,不存在的供应商信息调用标准API进行导入操作,已存在的供应商根据实际需求是否进行更新。

第四步:导入完成后在界面或者后台表中查询该供应商信息,检验导入的供应商信息是否正确。

3.3 接口表供应商导入流程

接口表供应商导入流程:

第一步:将外部系统数据验证后,转化后导入到客户化CUX表。

第二步:将CUX表中数据验证,转化后插入到系统标准接口表中。

第三步:提交并发请求将数据导入系统。

第四步:调用API将供应商银行信息导入到系统中(可能是地点,地址,供应商等层次)。

说明:导入供应商的时候如果需要导入银行信息,切记不能将供应商银行数据插入接口临时表iby_temp_ext_bank_accts再一起提交并发请求,期待将数据包括账户信息导入(这是公司标准化程序,但是我们项目上我亲自验证,这将会导致系统自动验证字段iby_temp_ext_bank_accts.iban【International Bank Account Number 国际银行帐号】;经我调试发现将数据插入此账号临时接口表该字段即使为null也会验证,从而导致验证不过,结果数据进不去,相反如果用API倒银行信息,如果该字段为null则跳过验证,验证的程序在包IBY_EXT_BANKACCT_VALIDATIONS里有空大家可以研究一下)

API

[sql] view plain copy

供应商头创建
pos_vendor_pub_pkg.create_vendor
(
p_vendor_rec => l_vendor_rec,
x_return_status => l_return_status, --返回的状态
x_msg_count => l_msg_count, --返回的错误数量
x_msg_data => l_msg_data, --返回的错误信息
x_vendor_id => l_vendor_id, --返回的创建的供应商id
x_party_id => l_party_id); --返回的机构id

供应商头更新
l_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
–更新供应商头信息
pos_vendor_pub_pkg.update_vendor
(
p_vendor_rec => l_vendor_rec,
x_return_status => l_return_status, --返回的状态
x_msg_count => l_msg_count, --返回的错误数量
x_msg_data => l_msg_data); --返回的错误信息
[sql] view plain copy

供应商地点创建

pos_vendor_pub_pkg.create_vendor_site(

p_vendor_site_rec=> l_vendor_site_rec,

x_return_status => l_return_status, --返回的导入状态

x_msg_count => l_msg_count, --错误数量

x_msg_data => l_msg_data, --错误信息

x_vendor_site_id =>l_vendor_site_id,–返回的创建成功的地点id

x_party_site_id => l_party_site_id, --返回机构地点id

x_location_id => l_location_id);

[sql] view plain copy

–更新供应商地点
pos_vendor_pub_pkg.update_vendor_site(
x_return_status => o_return_status, --导入状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data, --错误信息
p_vendor_site_rec => l_vendor_site_rec);

[sql] view plain copy

–创建联系人
pos_vendor_pub_pkg.create_vendor_contact(
p_vendor_contact_rec => l_contact_rec,
x_return_status => l_return_status, --返回状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data, --错误信息
x_vendor_contact_id => l_vendor_contact_id,–联系人id
x_per_party_id => l_per_party_id, --联系人机构id
x_rel_party_id => l_rel_party_id, --关系机构id
x_rel_id => l_rel_id, --关系id
x_org_contact_id => l_org_contact_id, --地点联系人id
x_party_site_id => l_party_site_id); --地点id

[sql] view plain copy

pos_supp_contact_pkg.update_supplier_contact(
p_contact_party_id => l_party_id, --联系人机构id
p_vendor_party_id => l_vendor_party_site_id,–供应商机构id
p_last_name => i_last_name, --联系人姓名
p_phone_number => i_phone, --联系人电话
p_url => i_id_num, --联系人身份证号
p_fax_number => i_fax_num, --联系人传真号
p_email_address => i_emial_addr, --联系人邮箱地址
x_return_status => l_return_status, --返回状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data); --错误信息

[sql] view plain copy

–创建和更新供应商默认付款方法的创建和更新
iby_disbursement_setup_pub.update_external_payee(
p_api_version => l_api_version, --版本号
p_init_msg_list => ‘T’,
p_ext_payee_tab => l_ext_payee_tab,
p_ext_payee_id_tab => l_ext_payee_id_tab,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_ext_payee_status_tab => l_ext_payee_status_tab);

[sql] view plain copy

–创建银行
iby_ext_bankacct_pub.create_ext_bank(
p_api_version => l_api_version, --版本号
p_init_msg_list => fnd_api.g_true, --默认值’T’
p_ext_bank_rec => p_extbank_rec,
x_bank_id => o_bank_id, --返回的银行id
x_return_status => o_return_status, --返回状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data, --错误信息
x_response => l_result_rec);

[sql] view plain copy

–创建支行
iby_ext_bankacct_pub.create_ext_bank_branch(
p_api_version => l_api_version, --版本号
p_init_msg_list => fnd_api.g_true, --‘T’
p_ext_bank_branch_rec => l_extbankbranch_rec,
x_branch_id => o_branch_id, --支行id
x_return_status => o_return_status, --返回状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data, --错误信息
x_response => l_result_rec);

[sql] view plain copy

–创建帐号
iby_ext_bankacct_pub.create_ext_bank_acct(
p_api_version => ‘1.0’,
p_init_msg_list => fnd_api.g_true,
p_ext_bank_acct_rec => l_ext_bank_acct_rec,
x_acct_id => l_bank_acct_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_response => l_result_rec);

[sql] view plain copy

将账户信息挂到对应地点“添加”按钮中的lov中:
iby_ext_bankacct_pub.add_joint_account_owner(
p_api_version => p_object_version_number, --版本号
p_init_msg_list => fnd_api.g_true, --默认值‘T’
p_bank_account_id => l_ext_bank_acct_rec.bank_account_id, --账户id
p_acct_owner_party_id => l_party_id, --组织id
x_joint_acct_owner_id => l_joint_acct_owner_id, --返回的账户所有者的id
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_response => l_result_rec);

[sql] view plain copy

–创建到地点上
iby_disbursement_setup_pub.set_payee_instr_assignment(
p_api_version => ‘1.0’, --版本号
p_init_msg_list => fnd_api.g_true, --‘T’
p_commit => fnd_api.g_true, --‘T’
x_return_status => l_return_status, --返回状态
x_msg_count => l_msg_count, --错误数量
x_msg_data => l_msg_data, --错误信息
p_payee => l_payee_rec,
p_assignment_attribs => l_assignment_attribs_rec,
x_assign_id => l_assign_id, --使用id
x_response => l_result_rec);

[sql] view plain copy

(2)将供应商银行账户信息导入到其他层
l_ext_bank_acct_rec.acct_owner_party_id := v_vendor_party_id;这个必须提供,导入到地点层(1)不需要提供
iby_ext_bankacct_pub.create_ext_bank_acct(p_api_version => ‘1.0’,
p_init_msg_list => fnd_api.g_true,
p_ext_bank_acct_rec => l_ext_bank_acct_rec,
p_association_level => ‘S’, --S:供应商层;SS:供应商地点层;A:Address; AO:Address Operating Unit
p_supplier_site_id => NULL,
p_party_site_id => NULL,
p_org_id => NULL,
p_org_type => NULL, --Bug7136876: new parameter
x_acct_id => l_bank_acct_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_response => l_result_rec);

[sql] view plain copy

接口表实现导入方法
6.1 往供应商头信息表里插数据
ap_suppliers_int
6.2 往供应商地点信息表里插数据
ap_supplier_sites_int
6.3往供应商地点联系人信息表里插数据
ap_sup_site_contact_int
6.4 提交并发请求
1.供应商导入
fnd_request.submit_request(‘SQLAP’, --应用简称
‘APXSUIMP’, --并发程序
‘’,
‘’,
FALSE,
‘ALL’,
1000,
‘N’,
‘N’,
‘N’,
chr(0)) ;
2.供应商地点导入
fnd_request.submit_request(‘SQLAP’, --应用简称
‘APXSSIMP’, --并发程序
‘’,
‘’,
FALSE,
NULL,
‘ALL’,
1000,
‘Y’, --REDO
‘Y’,
‘Y’,
chr(0));
3.联系人导入
fnd_request.submit_request(‘SQLAP’, --应用简称
‘APXSCIMP’, --并发程序
‘’,
‘’,
FALSE,
‘ALL’,
1000,
‘N’,
‘N’,
‘N’,
chr(0));

  6.5调用API创建银行账户信息

参考API讲解

说明:关于接口表导入的接口表信息信息和字段要求可参考标准文档,或者oracle网站
转载出处:https://blog.csdn.net/cai_xingyun/article/details/17114817

详解EBS接口开发之供应商导入(转载)相关推荐

  1. 详解EBS接口开发之供应商导入

    (一)供应商常用标准表简介 1.1   常用标准表 如下表中列出了与供应商相关的表和说明: 表名 说明 其他信息 ap_suppliers 供应商头表 供应商的头信息如:供应商名.供应商编码.税号等 ...

  2. 详解EBS接口开发之采购申请导入

    更多内容可以参考我的博客  详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...

  3. oracle应收模块核销点不上,详解EBS接口开发之应收款处理

    (一)应收款常用标准表简介 1.1常用标准表 如下表中列出了与应收款处理相关的表和说明: 表名 说明 其他信息 AR_BATCHES_ALL AR收款批表 AR_BATCH_SOURCES_ALL A ...

  4. oracle ebs应收贷记,【转】Oracle EBS 详解EBS接口开发之应收款处理

    (一)应收款常用标准表简介 1.1常用标准表 如下表中列出了与应收款处理相关的表和说明: 表名 说明 其他信息 AR_BATCHES_ALL AR收款批表 AR_BATCH_SOURCES_ALL A ...

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

    https://www.cnblogs.com/wanghang/p/6299558.html 采购订单常用标准表简介 1.1   常用标准表 如下表中列出了与采购订单导入相关的表和说明: 表名 说明 ...

  6. 详解EBS接口开发之采购订单导入(转载)

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

  7. 详解EBS接口开发之更新供应商付款方法

    更新供应商地点层的付款方法API DECLARE--API 参数l_external_payee_rec_type iby_disbursement_setup_pub.external_payee_ ...

  8. 详解EBS接口开发之销售订单挑库发放

     1. 对销售订单的有效性验证     1)检查销售订单的行是否被完全传回客户化表     2)验证销售订单的关键字段     3)检查子库存是否启用了货位控制,如果启用了货位控制,没有生成货位, ...

  9. 详解EBS接口开发之销售订单挑库发放(转载)

    1. 对销售订单的有效性验证     1)检查销售订单的行是否被完全传回客户化表     2)验证销售订单的关键字段     3)检查子库存是否启用了货位控制,如果启用了货位控制,没有生成货位,则调用 ...

最新文章

  1. Go 语言编程 — panic 和 recover
  2. 想通关「限流」?只要这一篇
  3. 适配器在JavaScript中的体现
  4. CI中PHP写法规范(不断更新)
  5. mysql 卸载批处理_MYSQL 注册启动 及 停用卸载 批处理脚本 (补)
  6. bert模型简介、transformers中bert模型源码阅读、分类任务实战和难点总结
  7. python生成固定长度随机数_python日记——random模块
  8. UIButton和UIimageView
  9. oracle中多个数据库连接池,数据库连接池为什么要建立多个连接
  10. HDU1412 {A} + {B}【排序+集合合并】
  11. jquery中的全局事件
  12. jquery页面跳转带cookie_python socket编程:实现redirect函数、cookie和session
  13. Android工具箱之文件目录
  14. unity对敏感词库处理的记录
  15. VTK笔记-组建vtkPolyData-四面体/五面体/六面体
  16. 4个很 丝滑 的 Veu 路由过渡动效
  17. 天然气压缩因子计算软件_为什么测量天然气选择气体涡轮流量计?
  18. “槑囧圐圙”您认得这些汉字吗?
  19. 非视距成像:硬件设备总结
  20. SwiftUI 人工智能教程之图像识别植物或花朵通过图片和相机

热门文章

  1. 七年级计算机教室管理员解说词,完美教室解说词
  2. vue路由跳转刷新页面
  3. 【沃顿商学院学习笔记】公益创业——05关键输入和输出,及解决方案描述Screen-In Screen-Out Criteria, Describing the solutions
  4. Flutter之Positioned
  5. 福禄克DSX2-8000/5000触摸屏正确的使用方法及注意事项
  6. 前端如何与后端对接口
  7. 前端应届生如何做一个职业规划?来看看大佬的学习之路
  8. 整理了阿里开源的15个开源项目,分享给大家
  9. 爱奇艺视频怎么联系在线人工客服?
  10. Gnocchi 8、sacks基础