原文地址 Oracle EBS供应商接口导入

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

 --供应商头信息的创建
l_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
--供应商类型
l_vendor_rec.vendor_type_lookup_code := i_vendor_type_code;
--供应商名称
l_vendor_rec.vendor_name := i_vendor_name;
--供应商编码
l_vendor_rec.segment1 :=get_vendor_number(i_tax_no, i_vendor_type_code);
--供应商税号
l_vendor_rec.tax_reference := i_tax_no;
l_vendor_rec.pay_group_lookup_code := 'STANDARD';
来源系统编码
l_vendor_rec.attribute2 := i_src_vendor_num;
--供应商类别
l_vendor_rec.attribute4 := i_vendor_classify_code; --创建新的供应商
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); --返回的错误信息

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

 --供应商地点的创建
l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type; --赋值
l_vendor_site_code := ‘TEST001’;
--地址编码
l_vendor_site_rec.vendor_site_code := l_vendor_site_code;
--地址名称
l_party_site_name := 'TEST'
l_vendor_site_rec.party_site_name := l_party_site_name;
--国家编码
l_vendor_site_rec.country := 'CN'; --当地址的国家不是中国、香港和其他时,必输字段
/*IF l_country_code NOT IN ('CN', 'ZZ', 'HK') THEN
l_vendor_site_rec.state := 'US';
l_vendor_site_rec.county := 'US';
l_vendor_site_rec.city := 'New York';
END IF;
*/
--供应商id
l_vendor_site_rec.vendor_id := l_vendor_id;
--业务实体
l_vendor_site_rec.org_id := i_org_id;
--详细地址
l_vendor_site_rec.address_line1 := l_addr;
--详细地址2
l_vendor_site_rec.address_line2 := i_detail_addr;
--传真
l_vendor_site_rec.fax := i_fax_num;
--供应商类型
l_vendor_site_rec.attribute1 := i_vendor_type_code;
--来源系统编码
l_vendor_site_rec.attribute2 := i_src_vendor_num;
--供应商类别
l_vendor_site_rec.attribute4 := i_vendor_classify_code;
--付款标识
l_vendor_site_rec.pay_site_flag := 'Y';
--采购标识
l_vendor_site_rec.purchasing_site_flag := 'Y';
--付款冻结标识
l_vendor_site_rec.hold_all_payments_flag := 'N'; --设置成当前的业务实体
mo_global.set_policy_context(p_access_mode => 'S', p_org_id => i_org_id); --创建供应商地点
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);
 --供应商地点更新
l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type; --赋值
--付款冻结标识
l_vendor_site_rec.hold_all_payments_flag := ‘N’;
--业务实体
l_vendor_site_rec.org_id := i_org_id;
--详细地址1
l_vendor_site_rec.address_line1 := l_address_line1;
--详细地址2
l_vendor_site_rec.address_line2 := l_address_line2;
--地点id
l_vendor_site_rec.vendor_site_id := i_vendor_site_id;
--地址名称
l_vendor_site_rec.party_site_name := i_party_site_name;
--付款账户组合id
l_vendor_site_rec.accts_pay_code_combination_id := l_accts_pay_code_combination_id;
--与付款账户组合id
l_vendor_site_rec.prepay_code_combination_id := i_prepay_code_combination_id; --更新供应商地点
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);

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

 --联系人新建
l_contact_rec ap_vendor_pub_pkg.r_vendor_contact_rec_type; --赋值
--供应商id
l_contact_rec.vendor_id := l_vendor_id;
--联系人姓名
l_contact_rec.person_last_name := i_last_name;
--联系人身份证号
l_contact_rec.url := i_id_num;
--联系人电话
l_contact_rec.phone := i_phone;
--联系人传真号
l_contact_rec.fax_phone := i_fax_num;
--联系人邮箱
l_contact_rec.email_address := i_emial_addr;
--将联系人创到地点
l_contact_rec.org_party_site_id := l_party_site_id; --创建联系人
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
--联系人的更新
l_contact_rec ap_vendor_pub_pkg.r_vendor_contact_rec_type;
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); --错误信息

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

 --付款方法的创建和更新
