• 客户地点分配多OU


    DECLARE
       l_num_user_id            NUMBER;
       l_num_appl_id            NUMBER;
       l_num_resp_id            NUMBER;
       cust_account_rec_type    hz_cust_account_v2pub.cust_account_rec_type;
       l_num_obj_ver_num        NUMBER;
       l_chr_return_status      VARCHAR2(2000);
       l_num_msg_count          NUMBER;
       l_chr_msg_data           VARCHAR2(500);
       l_num_profile_id         NUMBER;
       l_organization_rec       hz_party_v2pub.organization_rec_type;
       l_customer_profile_rec   hz_customer_profile_v2pub.customer_profile_rec_type;
       l_num_cust_id            NUMBER;
       l_chr_acct_num           VARCHAR2(500);
       l_num_party_id           NUMBER;
       l_chr_party_number       VARCHAR2(500);
       l_cust_acct_site_use_rec hz_cust_account_site_v2pub.cust_site_use_rec_type;
       l_cust_acct_site_rec     hz_cust_account_site_v2pub.cust_acct_site_rec_type;
       l_chr_sit_return_status  VARCHAR2(500);
       l_num_sit_msg_count      NUMBER;
       l_chr_sit_msg_data       VARCHAR2(500);
       l_chr_situ_return_status VARCHAR2(500);
       l_num_situ_msg_count     NUMBER;
       l_chr_situ_msg_data      VARCHAR2(500);
       l_num_site_use_id        NUMBER;
       CURSOR update_base_tables_cur IS
          SELECT DISTINCT a.party_number,
                          ps.party_site_number,
                          a.party_id,
                          'CUST-' || a.party_id || '-' || ass.org_id AS customer_ref,
                          'ADD-' || ps.party_site_id || '-' || ass.org_id AS address_ref,
                          ps.party_site_id,
                          ass.address_line1,
                          ass.city,
                          ass.state,
                          ass.zip,
                          ass.country,
                          'N' primary_site_use_flag,
                          a.orig_system_reference AS party_ref,
                          a.party_name AS customer_name,
                          ass.org_id
            FROM apps.ap_suppliers          ap,
                 apps.ap_supplier_sites_all ass,
                 apps.hz_parties            a,
                 apps.hz_party_sites        ps
           WHERE ap.vendor_id = ass.vendor_id
             AND a.party_id = ap.party_id
             AND ps.party_id = ap.party_id
             AND ass.party_site_id = ps.party_site_id
             AND a.party_name = ap.vendor_name
             AND a.party_id = 12465 -- modify this part/query
                --and ass.org_id = 204
             AND NOT EXISTS
           (SELECT 1 FROM hz_cust_accounts a WHERE a.party_id = a.party_id);
    BEGIN
       fnd_global.apps_initialize(&user_id, &responsibility_id, 222); -- input from 1st sql
       dbms_output.put_line('***************************');
       FOR update_base_tables_rec IN update_base_tables_cur LOOP
          NULL;
          cust_account_rec_type.cust_account_id       := fnd_api.g_miss_num;
          cust_account_rec_type.account_name          := update_base_tables_rec.customer_name;
          l_organization_rec.party_rec.party_id       := update_base_tables_rec.party_id;
          l_organization_rec.party_rec.party_number   := update_base_tables_rec.party_number;
          l_organization_rec.organization_name        := update_base_tables_rec.customer_name;
          cust_account_rec_type.orig_system_reference := update_base_tables_rec.customer_ref;
          l_customer_profile_rec.party_id             := update_base_tables_rec.party_id;
          l_customer_profile_rec.profile_class_id     := 0; -- use DEFAULT profile with id=0
          l_customer_profile_rec.created_by_module    := 'HZ_CPUI';
          cust_account_rec_type.created_by_module     := 'HZ_CPUI';
          hz_cust_account_v2pub.create_cust_account(p_init_msg_list        => fnd_api.g_false,
                                                    p_cust_account_rec     => cust_account_rec_type,
                                                    p_organization_rec     => l_organization_rec,
                                                    p_customer_profile_rec => l_customer_profile_rec,
                                                    p_create_profile_amt   => fnd_api.g_true,
                                                    x_cust_account_id      => l_num_cust_id,
                                                    x_account_number       => l_chr_acct_num,
                                                    x_party_id             => l_num_party_id,
                                                    x_party_number         => l_chr_party_number,
                                                    x_profile_id           => l_num_profile_id,
                                                    x_return_status        => l_chr_return_status,
                                                    x_msg_count            => l_num_msg_count,
                                                    x_msg_data             => l_chr_msg_data);
          dbms_output.put_line('x_return_status: ' || l_chr_return_status);
          dbms_output.put_line('x_cust_account_id: ' || l_num_cust_id);
          dbms_output.put_line('x_account_number: ' || l_chr_acct_num);
          dbms_output.put_line('x_party_id: ' || l_num_party_id);
          IF l_chr_return_status != 'S' THEN
             --Display all the error messages
             FOR j IN 1 .. fnd_msg_pub.count_msg LOOP
                dbms_output.put_line(j);
                l_chr_msg_data := fnd_msg_pub.get(p_msg_index => j,
                                                  p_encoded   => 'F');
                dbms_output.put_line('Message(' || j || '):= ' ||
                                     l_chr_msg_data);
             END LOOP;
          END IF;
          BEGIN
             SELECT cust_account_id
               INTO l_cust_acct_site_rec.cust_account_id
               FROM hz_cust_accounts
              WHERE orig_system_reference = update_base_tables_rec.customer_ref;
          EXCEPTION
             WHEN OTHERS THEN
                l_cust_acct_site_rec.cust_account_id := fnd_api.g_miss_num;
          END;
          l_cust_acct_site_rec.party_site_id         := update_base_tables_rec.party_site_id;
          l_cust_acct_site_rec.created_by_module     := 'HZ_CPUI';
          l_cust_acct_site_rec.orig_system_reference := update_base_tables_rec.address_ref;
          l_cust_acct_site_rec.status                := 'A';
          l_cust_acct_site_rec.org_id                := update_base_tables_rec.org_id;
          mo_global.init('ONT');
          mo_global.set_policy_context(p_access_mode => 'S',
                                       p_org_id      => update_base_tables_rec.org_id);
          hz_cust_account_site_v2pub.create_cust_acct_site(p_init_msg_list      => 'T',
                                                           p_cust_acct_site_rec => l_cust_acct_site_rec,
                                                           x_cust_acct_site_id  => l_num_obj_ver_num,
                                                           x_return_status      => l_chr_sit_return_status,
                                                           x_msg_count          => l_num_sit_msg_count,
                                                           x_msg_data           => l_chr_sit_msg_data);
          dbms_output.put_line('x_cust_acct_site_id: ' || l_num_obj_ver_num);
          dbms_output.put_line('x_return_status: ' || l_chr_sit_return_status);
          IF l_chr_sit_return_status != 'S' THEN
             --Display all the error messages
             FOR j IN 1 .. fnd_msg_pub.count_msg LOOP
                dbms_output.put_line(j);
                l_chr_sit_msg_data := fnd_msg_pub.get(p_msg_index => j,
                                                      p_encoded   => 'F');
                dbms_output.put_line('Site Message(' || j || '):= ' ||
                                     l_chr_sit_msg_data);
             END LOOP;
          END IF;
          BEGIN
             SELECT cust_acct_site_id
               INTO l_cust_acct_site_use_rec.cust_acct_site_id
               FROM hz_cust_acct_sites_all
              WHERE orig_system_reference = update_base_tables_rec.address_ref;
          EXCEPTION
             WHEN OTHERS THEN
                l_cust_acct_site_use_rec.cust_acct_site_id := fnd_api.g_miss_num;
          END;
          l_cust_acct_site_use_rec.org_id                := update_base_tables_rec.org_id;
          l_cust_acct_site_use_rec.site_use_code         := 'BILL_TO';
          l_cust_acct_site_use_rec.status                := 'A';
          l_cust_acct_site_use_rec.primary_flag          := 'Y';
          l_cust_acct_site_use_rec.orig_system_reference := update_base_tables_rec.address_ref;
          l_cust_acct_site_use_rec.created_by_module     := 'HZ_CPUI';
          mo_global.set_policy_context(p_access_mode => 'S',
                                       p_org_id      => update_base_tables_rec.org_id);
          hz_cust_account_site_v2pub.create_cust_site_use(p_init_msg_list        => 'T',
                                                          p_cust_site_use_rec    => l_cust_acct_site_use_rec,
                                                          p_customer_profile_rec => l_customer_profile_rec,
                                                          p_create_profile       => fnd_api.g_true,
                                                          p_create_profile_amt   => fnd_api.g_true,
                                                          x_site_use_id          => l_num_site_use_id,
                                                          x_return_status        => l_chr_situ_return_status,
                                                          x_msg_count            => l_num_situ_msg_count,
                                                          x_msg_data             => l_chr_situ_msg_data);
          dbms_output.put_line('x_site_use_id: ' || l_num_site_use_id);
          dbms_output.put_line('x_return_status: ' || l_chr_situ_return_status);
          IF l_chr_situ_return_status != 'S' THEN
             --Display all the error messages
             FOR j IN 1 .. fnd_msg_pub.count_msg LOOP
                dbms_output.put_line(j);
                l_chr_situ_msg_data := fnd_msg_pub.get(p_msg_index => j,
                                                       p_encoded   => 'F');
                dbms_output.put_line('Site Use Message(' || j || '):= ' ||
                                     l_chr_situ_msg_data);
             END LOOP;
          END IF;
       END LOOP;
    END;
    /
    

  • 相关阅读:
    15个新鲜出炉的 Photoshop 文本效果教程
    10个美丽的例子,插图在网页设计中的应用
    分享8个非常时髦的翻页特效(附代码片段)
    【Vue课堂】Vue.js 父子组件之间通信的十种方式
    Tippy.js – 轻量的 Javascript Tooltip 工具库
    12个美丽的网站与受到日出启发的配色方案
    精选:3个可以下载免费的高质量照片的网站
    nativefier
    Mark Text
    Puppeteer
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299196.html
Copyright © 2020-2023  润新知