CREATE OR REPLACE PACKAGE BODY update_vendor_account IS

  PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT VARCHAR2) IS
l_vendor_id NUMBER;
l_acct_id NUMBER;
l_party_id NUMBER;
l_return_status VARCHAR2(30);
l_msg_count NUMBER;
l_msg_data VARCHAR2(30);
l_joint_acct_owner_id NUMBER;
v_count NUMBER;
l_bank_acct_id NUMBER;
--l_result_rec iby_fndcpt_common_pub.result_rec_type;
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;
l_result_rec iby_fndcpt_common_pub.result_rec_type; l_ext_bank_acct_rec iby_ext_bankacct_pub.extbankacct_rec_type; l_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;
CURSOR cur_vendor IS
SELECT * FROM cux_oms_vendor h WHERE h.process_status = 'COMPLETE';
BEGIN
FOR rec_vendor IN cur_vendor LOOP
l_party_id := NULL;
BEGIN
SELECT pv.vendor_id
INTO l_vendor_id
FROM po_vendors pv
WHERE pv.segment1 = rec_vendor.rec_vendor_number;
EXCEPTION
WHEN OTHERS THEN RAISE fnd_api.g_exc_unexpected_error;
END; /*BEGIN
SELECT pv.ext_bank_account_id
INTO l_acct_id
FROM iby_ext_bank_accounts pv
WHERE pv.bank_account_num = rec_vendor.bank_account_num;
EXCEPTION
WHEN OTHERS THEN
cux_conc_utl.log_msg('@@@111111111@@@@@@@@@@ 1:' || SQLERRM);
RAISE fnd_api.g_exc_unexpected_error;
END;*/
BEGIN
SELECT pv.party_id
INTO l_party_id
FROM po_vendors pv
WHERE pv.vendor_id = l_vendor_id;
EXCEPTION
WHEN OTHERS THEN RAISE fnd_api.g_exc_unexpected_error;
END; l_ext_bank_acct_rec.country_code := rec_vendors.belong_country;
l_ext_bank_acct_rec.branch_id := rec_vendor.bank_branch_id;
l_ext_bank_acct_rec.bank_id := rec_vendor.bank_id;
l_ext_bank_acct_rec.acct_owner_party_id := l_party_id;
l_ext_bank_acct_rec.bank_account_name := rec_vendor.bank_account_name;
l_ext_bank_acct_rec.bank_account_num := rec_vendor.bank_account_num;
--L_EXT_BANK_ACCT_REC.currency;
l_ext_bank_acct_rec.foreign_payment_use_flag := 'N';
l_ext_bank_acct_rec.object_version_number := 1;
l_ext_bank_acct_rec.start_date := to_date('2013-01-01',
'YYYY-MM-DD'); 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); END LOOP; FOR rec_vendor IN cur_vendor LOOP
l_vendor_id := NULL;
l_acct_id := NULL;
l_party_id := NULL;
v_count := 0;
BEGIN
SELECT pv.vendor_id
INTO l_vendor_id
FROM po_vendors pv
WHERE pv.segment1 = rec_vendor.rec_vendor_number;
EXCEPTION
WHEN OTHERS THEN
RAISE fnd_api.g_exc_unexpected_error;
END; BEGIN
SELECT pv.ext_bank_account_id
INTO l_acct_id
FROM iby_ext_bank_accounts pv
WHERE pv.bank_account_num = rec_vendor.bank_account_num;
EXCEPTION
WHEN OTHERS THEN RAISE fnd_api.g_exc_unexpected_error;
END;
BEGIN
SELECT pv.party_id
INTO l_party_id
FROM po_vendors pv
WHERE pv.vendor_id = l_vendor_id;
EXCEPTION
WHEN OTHERS THEN RAISE fnd_api.g_exc_unexpected_error;
END;
SELECT COUNT(*)
INTO v_count
FROM iby_account_owners
WHERE account_owner_party_id = l_party_id
AND ext_bank_account_id = l_acct_id; IF v_count > 0 THEN
UPDATE cux_oms_vendor h
SET h.process_status = 'ERROR',
h.process_message = 'same party cannot be assigned the same bank account'
WHERE h.header_id = rec_vendor.header_id; ELSE iby_ext_bankacct_pub.add_joint_account_owner(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true,
p_bank_account_id => l_acct_id,
p_acct_owner_party_id => l_party_id,
x_joint_acct_owner_id => l_joint_acct_owner_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_response => l_result_rec); END IF;
END LOOP;
END;
END update_vendor_account;