l_external_payee_rec_type iby_disbursement_setup_pub.external_payee_rec_type;
l_ext_payee_id_rec_type iby_disbursement_setup_pub.ext_payee_id_rec_type;
l_ext_payee_tab iby_disbursement_setup_pub.external_payee_tab_type;
l_ext_payee_id_tab iby_disbursement_setup_pub.ext_payee_id_tab_type;
l_ext_payee_status_tab iby_disbursement_setup_pub.ext_payee_update_tab_type; --赋值
--update site level ext pay infor
l_ext_payee_id_rec := NULL;
l_ext_payee_id_tab.delete;
l_external_payee_rec := NULL;
l_ext_payee_tab.delete;
--init param p_ext_payee_id_tab
--付款方法id
l_ext_payee_id_rec.ext_payee_id := i_ext_payee_id;
l_ext_payee_id_tab(1) := l_ext_payee_id_rec_type;
--init param p_ext_payee_tab
--地点付款方法id
l_external_payee_rec.payee_party_site_id := i_party_site_id;
l_external_payee_rec.payee_party_id := r_payment_method.party_id; --p_party_id;
--付款功能
l_external_payee_rec.payment_function := i_payment_function;
--付款业务实体
l_external_payee_rec.payer_org_id := i_org_id;
--供应商地点id
l_external_payee_rec.supplier_site_id := i_supplier_site_id;
--供应商业务实体类型
l_external_payee_rec.payer_org_type := i_org_type;
l_external_payee_rec.exclusive_pay_flag := ‘Y’;
--默认付款方法
l_external_payee_rec.default_pmt_method:=i_method_code;
l_ext_payee_tab(1) := l_external_payee_rec_type; --创建和更新
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);

(5)、供应商地点银行信息的创建

 --供应商银行的创建
l_result_rec iby_fndcpt_common_pub.result_rec_type;
l_extbank_rec iby_ext_bankacct_pub.extbank_rec_type; --赋值
l_extbank_rec := NULL;
--银行名称
l_extbank_rec.bank_name := i_bank_name;
--版本号
l_extbank_rec.object_version_number := 1;
--国家
l_extbank_rec.country_code := l_country_code;
--类型
l_extbank_rec.institution_type := 'BANK'; --创建银行
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);

供应商支行的创建

 --定义
l_result_rec iby_fndcpt_common_pub.result_rec_type;
l_extbankbranch_rec iby_ext_bankacct_pub.extbankbranch_rec_type; --赋值
--银行id
l_extbankbranch_rec.bank_party_id := i_bank_id;
--支行名称
l_extbankbranch_rec.branch_name := nvl(i_bank_branch_name, i_branch_number);
--联行号
l_extbankbranch_rec.branch_number := i_branch_number;
--支行类型
l_extbankbranch_rec.branch_type := 'SWIFT';
--支行版本号
l_extbankbranch_rec.bch_object_version_number := 1; --创建支行
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);

将银行账户挂到对应地点的‘添加’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);

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

 --定义
l_payee_rec iby_disbursement_setup_pub.payeecontext_rec_type;
l_instrument_rec iby_fndcpt_setup_pub.pmtinstrument_rec_type;
l_assignment_attribs_rec iby_fndcpt_setup_pub.pmtinstrassignment_rec_type; --赋值
--init param p_payee record
--付款的机构id
l_payee_rec.party_id := l_party_id; --p_party_id;
--付款方式
l_payee_rec.payment_function := 'PAYABLES_DISB';
--供应商地点id
l_payee_rec.supplier_site_id := l_vendor_site_id;
--机构地点id
l_payee_rec.party_site_id := l_party_site_id;
--业务实体
l_payee_rec.org_id := i_org_id;
--实体类型
l_payee_rec.org_type := 'OPERATING_UNIT'; --initparam p_assignment_attribs record
--付款类型
l_instrument_rec.instrument_type := 'BANKACCOUNT';
--账户id
l_instrument_rec.instrument_id := l_bank_acct_id;
--created in create_ext_bank_acct
l_assignment_attribs_rec.instrument := l_instrument_rec;
l_assignment_attribs_rec.priority := 1;
--有效期自
l_assignment_attribs_rec.start_date := SYSDATE; --创建到地点上
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);

