详解EBS接口开发之供应商导入
2013-12-04 10:53
253 查看
(一)供应商常用标准表简介
供应商银行信息表:IBY_EXT_BANKS_V
供应商银行分行信息表:IBY_EXT_BANK_BRANCHES_V
供应商账户信息表:IBY_EXT_BANK_ACCOUNTS
第一步:创建需要导入供应商信息的中间表,字段上提供供应商头信息、地点信息等必输字段。
第二步:向中间表中插入需要导入的供应商信息,验证需要插入的数据是否满足供应商信息规则,去除不合规范的数据。
第三步:对需要导入的数据在数据库标准表中尽行验证是否存在,不存在的供应商信息调用标准API进行导入操作,已存在的供应商根据实际需求是否进行更新。
第四步:导入完成后在界面或者后台表中查询该供应商信息,检验导入的供应商信息是否正确。
第一步:将外部系统数据验证后,转化后导入到客户化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
1.1 常用标准表
如下表中列出了与供应商相关的表和说明:表名 | 说明 | 其他信息 | ||
ap_suppliers | 供应商头表 | 供应商的头信息如:供应商名、供应商编码、税号等 | po_vendors | 对应视图 |
ap_supplier_sites_all | 供应商地点表 | 供应商的地点信息,如对应OU、地址等 | po_vendor_sites_all | 对应视图 |
pos_supp_prof_ext_b | 供应商地点附加信息表 | 供应商地点附加信息c_ext_attr1~15,d_ext_attr1~15字段 | ||
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 | 地点银行支行表 | 地点银行支行的联行号、支行名登信息 |
字段名 | 说明 |
BANK_PARTY_ID | 银行id |
BANK_NAME | 银行名称 |
BANK_NUMBER | 银行编号 |
字段名 | 说明 |
BRANCH_PARTY_ID | 分行id |
BRANCH_NUMBER | 分行编号 |
BANK_PARTY_ID | 父行id |
字段名 | 说明 |
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
供应商头创建 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); --返回的错误信息
供应商地点创建 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);
--更新供应商地点 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);
--创建联系人 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
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); --错误信息
--创建和更新供应商默认付款方法的创建和更新 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);
--创建银行 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);
--创建支行 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);
--创建帐号 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);
将账户信息挂到对应地点“添加”按钮中的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);
--创建到地点上 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);
(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);
接口表实现导入方法 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网站
相关文章推荐
- 供应商导入的API补充(详解EBS接口开发之供应商导入)
- 详解EBS接口开发之供应商导入补充-供应商地点增加实例
- 供应商导入的API补充(详解EBS接口开发之供应商导入)
- 详解EBS接口开发之供应商导入(补充)--错误信息处理
- 供应商导入的API补充(详解EBS接口开发之供应商导入)
- 详解EBS接口开发之供应商导入(补充)--错误信息处理
- 详解EBS接口开发之供应商导入(补充)--错误信息处理
- 供应商API补充(详解EBS接口开发之供应商导入)(转)
- 详解EBS接口开发之供应商导入(补充)--供应商银行账户更新
- 详解EBS接口开发之供应商导入(补充)--供应商银行账户更新
- 详解EBS接口开发之供应商导入
- 详解EBS接口开发之供应商导入(补充)--供应商银行账户更新
- 详解EBS接口开发之供应商导入
- 详解EBS接口开发之供应商导入补充-供应商地点增加实例
- 详解EBS接口开发之供应商导入补充-供应商地点增加实例
- 详解EBS接口开发之库存事务处理-物料批次导入
- 详解EBS接口开发之应收INVOICE导入
- 详解EBS接口开发之应收INVOICE导入
- AR-API-详解EBS接口开发之应收INVOICE导入
- 详解EBS接口开发之采购订单导入