Oracle EBS INV创建保留
CREATE or REPPLACE PROCEDURE CreateReservation AS 
        -- Common Declarations
        l_api_version       NUMBER      := 1.0;
        l_init_msg_list     VARCHAR2(2) := FND_API.G_TRUE;
        x_return_status     VARCHAR2(2);
        x_msg_count     NUMBER      := 0;
        x_msg_data     VARCHAR2(255);
        -- 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) := 'MFG';
        l_resp_name    VARCHAR2(50) := 'Manufacturing and Distribution Manager';   
        -- API specific declarations
        l_rsv_rec                   INV_RESERVATION_GLOBAL.MTL_RESERVATION_REC_TYPE;
        l_serial_number             INV_RESERVATION_GLOBAL.SERIAL_NUMBER_TBL_TYPE;
        x_serial_number             INV_RESERVATION_GLOBAL.SERIAL_NUMBER_TBL_TYPE;
        l_partial_reservation_flag  VARCHAR2(2) := FND_API.G_FALSE;
        l_force_reservation_flag    VARCHAR2(2) := FND_API.G_FALSE;
        l_validation_flag           VARCHAR2(2) := FND_API.G_TRUE;
        l_partial_reservation_exists BOOLEAN := FALSE;
        x_quantity_reserved         NUMBER := 0;
        x_reservation_id            NUMBER := 0;
        l_primary_reservation_qty   NUMBER := 2;   -- total qty
        l_subinventory_code         VARCHAR2(40) := NULL;  -- will create a hard reservation
        -- Load required data into cursor, the present cursor will load serial numbers for given item
        CURSOR c_items IS
        SELECT msi.organization_id, msi.inventory_item_id, msi.segment1, msi.primary_uom_code
        FROM mtl_system_items_b msi, mtl_parameters mp
        WHERE msi.organization_id = mp.organization_id
        AND msi.segment1 = 'SU_TEST_STS3'
        AND mp.organization_code = 'M1';
        -- Load required serial numbers to be reserved
        CURSOR c_serials IS
        SELECT msn.inventory_item_id, msn.serial_number
        FROM mtl_system_items_b msi, mtl_serial_numbers msn, mtl_parameters mp
        WHERE msi.organization_id = mp.organization_id
        AND msi.organization_id = msn.current_organization_id
        AND msi.inventory_item_id = msn.inventory_item_id
        AND msi.segment1 = 'SU_TEST_STS3'
        AND mp.organization_code = 'M1'
        AND msi.serial_number_control_code not in (1, 6)  -- item is not serial controlled / controlled at sales order issue
        AND msn.serial_number BETWEEN 'S1' AND 'S2';   -- can leave this NULL if item is not serial controlled