Oracle EBS供应商接口导入(转)的更多相关文章

  1. Oracle EBS 如何月结、对账[Z]

    在Oracle系统处理月结业务时,需要遵循一定的操作顺序.这些业务,牵涉到相应的模块,包括:应付模块.采购模块.库存模块.应收模块.薪资模块.固定资产和总帐模块等 在Oracle系统中,总帐模块处于财 ...

  2. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

  3. Oracle EBS应用笔记整理 (转自IT++ flyingkite)

    ***************************************************** Author: Flyingkite Blog:   http://space.itpub. ...

  4. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  5. Oracle EBS 寄售业务总结

    总述: 须通过一揽子采购协议(BPA)明确采购方与供应商之间的寄售关系,及各种协议条款: 通过来源补充规则(Sourcing Rules)明确物料的供应商以及分配规则: 通过合格供应商列表(ASL)明 ...

  6. [转]oracle EBS 基础100问

    from:http://www.cnblogs.com/xiaoL/p/3593691.html  http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...

  7. 转:Oracle EBS 寄售业务总结

    转自:http://blog.vsharing.com/nicr/A1359214.html 总述: 须通过一揽子采购协议(BPA)明确采购方与供应商之间的寄售关系,及各种协议条款: 通过来源补充规则 ...

  8. 使用WebService与Oracle EBS进行集成

    http://www.cnblogs.com/isline/archive/2010/04/15/1712428.html 一.概述 OracleEBS是Oracle公司的ERP产品,这个产品非常庞大 ...

  9. Oracle EBS WMS功能介绍(二)

    Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包.能够进 ...

随机推荐

  1. Jsp获取Java的对象(JavaBean)

    Jsp获取Java的对象(JavaBean) Java代码片段: AuthReqBean authRep=new AuthReqBean(); authRep.setUserCode(usercode ...

  2. Node-webkit 安装使用npm安装模块方法

    原文链接:http://jingyan.baidu.com/article/5225f26b5aaa20e6fa0908a6.html package.json可以放在软件根目录下,也可以放在项目目录 ...

  3. 20145324王嘉澜《网络对抗技术》Web基础

    实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML ②Web前端javascipt: 理解JavaScript ...

  4. Java集合总结(List、Map、Set)

    集合的引入 当我们有种需求,需要存储多个元素的结构时,我们前面讲过数组,数组可以存储.但是数组也有它的弊端,使用的时候,必须先定义好长度,也就是数组的长度是固定,不能根据我们的需求自动变长或者变短. ...

  5. Python3基础 type 获得变量的类型

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. 高通RFC适配RFFE-添加MIPI设备【转】

    本文转载自:https://blog.csdn.net/u011212816/article/details/80828625 RF driver主要设计到的器件 1.Transceiver 2.RF ...

  7. Linux多线程--使用信号量同步线程【转】

    本文转载自:http://blog.csdn.net/ljianhui/article/details/10813469 信号量.同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过 ...

  8. linux下安装微信小程序开发工具

    一.环境:: ubuntu 16.04 二.安装过程: 2.1 安装wine sudo apt-get install wine 2.2 安装nwjs-sdk 2.2.1 下载linux版nwjs-s ...

  9. spring集成mybatis后,打印SQL语句

    网上说mybatis的早前版本配置打印sql还比较简单,在3.0.6之后配置方式修改了. 现在的spring-mybatis.xml配置如下: <bean id="sqlSession ...

  10. 【命令】Linux常用命令

    常用指令 ls 显示文件或目录ls -f 查看目录中的文件 ls -l 列出文件详细信息l(list) ls -a 列出当前目录下所有文件及目录,包括隐藏的a(all)ls *[0-9]* 显示包含数 ...