Oracle EBS AP 供应商地点失效

/*
供应商地点失效
creation: created by jenrry 20161108 1.00

*/
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;
  p_vendor_rec              ap_vendor_pub_pkg.r_vendor_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;
  l_object_version_number   number;
  ln_party_site_id          NUMBER := NULL;
  lv_party_site_name        VARCHAR2(240);
  lv_party_site_number      VARCHAR2(30);
  ln_location_id            NUMBER;
  x_profile_id              number;
  l_party_rec             hz_party_v2pub.party_rec_type;
  l_organization_rec      hz_party_v2pub.organization_rec_type;
  l_status                VARCHAR2(1) := ‘A‘;
  cursor cur_tmp is
    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 object_version_number2,
           po.VENDOR_NAME,
           pvs.VENDOR_SITE_CODE,
           po.VENDOR_ID,
           po.PARTY_ID,
           pvs.INACTIVE_DATE

      FROM ap_supplier_sites_all pvs,
           hz_party_sites        hps,
           hz_locations          hl,
           ap_suppliers            PO
     WHERE pvs.party_site_id = hps.party_site_id
       AND pvs.location_id = hl.location_id
       and po.VENDOR_ID = pvs.VENDOR_ID
       and po.ATTRIBUTE13 = ‘S201608160069‘;

BEGIN
    --

  fnd_global.apps_initialize(0, 50738, 20003);
  dbms_output.put_line(‘------------------Start Update-------------------‘);

  for cur in cur_tmp loop

    --
    lt_vendor_site_rec.vendor_site_id := cur.vendor_site_id;
    if l_status = ‘I‘ then
    lt_vendor_site_rec.inactive_date := SYSDATE;
    else
    lt_vendor_site_rec.inactive_date := fnd_api.G_NULL_DATE; --sysdate + 30;--to_date(‘3033-12-07‘,‘YYYY-MM-DD‘);
    end if;
    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   => cur.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;
    IF lv_return_status = fnd_api.g_ret_sts_success THEN
      dbms_output.put_line(‘------------------Update vendor Success-------------------‘);

    END IF;

    l_party_site_rec.party_site_id := cur.party_site_id;
    l_party_site_rec.status := l_status;
    --
    begin
      select hps.OBJECT_VERSION_NUMBER
        into ln_object_version_number
        from hz_party_sites hps
       where hps.PARTY_SITE_ID = cur.party_site_id;
    end;
    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;
    IF lv_return_status = fnd_api.g_ret_sts_success THEN
      dbms_output.put_line(‘------------------Update party site Success-------------------‘);

    END IF;
    --update location
    lt_location_rec.address_style := ‘POSTAL_ADDR_DEF‘;
    lt_location_rec.location_id   := cur.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 => cur.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 location Success-------------------‘);

    END IF;
    --update vendor name
    p_vendor_rec.vendor_id := cur.vendor_id;
    if l_status = ‘I‘ then
    p_vendor_rec.VENDOR_NAME := cur.VENDOR_NAME || ‘(作废)‘;
    p_vendor_rec.END_DATE_ACTIVE := sysdate;
    else
      p_vendor_rec.VENDOR_NAME := replace(cur.VENDOR_NAME, ‘(作废)‘,‘‘);
      p_vendor_rec.END_DATE_ACTIVE := fnd_api.G_NULL_DATE; --sysdate + 30; --to_date(‘3033-12-07‘,‘YYYY-MM-DD‘);
      p_vendor_rec.START_DATE_ACTIVE := sysdate;
    end if;
    ap_vendor_pub_pkg.update_vendor(p_api_version      => 1.0,
                                    p_init_msg_list    => fnd_api.g_false,
                                    p_commit           => fnd_api.g_false,
                                    p_validation_level => NULL,
                                    x_return_status    => lv_return_status,
                                    x_msg_count        => ln_msg_count,
                                    x_msg_data         => lv_errmsg,
                                    p_vendor_rec       => p_vendor_rec,
                                    p_vendor_id        => cur.vendor_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 vendor name Error-------------------‘);
      dbms_output.put_line(‘Error1 :‘ || lv_errmsg);
    END IF;
    IF lv_return_status = fnd_api.g_ret_sts_success THEN
      dbms_output.put_line(‘------------------Update vendor name Success-------------------‘);

    END IF;

    --
    begin
    SELECT hp.object_version_number
        INTO l_object_version_number
        FROM hz_parties hp
       WHERE hp.party_id = cur.party_id
       and rownum = 1;
    end;
      l_party_rec.party_id                          := cur.party_id;
      l_organization_rec.party_rec                  := l_party_rec;
      if l_status = ‘I‘ then
      l_organization_rec.organization_name          := cur.vendor_name || ‘(作废)‘;
      else
        l_organization_rec.organization_name          := replace(cur.vendor_name , ‘(作废)‘,‘‘);
      end if;
      cux_ap_vendors_api.update_organization(p_init_msg_list    => fnd_api.g_false,
                                             p_commit           => fnd_api.g_false,
                                             p_party_id         => cur.party_id,
                                             p_organization_rec => l_organization_rec,
                                             x_profile_id       => x_profile_id,
                                             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 vendor party name Error-------------------‘);
      dbms_output.put_line(‘Error1 :‘ || lv_errmsg);
    END IF;
    IF lv_return_status = fnd_api.g_ret_sts_success THEN
      dbms_output.put_line(‘------------------Update vendor party name Success-------------------‘);

    END IF;
  END LOOP;
  dbms_output.put_line(‘------------------Update End-------------------‘);
