詳解EBS介面開發之供應商匯入(補充)--供應商銀行賬戶更新

來源:互聯網
上載者:User

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;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.