• 批量更改Item的属性


    用户需求:需要更改1200个Item的Lead_time_lot_size的值。

    1. 用dataload是一种办法,但是比较费时间。

    2. 后面用临时表+Update直接改mtl_system_items_b表。

    DECLARE
       --共1143行
        CURSOR cur_upd_data IS
            SELECT segment1,
                     LEAD_TIME_LOT_SIZE
              FROM inv.ascp_inv_item_temp;
    BEGIN
       
        FOR rec_upd_data IN cur_upd_data
        LOOP
            UPDATE apps.mtl_system_items_b t
                SET lead_time_lot_size = rec_upd_data.LEAD_TIME_LOT_SIZE
             WHERE t.organization_id = &org_id
                AND T.ITEM_TYPE = 'FG'
                AND t.inventory_item_status_code = 'Active'
                AND t.segment1 = rec_upd_data.segment1;
        END LOOP;
       
       COMMIT;
    END;

    3. 当然也可以用临时表+标准的API修改ITEM相关属性。

    DECLARE
        l_item_rec      inv_item_grp.item_rec_type;
        l_error_tbl     inv_item_grp.error_tbl_type;
        x_item_rec      inv_item_grp.item_rec_type;
        l_return_status VARCHAR2(40);
    BEGIN
        inv_globals.set_org_id(&org_id);
        fnd_global.apps_initialize(1284350749401);--userid,resposi_id,app_id
        l_item_rec.inventory_item_id   := 423007;
        l_item_rec.organization_id     := &org_id--You master organization
        l_item_rec.lead_time_lot_size := 100000;
        inv_item_grp.update_item(p_commit           => fnd_api.g_false,
                                         p_lock_rows        => fnd_api.g_true,
                                         p_validation_level => fnd_api.g_valid_level_full,
                                         p_item_rec         => l_item_rec,
                                         x_item_rec         => x_item_rec,
                                         x_return_status    => l_return_status,
                                         x_error_tbl        => l_error_tbl);
        DBMS_OUTPUT.put_line(l_return_status);

        IF l_error_tbl.COUNT() > 0 THEN
            FOR i IN 1 .. l_error_tbl.COUNT
            LOOP
                DBMS_OUTPUT.put_line(l_error_tbl.MESSAGE_TEXT);
                DBMS_OUTPUT.put_line(l_error_tbl.message_name);
            END LOOP;
        END IF;
       COMMIT;
    END;

             

                成长

           /      |     \

        学习   总结   分享

    QQ交流群:122230156

  • 相关阅读:
    无法嵌入互操作类型“-----”。请改用适用的接口
    DataGridView 控件用法(可能不是很全面,因为这是自己常常用到的一些小总结):
    实例化新的一个(new)
    用户 'sa' 登录失败。 (Microsoft SQL Server,错误: 18456)
    开始安装 ASP.NET (4.0.30319.18408)。 出现了错误: 0x8007b799 必须具有此计算机的管理员权限才能运行此工具
    Web 应用程序项目 MvcApplication1 已配置为使用 IIS。
    命名空间中的“MvcBuildViews”。 无效
    SQLServer存储过程入门
    golang fmt格式“占位符”
    go语言基本运算符
  • 原文地址:https://www.cnblogs.com/benio/p/2203788.html
Copyright © 2020-2023  润新知