Oracle EBS AP更新供应商地址

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,
           hps.STATUS
      
      FROM ap_supplier_sites_all pvs,
           hz_party_sites        hps,
           hz_locations          hl
     WHERE pvs.vendor_site_code = '采购'--
       AND pvs.org_id = 82 --
       AND pvs.party_site_id = hps.party_site_id
       AND pvs.location_id = hl.location_id
       and rownum =1;
--供应商地址失效
DECLARE
  l_return_status         VARCHAR2(1) := NULL;
  l_msg_count             NUMBER;
  l_errmsg                VARCHAR2(5000);
  l_vendor_site_rec       ap_vendor_pub_pkg.r_vendor_site_rec_type;
  l_party_site_rec         hz_party_site_v2pub.party_site_rec_type;
  l_location_rec          hz_location_v2pub.location_rec_type;
  l_object_version_number NUMBER;
  l_object_version_number2 NUMBER;
  l_vendor_site_id        NUMBER := NULL;
  l_party_site_id         NUMBER := NULL;
  l_party_site_name       VARCHAR2(240);
  l_party_site_number     VARCHAR2(30);
  l_location_id           NUMBER;

BEGIN
  fnd_global.apps_initialize(0, 50738, 20003);
  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 l_vendor_site_id,
           l_party_site_id,
           l_party_site_name,
           l_object_version_number,
           l_party_site_number,
           l_location_id,
           l_object_version_number2
      FROM ap_supplier_sites_all pvs,
           hz_party_sites        hps,
           hz_locations          hl
     WHERE pvs.vendor_site_code = '采购'--
       AND pvs.org_id = 82 --
       AND pvs.party_site_id = hps.party_site_id
       AND pvs.location_id = hl.location_id
       and rownum =1;
  EXCEPTION
    WHEN no_data_found THEN
      l_errmsg := 'Can not find the vendor site need to update!The site code is:' || '采购';
      dbms_output.put_line(l_errmsg);
  END;
  --
  l_vendor_site_rec.vendor_site_id   := l_vendor_site_id;
  l_vendor_site_rec.vendor_site_code := '采购';
  l_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    => l_return_status,
                                       x_msg_count        => l_msg_count,
                                       x_msg_data         => l_errmsg,
                                       p_vendor_site_rec  => l_vendor_site_rec,
                                       p_vendor_site_id   => l_vendor_site_id);
  IF (nvl(l_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
    l_msg_count := fnd_msg_pub.count_msg;
    IF l_msg_count > 0 THEN
      l_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
    
      FOR i IN 1 .. (l_msg_count - 1) LOOP
      
        l_errmsg := l_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 :' || l_errmsg);
  END IF;
  --UPDATE party_site_name
  l_party_site_rec.party_site_id   := l_party_site_id;
  l_party_site_rec.party_site_name := l_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 => l_object_version_number,
                                        x_return_status         => l_return_status,
                                        x_msg_count             => l_msg_count,
                                        x_msg_data              => l_errmsg);
  IF (nvl(l_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
    l_msg_count := fnd_msg_pub.count_msg;
    IF l_msg_count > 0 THEN
      l_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
    
      FOR i IN 1 .. (l_msg_count - 1) LOOP
      
        l_errmsg := l_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 :' || l_errmsg);
  END IF;
  --update location
  l_location_rec.address_style := 'POSTAL_ADDR_DEF';
  l_location_rec.location_id   := l_location_id;

  hz_location_v2pub.update_location(p_init_msg_list         => fnd_api.g_true,
                                    p_location_rec          => l_location_rec,
                                    p_object_version_number => l_object_version_number2,
                                    x_return_status         => l_return_status,
                                    x_msg_count             => l_msg_count,
                                    x_msg_data              => l_errmsg);
  IF (nvl(l_return_status, fnd_api.g_ret_sts_error) <> fnd_api.g_ret_sts_success) THEN
    l_msg_count := fnd_msg_pub.count_msg;
    IF l_msg_count > 0 THEN
      l_errmsg := substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
    
      FOR i IN 1 .. (l_msg_count - 1) LOOP
      
        l_errmsg := l_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 :' || l_errmsg);
  END IF;
  --
  
END;

 

posted on 2018-11-23 12:22  Jenrry  阅读(993)  评论(0编辑  收藏  举报