zoukankan      html  css  js  c++  java
  • 使用API失效供应商地址Demo(转)

    原文地址  使用API失效供应商地址Demo

    DECLARE
      lv_return_status         VARCHAR2(1) := NULL;
      ln_msg_count             NUMBER;
      lv_errmsg                VARCHAR2(5000);
      lt_vendor_site_rec       ap_vendor_pub_pkg.r_vendor_site_rec_type;
      l_party_site_rec         hz_party_site_v2pub.party_site_rec_type;
      lt_location_rec          hz_location_v2pub.location_rec_type;
      ln_object_version_number NUMBER;
      ln_object_version_number2 NUMBER;
      ln_vendor_site_id        NUMBER := NULL;
      ln_party_site_id         NUMBER := NULL;
      lv_party_site_name       VARCHAR2(240);
      lv_party_site_number     VARCHAR2(30);
      ln_location_id           NUMBER;
      -- WHO columns
      l_user_id        NUMBER := -1;
      l_resp_id        NUMBER := -1;
      l_application_id NUMBER := -1;
      l_row_cnt        NUMBER := 1;
      l_user_name      VARCHAR2(30) := &user_name;
      l_resp_name      VARCHAR2(30) := &resp_name;
      lv_vendor_site_code VARCHAR2(15) := &vendor_site_code;
      ln_org_id NUMBER := &org_id;
    
      /*CURSOR sup_site IS
        SELECT vendor_site_code_de
          FROM xxwe_mg_supplier_sites_xross
         WHERE batch_id = 234
           AND segment1_so NOT LIKE 'NON%';*/
    BEGIN
      -- Get the user_id
      SELECT user_id INTO l_user_id FROM fnd_user WHERE upper(user_name) = upper(l_user_name);
    
      -- Get the application_id and responsibility_id
      SELECT application_id,
             responsibility_id
        INTO l_application_id,
             l_resp_id
        FROM fnd_responsibility_vl
       WHERE upper(responsibility_name) = upper(l_resp_name);
    
      -- Initialize applications information      
      fnd_global.apps_initialize(l_user_id, l_resp_id, l_application_id); -- Mfg / Mfg & Dist Mgr / INV
      dbms_output.put_line('Initialized applications context: ' || l_user_id || ' ' || l_resp_id || ' ' || l_application_id);
      --
      dbms_output.put_line('------------------Start Update-------------------');
      --FOR rec IN sup_site LOOP
      --dbms_output.put_line('Supplier site code:' || rec.vendor_site_code_de);
      --dbms_output.put_line('Supplier org id:' || ln_org_id);
      --SELECT NECESSARY INFORMATION
    
      BEGIN
        SELECT pvs.vendor_site_id,
               pvs.party_site_id,
               hps.party_site_name,
               hps.object_version_number,
               hps.party_site_number,
               pvs.location_id,
               hl.object_version_number
          INTO ln_vendor_site_id,
               ln_party_site_id,
               lv_party_site_name,
               ln_object_version_number,
               lv_party_site_number,
               ln_location_id,
               ln_object_version_number2
          FROM ap_supplier_sites_all pvs,
               hz_party_sites        hps,
               hz_locations          hl
         WHERE pvs.vendor_site_code = lv_vendor_site_code--rec.vendor_site_code_de
           AND pvs.org_id = ln_org_id
           AND pvs.party_site_id = hps.party_site_id
           AND pvs.location_id = hl.location_id;
      EXCEPTION
        WHEN no_data_found THEN
          lv_errmsg := 'Can not find the vendor site need to update!The site code is:' || lv_vendor_site_code/*rec.vendor_site_code_de*/;
          dbms_output.put_line(lv_errmsg);
      END;
      --
      lt_vendor_site_rec.vendor_site_id   := ln_vendor_site_id;
      lt_vendor_site_rec.vendor_site_code := substr(lv_vendor_site_code, length(lv_vendor_site_code) - 7, 8) || 'disable';
      lt_vendor_site_rec.inactive_date    := SYSDATE;
    
      --UPDATE vendor_site_code
      ap_vendor_pub_pkg.update_vendor_site(p_api_version      => 1.0,
                                           p_init_msg_list    => fnd_api.g_true,
                                           p_commit           => fnd_api.g_false,
                                           p_validation_level => fnd_api.g_valid_level_full,
                                           x_return_status    => lv_return_status,
                                           x_msg_count        => ln_msg_count,
                                           x_msg_data         => lv_errmsg,
                                           p_vendor_site_rec  => lt_vendor_site_rec,
                                           p_vendor_site_id   => ln_vendor_site_id);
      IF (nvl(lv_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
        ln_msg_count := fnd_msg_pub.count_msg;
        IF ln_msg_count > 0 THEN
          lv_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
        
          FOR i IN 1 .. (ln_msg_count - 1) LOOP
          
            lv_errmsg := lv_errmsg || chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false), 1, 512);
          END LOOP;
          fnd_msg_pub.delete_msg();
        END IF;
        dbms_output.put_line('------------------Update Error-------------------');
        dbms_output.put_line('Error1 :' || lv_errmsg);
      END IF;
      --UPDATE party_site_name
      l_party_site_rec.party_site_id   := ln_party_site_id;
      l_party_site_rec.party_site_name := lv_party_site_name || 'disable';
      l_party_site_rec.status          := 'I';
      --
      hz_party_site_v2pub.update_party_site(p_init_msg_list         => fnd_api.g_false,
                                            p_party_site_rec        => l_party_site_rec,
                                            p_object_version_number => ln_object_version_number,
                                            x_return_status         => lv_return_status,
                                            x_msg_count             => ln_msg_count,
                                            x_msg_data              => lv_errmsg);
      IF (nvl(lv_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
        ln_msg_count := fnd_msg_pub.count_msg;
        IF ln_msg_count > 0 THEN
          lv_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
        
          FOR i IN 1 .. (ln_msg_count - 1) LOOP
          
            lv_errmsg := lv_errmsg || chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false), 1, 512);
          END LOOP;
          fnd_msg_pub.delete_msg();
        END IF;
        dbms_output.put_line('------------------Update Error-------------------');
        dbms_output.put_line('Error2 :' || lv_errmsg);
      END IF;
      --update location
      lt_location_rec.address_style := 'POSTAL_ADDR_DEF';
      lt_location_rec.location_id   := ln_location_id;
    
      hz_location_v2pub.update_location(p_init_msg_list         => fnd_api.g_true,
                                        p_location_rec          => lt_location_rec,
                                        p_object_version_number => ln_object_version_number2,
                                        x_return_status         => lv_return_status,
                                        x_msg_count             => ln_msg_count,
                                        x_msg_data              => lv_errmsg);
      IF (nvl(lv_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
        ln_msg_count := fnd_msg_pub.count_msg;
        IF ln_msg_count > 0 THEN
          lv_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
        
          FOR i IN 1 .. (ln_msg_count - 1) LOOP
          
            lv_errmsg := lv_errmsg || chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false), 1, 512);
          END LOOP;
          fnd_msg_pub.delete_msg();
        END IF;
        dbms_output.put_line('------------------Update Error-------------------');
        dbms_output.put_line('Error3 :' || lv_errmsg);
      END IF;
      --
      IF lv_return_status = fnd_api.g_ret_sts_success THEN
        dbms_output.put_line('------------------Update Success-------------------');
        DELETE xxwe_mg_supplier_sites_xross x
         WHERE x.party_site_number_de = lv_party_site_number
           AND x.org_id_de = ln_org_id;
      END IF;
      --END LOOP;
      dbms_output.put_line('------------------Update End-------------------');
    END;

    使用API失效客户地址Demo

    --Disable customer site
    DECLARE
        lv_party_site_number      VARCHAR2(30) := &p_party_site_number;
        lr_party_site_rec_type    hz_party_site_v2pub.party_site_rec_type;
        lr_cust_acct_site_rec     hz_cust_account_site_v2pub.cust_acct_site_rec_type;
        lr_cust_site_use_rec_type hz_cust_account_site_v2pub.cust_site_use_rec_type;
    
        lr_orig_sys_reference_rec hz_orig_system_ref_pub.orig_sys_reference_rec_type;
    
        ln_version_num            NUMBER;
        ln_version_num_party_site NUMBER;
        x_return_status           VARCHAR2(10);
        x_msg_count               NUMBER;
        x_msg_data                VARCHAR2(1000);
    
        ln_failed_count NUMBER := 0;
        api_exception EXCEPTION;
    
        lv_errmsg VARCHAR2(2000);
    BEGIN
        dbms_output.put_line('Customer site number: ' || lv_party_site_number);
    
        --begin to disable customer site use
        SELECT hcas.cust_acct_site_id,
               hcas.org_id
          INTO lr_cust_acct_site_rec.cust_acct_site_id,
               lr_cust_acct_site_rec.org_id
          FROM hz_cust_accounts       hca,
               hz_cust_acct_sites_all hcas,
               hz_party_sites         hps
         WHERE hca.cust_account_id = hcas.cust_account_id
           AND hcas.party_site_id = hps.party_site_id
           AND hps.party_site_number = lv_party_site_number;
        mo_global.init('AR');
        mo_global.set_policy_context('S',
                                     lr_cust_acct_site_rec.org_id);
        dbms_output.put_line('Org id : ' || lr_cust_acct_site_rec.org_id);
    
        dbms_output.put_line('                                                                                     ');
        dbms_output.put_line('==========================Disable site use===========================================');
        FOR cur_site_use IN (SELECT hcsu.site_use_id,
                                    hcsu.location,
                                    hcsu.site_use_code,
                                    hcsu.object_version_number
                               FROM hz_cust_site_uses_all hcsu
                              WHERE hcsu.cust_acct_site_id = lr_cust_acct_site_rec.cust_acct_site_id
                              ORDER BY hcsu.site_use_id DESC) LOOP
        
            lr_cust_site_use_rec_type.cust_acct_site_id := lr_cust_acct_site_rec.cust_acct_site_id;
            lr_cust_site_use_rec_type.site_use_id       := cur_site_use.site_use_id;
            lr_cust_site_use_rec_type.location          := substr(cur_site_use.location,
                                                                  1,
                                                                  38) || '_d';
            --lr_cust_site_use_rec_type.location      := cur_site_use.location;
            lr_cust_site_use_rec_type.site_use_code := cur_site_use.site_use_code;
            lr_cust_site_use_rec_type.status        := 'I';
        
            hz_cust_account_site_v2pub.update_cust_site_use(p_init_msg_list         => fnd_api.g_true,
                                                            p_cust_site_use_rec     => lr_cust_site_use_rec_type,
                                                            p_object_version_number => cur_site_use.object_version_number,
                                                            x_return_status         => x_return_status,
                                                            x_msg_count             => x_msg_count,
                                                            x_msg_data              => x_msg_data);
            dbms_output.put_line('Site use id: ' || lr_cust_site_use_rec_type.site_use_id);
            dbms_output.put_line('Location: ' || lr_cust_site_use_rec_type.location);
            dbms_output.put_line('site_use_code: ' || lr_cust_site_use_rec_type.site_use_code);
        
            IF x_return_status = 'S' THEN
                dbms_output.put_line('Disable customer site use successfully !');
            
            ELSE
                ln_failed_count := ln_failed_count + 1;
                dbms_output.put_line('Failed to disable customer site use !');
                dbms_output.put_line('x_msg_count  : ' || x_msg_count);
                dbms_output.put_line('Error message  : ' || x_msg_data);
            END IF;
            dbms_output.put_line('--------------------------');
            IF ln_failed_count > 0 THEN
                RAISE api_exception;
            END IF;
        END LOOP;
    
        --begin to disable customer site
        dbms_output.put_line('                                                                                     ');
        dbms_output.put_line('==========================Disable customer site=======================================');
    
        SELECT hcas.cust_acct_site_id,
               hcas.org_id,
               hcas.object_version_number
          INTO lr_cust_acct_site_rec.cust_acct_site_id,
               lr_cust_acct_site_rec.org_id,
               ln_version_num
          FROM hz_cust_accounts       hca,
               hz_cust_acct_sites_all hcas,
               hz_party_sites         hps
         WHERE hca.cust_account_id = hcas.cust_account_id
           AND hcas.party_site_id = hps.party_site_id
           AND hps.party_site_number = lv_party_site_number;
        lr_cust_acct_site_rec.status := 'I';
    
        --call api to disable customer site
        hz_cust_account_site_v2pub.update_cust_acct_site(p_init_msg_list         => fnd_api.g_true,
                                                         p_cust_acct_site_rec    => lr_cust_acct_site_rec,
                                                         p_object_version_number => ln_version_num,
                                                         x_return_status         => x_return_status,
                                                         x_msg_count             => x_msg_count,
                                                         x_msg_data              => x_msg_data);
    
        IF x_return_status = 'S' THEN
            --delete customer xross table
            DELETE FROM xxwe_mg_customer_xross xmcx
             WHERE party_site_number_de = lv_party_site_number
               AND org_id = lr_cust_acct_site_rec.org_id;
            dbms_output.put_line('Disable customer site successfully !');
        ELSE
            ln_failed_count := ln_failed_count + 1;
            dbms_output.put_line('Failed to disable customer site !');
            dbms_output.put_line('Error message  : ' || x_msg_data);
            RAISE api_exception;
        END IF;
    
        dbms_output.put_line('                                                                                     ');
        dbms_output.put_line('==========================Disable party site=========================================');
    
        --begin to disable party site
        SELECT hps.party_site_id,
               hps.party_site_name || '_d',
               hps.object_version_number
          INTO lr_party_site_rec_type.party_site_id,
               lr_party_site_rec_type.party_site_name,
               ln_version_num_party_site
          FROM hz_cust_accounts       hca,
               hz_cust_acct_sites_all hcas,
               hz_party_sites         hps
         WHERE hca.cust_account_id = hcas.cust_account_id
           AND hcas.party_site_id = hps.party_site_id
           AND hps.party_site_number = lv_party_site_number;
    
        lr_party_site_rec_type.status := 'I';
        hz_party_site_v2pub.update_party_site(p_init_msg_list         => fnd_api.g_true,
                                              p_party_site_rec        => lr_party_site_rec_type,
                                              p_object_version_number => ln_version_num_party_site,
                                              x_return_status         => x_return_status,
                                              x_msg_count             => x_msg_count,
                                              x_msg_data              => x_msg_data);
    
        IF x_return_status = 'S' THEN
            dbms_output.put_line('Disable party site successfully !');
        ELSE
            dbms_output.put_line('Failed to disable party site !');
            dbms_output.put_line('Error message  : ' || x_msg_data);
            RAISE api_exception;
        END IF;
    
    EXCEPTION
        WHEN no_data_found THEN
            dbms_output.put_line('No data found!');
            ROLLBACK;
        WHEN api_exception THEN
            dbms_output.put_line('Error occured when execute oracle api!');
            ROLLBACK;
        WHEN OTHERS THEN
            dbms_output.put_line('Unexpected exception occured!');
            ROLLBACK;
    END;
  • 相关阅读:
    MIME 类型(HttpContext.Response.ContentType)列表
    Enterprise Library 5.0 系列文章
    实战HTTP处理程序系列(转)
    Ext.Net 的Panel放入iframe
    使用LINQ Expression构建Query Object
    在.NET Workflow 3.5中使用多线程提高工作流性能
    重温DOS下的小作品:回忆过去,展望将来
    CQRS体系结构模式实践案例:Tiny Library:系统架构
    使用Apworks开发基于CQRS架构的应用程序(二):创建领域模型项目
    经典的应用系统结构、CQRS与事件溯源
  • 原文地址:https://www.cnblogs.com/huanghongbo/p/4521416.html
Copyright © 2011-2022 走看看