END;

原文地址:https://www.cnblogs.com/jenrry/p/10006814.html

时间: 2024-08-01 04:41:07

Oracle EBS AP 供应商地点失效的相关文章

Oracle EBS AP 供应商取值

SELECT --nvl(substr(po.vendor_name,1,instr(po.vendor_name,',',1)-1),po.vendor_name) vendor_name, po.vendor_name vendor_name, po.vendor_name_alt, --别名 po.segment1, --供应商编号 decode(po.employee_id, NULL, 'STANDARD', 'EMPLOYEE') vendor_type, --创建供应商若关联员工

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

Oracle EBS供应商接口导入(转)

原文地址 Oracle EBS供应商接口导入 1.供应商导入组成供应商导入主要分为供应商头信息导入.供应商地点信息导入.供应商联系人导入三个部分的信息,其他按实际需求进行添加.供应商头信息导入:导入供应商的头信息供应商地点信息导入:导入供应商的地点.地址信息供应商联系人信息导入:导入对应地址上的联系人信息供应商地点附加信息导入:导入供应商对应地点上的附加信息供应商税率导入:导入供应商地点上的税信息及税率供应商付款方法导入:导入供应商地点上的默认付款方法供应商银行导入:导入供应商地点上对应的银行.

EBS标准的查看供应商地点

VO数据源:oracle.apps.pos.supplier.server.SitesVO SELECT pvsa.address_style, hzl.language, pvsa.province, pvsa.country, pvsa.area_code, pvsa.phone, pvsa.customer_num, pvsa.ship_to_location_id, pvsa.bill_to_location_id, pvsa.ship_via_lookup_code, pvsa.fre

ORACLE EBS常用表

http://www.cnblogs.com/quanweiru/archive/2012/09/26/2704628.html call fnd_global.APPS_INITIALIZE(1318,50583,401) select fnd_profile.VALUE('ORG_ID') FROM DUAL select * from hr_operating_units hou where hou.organization_id=204 --fnd select * from fnd_a

[转]oracle EBS 基础100问

from:http://www.cnblogs.com/xiaoL/p/3593691.html  http://f.dataguru.cn/thread-51057-1-1.html 1001 ORACLE EBS学习的其他资源有哪四个? 1002 ORACLE OPEN WORLD大会是不是一个市场营销活动? 1003 Oracle 大学有哪五种课程? 1004 多个责任分配给一个人,是多对一关系,还是一对多关系? 1005 一个责任分配给多个人,是什么样的关系? 1006 双+号和双-号,

Oracle EBS 如何月结、对账[Z]

在Oracle系统处理月结业务时,需要遵循一定的操作顺序.这些业务,牵涉到相应的模块,包括:应付模块.采购模块.库存模块.应收模块.薪资模块.固定资产和总帐模块等 在Oracle系统中,总帐模块处于财务核算的核心地位,它从其他模块中接收财务信息.总帐接收到的财务信息与子模块业务必须保持一致,才能保证整个系统的帐务是正确的,所以要进行对帐. 后面将描述一下模块之间的关帐顺序及模块间关帐要完成的步骤 一.Oracle EBS 月结应付(AP)对账顺序 步骤,1.检查业务是否全部录入:2.检查是否有

Oracle EBS 如何月结[Z]

概述应付模块的多数业务基于采购和库存的操作,因此应付模块的月结应该在采购模块和库存模块月结后才能关闭会计期.月结步骤在每个会计期末,应付模块的月结应遵循以下流程:1.检查业务是否全部录入;2.检查是否有未验证.暂挂发票;3.更新到期的远期付款状态;4.检查应付业务是否生成分录;5.应付业务传送到总帐;6.确认应付分录全部传送总帐;7.创建成批增加;8.复核凭证,确认无误后过帐;9.确认及核对供应商余额;10.关闭应付会计期间;11.打开新的会计期;12.为通过手工方式进入存货成本的调整准备数据:

Oracle EBS 寄售业务总结

总述: 须通过一揽子采购协议(BPA)明确采购方与供应商之间的寄售关系,及各种协议条款: 通过来源补充规则(Sourcing Rules)明确物料的供应商以及分配规则: 通过合格供应商列表(ASL)明确物料与供应商.供应商地点以及BPA之间的关系,界定该物料向该供应商采购为寄售物料: 使用标准po采购寄售物料: 寄售物料消耗前不产生任何会记分录,但在库存可查到现有量,并参与MRP运算,只是资产拥有方为供应商:当发生消耗时自动根据BPA生成BPR(一揽子发放),BPR不需要接收,系统自动将其发运行