客户地点分配多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;
/

时间: 2024-10-02 09:41:03

客户地点分配多OU的相关文章

Oracle EBS 更新客户地点

--更新客户地点 declare x_return_status VARCHAR2(150); x_msg_count NUMBER; x_msg_data VARCHAR2(2000); x_profile_id NUMBER; l_location_id NUMBER; l_object_version_number NUMBER; l_party_rec hz_party_site_v2pub.party_site_rec_type; cursor cur_DT is SELECT loc

商翼ERB企业管理软件是如何管理客户的?

作为最新一代的企业计算级管理系统,商翼ERB企业管理软件的客户管理功能非常的强大. 可以对客户进行自定义多级分组和设置客户等级,同一个客户可以分配到多个分组和等级设置中,查找起来非常的方便和精准: 用户可以在图形显示和文字显示之间进行自由的切换,操作起来非常的方便. 独一无二的业务大厅集成业务处理中心,用户可以将业务添加到业务大厅中,并对客户业务合作的进展及处理情况进行随时跟踪:管理人员可以将客户分配.共享或转移给公司的其他业务人员,进行协同业务处理: 特有的业务员工作日记和业务管理功能,管理人

科普:客户关系管理系统对客户信息管理的6大帮助

每次展会企业都会收集到很多客户信息,再加上之前的老客户信息,可以说,客户信息千千万,那么,怎么管理呢,同时,又怎样在数以万计的客户信息中,找到目标客户的信息呢,这些都是企业所关心的客户信息管理问题,而这些,客户关系管理系统就可以帮助企业轻松解决. 1.客户信息的多种录入方式 说到客户信息,首当其冲的就是客户信息的保存问题,企业展会的客户资源,企业原有的客户资源,员工自己开发的客户资源,这么多客户信息的整理确实是个难题:但是在客户关系管理系统内,就简单多了,比如智邦国际客户关系管理系统内,企业就可

客户信息全SQL

SELECT hp.party_name "客户名称", --客户名称 hca.account_number "客户编号", --客户编号 hca.cust_account_id "客户ID", --客户cust_acc_id decode(hca.customer_type, 'I', '内部客户', 'R', '外部客户', hca.customer_type) "客户类型", hca.customer_class_cod

Oracle EBS R12 客户表结构

R12 客户表结构 客户表/联系人/PARTY关联 HZ_PARTIES 客户账户表 HZ_CUST_ACCOUNTS 例子: SELECT hp.party_number --客户注册标识 , hp.party_name --组织名/客户 , hp.known_as --别名 , hp.organization_name_phonetic --名称拼音 , acc.account_number --帐号 , flv_sale.meaning sales_channel_code --销售渠道

所有标准API

序号 系统版本 模块 应用场景 类型 API/接口 参数规格 样例代码 备注 登记者 登记时间 关键字 1 12.1.3 AP 付款核销 API ap_pay_invoice_pkg.ap_pay_invoice 赵杨 2013/3/30 付款/核销 2 12.1.3 AP 应付发票审批 API ap_approval_pkg.approval 赵杨 2013/3/30 发票/审批 3 12.1.3 AP 预付款核销 API ap_prepay_pkg.apply_prepay_fr_prepa

ORACLE EBS常用表查询语句

1. OU.库存组织 SELECT hou.organization_id ou_org_id, --org_id hou.name ou_name, --ou 名称 ood.organization_id org_org_id, -- 库存组织 id ood.organization_code org_org_code, -- 库存组织代码 msi.secondary_inventory_name, -- 子库存名称 msi.description -- 子库存描述 FROM hr_organ

SD从零开始41-44

[原创] SD从零开始41 科目确定(Account determination) 使用科目确定Using Account Determination 你将需要在几个不同的领域确定将要记账的科目: 用于记账销售收入,销售扣除和增值税的总账科目在数据从billing document传输到FI时自动地确定: 当处理现金销售时,必须在凭证中设置一个总账科目用于现金结算(不会记账到客户账户): 到4.0版本时,可以确定一个不同于付款方客户主数据中输入的科目的统御科目: 当使用payment cards

计算机网络课后答案

计算机网络课后答案 第一章?概述 1-01?计算机网络向用户可以提供那些服务? 答:?连通性和共享 ? 1-02?简述分组交换的要点. 答:(1)报文分组,加首部 (2)经路由器储存转发 (3)在目的地合并 ? 1-03?试从多个方面比较电路交换.报文交换和分组交换的主要优缺点. ?????答:(1)电路交换:端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高. (2)报文交换:无须预约传输带宽,动态逐段利用传输带宽对突发式数据通信效率高,通信迅速. (3)分组交换:具有报文交