标签:
原文地址 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
--联系人的更新 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)、供应商付款方法创建和更新
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);
将银行账户挂到对应地点的‘添加’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);
标签:
原文地址:http://www.cnblogs.com/huanghongbo/p/4521424.html