BEGIN
        -- Get the user_id
        SELECT user_id
        INTO l_user_id
        FROM fnd_user
        WHERE user_name = 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 responsibility_name = l_resp_name;
        FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id);
        dbms_output.put_line('Initialized applications context: '|| l_user_id || ' '|| l_resp_id ||' '|| l_application_id );
        -- Initialize Serials to be reserved (if Item is serial controlled)
        BEGIN
          FOR ser IN c_serials LOOP
            l_serial_number(l_row_cnt).inventory_item_id := ser.inventory_item_id;
            l_serial_number(l_row_cnt).serial_number     := ser.serial_number;
            l_row_cnt := l_row_cnt + 1;
          END LOOP;
        EXCEPTION
          WHEN NO_DATA_FOUND THEN
          dbms_output.put_line('Item not serial controlled / serials not provided');
        END;
        -- Initialize Reservations Record
        FOR itm IN c_items LOOP
              -- Initialize the variables
              l_rsv_rec.organization_id          :=   itm.organization_id;
              l_rsv_rec.inventory_item_id          :=   itm.inventory_item_id;
              l_rsv_rec.requirement_date           :=   sysdate + 3;
              l_rsv_rec.demand_source_type_id        :=   INV_RESERVATION_GLOBAL.G_SOURCE_TYPE_INV;
              l_rsv_rec.supply_source_type_id         :=   INV_RESERVATION_GLOBAL.G_SOURCE_TYPE_INV;
              l_rsv_rec.demand_source_name            :=   'INV_RSV_'||itm.segment1;
              l_rsv_rec.primary_reservation_quantity  :=   l_primary_reservation_qty;
              l_rsv_rec.primary_uom_code              :=   itm.primary_uom_code;
              l_rsv_rec.subinventory_code             :=   l_subinventory_code;
              l_rsv_rec.demand_source_header_id       :=   NULL ;
              l_rsv_rec.demand_source_line_id         :=   NULL ;
              l_rsv_rec.reservation_uom_code          :=   NULL ;
              l_rsv_rec.reservation_quantity          :=   NULL ;
              l_rsv_rec.supply_source_header_id       :=   NULL ;
              l_rsv_rec.supply_source_line_id         :=   NULL ;
              l_rsv_rec.supply_source_name            :=   NULL ;
              l_rsv_rec.supply_source_line_detail     :=   NULL ;
              l_rsv_rec.lot_number                    :=   NULL ;  -- optional 'EXPLOT200' ;
              l_rsv_rec.serial_number                 :=   NULL ;
              l_rsv_rec.ship_ready_flag               :=   NULL ;
              l_rsv_rec.attribute15                   :=   NULL ;
              l_rsv_rec.attribute14                   :=   NULL ;
              l_rsv_rec.attribute13                   :=   NULL ;
              l_rsv_rec.attribute12                   :=   NULL ;
              l_rsv_rec.attribute11                   :=   NULL ;
              l_rsv_rec.attribute10                   :=   NULL ;
              l_rsv_rec.attribute9                    :=   NULL ;
              l_rsv_rec.attribute8                    :=   NULL ;
              l_rsv_rec.attribute7                    :=   NULL ;
              l_rsv_rec.attribute6                    :=   NULL ;
              l_rsv_rec.attribute5                    :=   NULL ;
              l_rsv_rec.attribute4                    :=   NULL ;
              l_rsv_rec.attribute3                    :=   NULL ;
              l_rsv_rec.attribute2                    :=   NULL ;
              l_rsv_rec.attribute1                    :=   NULL ;
              l_rsv_rec.attribute_category            :=   NULL ;
              l_rsv_rec.lpn_id                        :=   NULL ;
              l_rsv_rec.pick_slip_number              :=   NULL ;
              l_rsv_rec.lot_number_id                 :=   NULL ;
              l_rsv_rec.locator_id                    :=   NULL ;
              l_rsv_rec.subinventory_id               :=   NULL ;
              l_rsv_rec.revision                      :=   NULL ;
              l_rsv_rec.external_source_line_id       :=   NULL ;
              l_rsv_rec.external_source_code          :=   NULL ;
              l_rsv_rec.autodetail_group_id           :=   NULL ;
              l_rsv_rec.reservation_uom_id            :=   NULL ;
              l_rsv_rec.primary_uom_id                :=   NULL ;
              l_rsv_rec.demand_source_delivery        :=   NULL ;  
              -- call API to create reservation
             DBMS_OUTPUT.PUT_LINE('=======================================================');
             DBMS_OUTPUT.PUT_LINE('Calling INV_RESERVATION_PUB.Create_Reservation API');        
             INV_RESERVATION_PUB.Create_Reservation(
                      P_API_VERSION_NUMBER   => l_api_version
                    , P_INIT_MSG_LST         => l_init_msg_list
                    , P_RSV_REC       => l_rsv_rec
                    , P_SERIAL_NUMBER     => l_serial_number
                    , P_PARTIAL_RESERVATION_FLAG => l_partial_reservation_flag
                    , P_FORCE_RESERVATION_FLAG   => l_force_reservation_flag
                    , P_PARTIAL_RSV_EXISTS           => l_partial_reservation_exists
                    , P_VALIDATION_FLAG             => l_validation_flag
                    , X_SERIAL_NUMBER             => x_serial_number
                    , X_RETURN_STATUS             => x_return_status
                    , X_MSG_COUNT                 => x_msg_count
                    , X_MSG_DATA                 => x_msg_data
                    , X_QUANTITY_RESERVED           => x_quantity_reserved
                    , X_RESERVATION_ID             => x_reservation_id);      
             DBMS_OUTPUT.PUT_LINE('=======================================================');
             DBMS_OUTPUT.PUT_LINE('Return Status: '||x_return_status);
             IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
                DBMS_OUTPUT.PUT_LINE('Error Message :'||x_msg_data);
             END IF;
             IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
                 DBMS_OUTPUT.PUT_LINE('Reservation ID :'||x_reservation_id||' Quantity Reserved:'||x_quantity_reserved);
                 FOR srl IN 1..x_serial_number.COUNT LOOP
                    DBMS_OUTPUT.PUT_LINE('Serial Reserved:'||x_serial_number(srl).serial_number);
                END LOOP;
             END IF;
             DBMS_OUTPUT.PUT_LINE('=======================================================');
        END LOOP;