详解EBS接口开发之供应商导入(补充)--供应商银行账户更新的更多相关文章

  1. 详解EBS接口开发之物料导入API

    create_item inv_item_grp.create_item(p_commit => fnd_api.g_true, -- p_item_rec => l_item_rec, ...

  2. 供应商API补充(详解EBS接口开发之供应商导入)(转)

    原文地址  供应商导入的API补充(详解EBS接口开发之供应商导入) --供应商 --创建 AP_VENDOR_PUB_PKG.Create_Vendor ( p_api_version IN NUM ...

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

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

  4. 详解EBS接口开发之库存事务处理批次更新

    库存事务处理批次有时候出现导入错误需要更新可使用次程序更新,批次导入可参考博客 详解EBS接口开发之库存事务处理-物料批次导入 http://blog.csdn.net/cai_xingyun/art ...

  5. 详解EBS接口开发之库存事务处理采购接收--补充

    除了可以用  详解EBS接口开发之库存事务处理采购接收的方法还可以用一下方法,不同之处在于带有批次和序列控制的时候实现方式不同 The script will load records into ...

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

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

  7. 详解EBS接口开发之应收款处理

    参考实例参考:杜春阳 R12应收模块收款API研究 (一)应收款常用标准表简介 1.1   常用标准表 如下表中列出了与应收款处理相关的表和说明: 表名 说明 其他信息 AR_BATCHES_ALL ...

  8. 供应商导入的API补充(详解EBS接口开发之供应商导入)

    --供应商 --创建 AP_VENDOR_PUB_PKG.Create_Vendor ( p_api_version IN NUMBER, p_init_msg_list IN VARCHAR2 := ...

  9. 详解EBS接口开发之供应商导入(补充)--错误信息处理

    check reject details on records of AP_SUPPLIER_INT SELECT s.parent_table,s.reject_lookup_code,S.LAST ...

随机推荐

  1. ●CodeForces 429D Trick_Function

    题链: http://codeforces.com/problemset/problem/429/D题解: 分治,最近点对 不难发现g(i,j)=sum[j]-sum[i], 那么f(i,j)=(i- ...

  2. ●poj 1474 Video Surveillance

    题链: http://poj.org/problem?id=1474 题解: 计算几何,半平面交 半平面交裸题,快要恶心死我啦... (了无数次之后,一怒之下把onleft改为onright,然后还加 ...

  3. NOIP2014-5-17模拟赛

    Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233 "来来来,学 ...

  4. hdu 5113(2014北京—搜索+剪枝)

    题意:有N*M的棋盘,用K种颜色去染,要求相邻块不能同色.已知每种颜色要染的块数,问能不能染,如果能,输出任一种染法. 最开始dfs失败了- -,优先搜索一行,搜完后进入下一列,超时.本来以为搜索不行 ...

  5. C语言程序设计第三次作业——选择结构(1)

    一.改错题 1.题目计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 源程序(有错误的程序): #include <stdio.h> int main ...

  6. 《java技术》第二次作业

    (一)学习总结 1.什么是构造方法?什么是构造方法的重载? 1)没有返回值,名字与类名相同,当新对象被创建的时候,构造函数会被调用,要想构造函数,必须声明对象并对其初始化.每一个类都有构造函数,如果没 ...

  7. jQuery ajax中使用serialize()方法提交表单数据示例

    <form id="form"> 输入账号 :<input id="name" type="text" name=&quo ...

  8. Java8——快速入门手册(学习笔记)

    github博文传送门 Java8特性学习笔记 Java8中新增了许多的新特性,在这里本人研究学习了几个较为常用的特性,在这里与大家进行分享.(这里推荐深入理解Java 8用于理解基础知识)本文分为以 ...

  9. JVM常见问题 一(转载)

    1. 内存模型以及分区 JVM内存模型如下图所示: 此处我们集中注意中间绿色的部分,该部分为JVM的运行时内存,该部分包含了: 线程私有的(灰色): 程序计数器:记录执行到第几条指令 虚拟机方法栈:执 ...

  10. Python小代码_12_生成前 n 行杨辉三角

    def demo(t): print([1]) print([1, 1]) line = [1, 1] for i in range(2, t): r = [] for j in range(0, l ...