Oracle EBS AR 更新客户账户层

Posted jenrry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle EBS AR 更新客户账户层相关的知识,希望对你有一定的参考价值。

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_cust_account_v2pub.cust_account_rec_type;
  cursor cur_DT is
    SELECT loc.location_id,
           loc.object_version_number,
           addr.PARTY_SITE_ID,
           hc.ACCOUNT_NUMBER,
           hc.CUST_ACCOUNT_ID,
           party_site.PARTY_SITE_NAME,
           hcp.CUST_ACCOUNT_PROFILE_ID,
           hcp.CREDIT_HOLD,
           hc.CREATION_DATE,
           hc.CREATED_BY,
           hc.ORIG_SYSTEM_REFERENCE,
           hc.PARTY_ID,
           hc.STATUS
      FROM hz_cust_acct_sites_all addr,
           hz_party_sites         party_site,
           hz_locations           loc,
           HZ_CUSTOMER_PROFILES   hcp,
           HZ_CUST_ACCOUNTS       hc
     WHERE 1 = 1
       AND addr.party_site_id = party_site.party_site_id
       AND loc.location_id = party_site.location_id
       and hc.PARTY_ID = party_site.PARTY_ID
       and hc.CUST_ACCOUNT_ID = hcp.CUST_ACCOUNT_ID
       and party_site.PARTY_ID =
           (select hz.PARTY_ID
              from hz_parties hz
             where hz.PARTY_ID = party_site.PARTY_ID
               and hz.PARTY_NUMBER = 10984);

begin
  fnd_global.apps_initialize(0, 50738, 20003);
  mo_global.init(AR);
  FOR rec IN CUR_DT LOOP
    begin
      select hc.OBJECT_VERSION_NUMBER
        into l_object_version_number
        from HZ_CUST_ACCOUNTS hc
       where hc.CUST_ACCOUNT_ID = rec.CUST_ACCOUNT_ID;
    end;
    l_party_rec.CUST_ACCOUNT_ID       := rec.CUST_ACCOUNT_ID;
    l_party_rec.ACCOUNT_NUMBER        := rec.ACCOUNT_NUMBER;
    l_party_rec.status                := I;
    l_party_rec.orig_system_reference := rec.orig_system_reference;
  
    hz_cust_account_v2pub.update_cust_account(p_init_msg_list         => fnd_api.g_false,
                                              p_cust_account_rec      => l_party_rec,
                                              p_object_version_number => l_object_version_number,
                                              x_return_status         => x_return_status,
                                              x_msg_count             => x_msg_count,
                                              x_msg_data              => x_msg_data);
  
    IF x_return_status = fnd_api.g_ret_sts_error THEN
      x_msg_count := fnd_msg_pub.count_msg;
      x_msg_data  := substr(fnd_msg_pub.get(fnd_msg_pub.g_first,
                                            fnd_api.g_false),
                            1,
                            512);
      dbms_output.put_line(x_msg_data);
      fnd_msg_pub.delete_msg();
      RAISE fnd_api.g_exc_error;
    ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
      x_msg_count := fnd_msg_pub.count_msg;
      x_msg_data  := substr(fnd_msg_pub.get(fnd_msg_pub.g_first,
                                            fnd_api.g_false),
                            1,
                            512);
      dbms_output.put_line(x_msg_data);
    
      fnd_msg_pub.delete_msg();
      RAISE fnd_api.g_exc_unexpected_error;
    END IF;
    IF x_return_status = fnd_api.g_ret_sts_success THEN
      dbms_output.put_line(------------------Update Success-------------------);
    
    END IF;
  END LOOP;
END;

 

以上是关于Oracle EBS AR 更新客户账户层的主要内容,如果未能解决你的问题,请参考以下文章

Oracle EBS AR 更新客户

Oracle EBS AR 更新客户配置文件

Oracle EBS AR 客户API

Oracle EBS AR 客户取数SQL

Oracle EBS 更新客户地点

转:Oracle EBS订单的流程(Order->AR)