EXCEPTION
        WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE('Exception Occured :');
          DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
          DBMS_OUTPUT.PUT_LINE('=======================================================');
END CreateReservation;
Oracle EBS INV创建保留的更多相关文章
- Oracle EBS INV 创建物料搬运单
		
Create or Replace PROCEDURE ProcessMoveOrder AS -- Common Declarations l_api_version NUMBER := 1.0; ...
 - Oracle EBS INV 创建物料搬运单头
		
CREATE OR REPLACE PROCEDURE XX_CreateMoveOrderHeader AS -- Common Declarations l_api_version NUMBER ...
 - Oracle EBS INV 创建物料搬运单行
		
CREATE OR REPLACE PROCEDURE CreateMoveOrderLines AS -- Common Declarations l_api_version NUMBER := 1 ...
 - Oracle EBS INV 释放保留
		
CREATE or REPPLACE PROCEDURE RelieveReservation AS -- Common Declarations l_api_version NUMBER := 1. ...
 - Oracle EBS INV更新保留
		
CREATE or REPPLACE PROCEDURE UpdateReservation AS -- Common Declarations l_api_version NUMBER := 1.0 ...
 - Oracle EBS INV 删除保留
		
DECLARE p_rsv apps.inv_reservation_global.mtl_reservation_rec_type; p_dummy_sn apps.inv_reservation_ ...
 - Oracle EBS INV 创建货位
		
create or replace PROCEDURE XX_CREATE_LOCATOR AS -- Common Declarations l_api_version NUMBER := 1.0; ...
 - Oracle EBS OPM 创建生产批
		
--创建生产批 --created by jenrry DECLARE x_message_count NUMBER; x_message_list VARCHAR2 (2000); x_return ...
 - Oracle EBS INV 挑库发放物料搬运单
		
create or replace PROCEDURE XX_TRANSACT_MO_LINE AS -- Common Declarations l_api_version NUMBER := 1. ...
 
随机推荐
- 前端组件化Polymer入门教程(5)——生命周期
			
以前我对生命周期这个概念还真不是很清楚,不过想想也简单,比如说人的生命周期,无非就是生老病死.而对于程序的生命周期就是说,它在每个阶段都会做不同的事,再比如说回调函数把,ajax返回的时候它才执行,那 ...
 - Bootstrap in ASP.NET MVC 5
			
一,新建ASP.NET MVC 5 项目 Bootstrap 文件分布 引入到页面 1.定义.注意:不要包含有.min.的文件名称,会被忽略,因为在发布的时候编译器会加载min版的文件 2.在母版页中 ...
 - 复刻smartbits的国产网络性能测试工具minismb-如何配置Ping报文
			
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽, ...
 - Tomcat学习总结(2)——Tomcat使用详解
			
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
 - 记一次pm2的踩坑
			
1.问题: 公司采用了自动发布平台,最近突然发现一个问题,上线完成后服务是能正常访问的,但是有一个节点访问的时候每两次中总是有一次404,通过nginx的access日志分析发现第一次正常访问有一次g ...
 - 利用https实现站点的访问
			
简介 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果.HTTPS实际上应用了Netscape的安 全套接字层(SSL)作为HTTP应用层的子层.( ...
 - IIS 共享目录读写报错 Access to the path:“\\192.168.0.1\1.txt”is denied解决方案
			
这个是IIS权限的问题,主要修改了以下地方,如果两台电脑有相同的用户名和密码可以跳过第一步 1.找到共享目录的文件夹,属性=>共享,给电脑创建一个新用户,共享文件下添加新用户的读写权限,然后对应 ...
 - Java并发系列[10]----ThreadPoolExecutor源码分析
			
在日常的开发调试中,我们经常会直接new一个Thread对象来执行某个任务.这种方式在任务数较少的情况下比较简单实用,但是在并发量较大的场景中却有着致命的缺陷.例如在访问量巨大的网站中,如果每个请求都 ...
 - Docker基础-容器操作
			
1.创建容器 1.新建容器 可以使用docker create命令新建一个容器. [root@linux-node1 ~]# docker create -it ubuntu:latest ffc90 ...
 - 解决VS2013 git客户端遇到的一些问题
			
分支问题 我在网上的托管环境(github)新建项目的时候有生成readme文件.在本地初始化项目添加git作为项目管理时,填写远程地址一定要以https形式,然后发布会出错,提示 在git命令行好像 ...