Sunday, 14 July 2019

SCript to Migrate OAF Personalizations To Other Instances


Download OAF form personalization

java oracle.jrad.tools.xml.exporter.XMLExporter \/oracle/apps/ar/hz/components/account/site/webui/customizations/site/0/HzPuiAcctSitesView \-username apps -password password789 \-dbconnection "(description=(address_list=(address=(protocol=tcp)(host=vemu.apps.com)(port=1521)))(connect_data=(SERVICE_NAME=VEMDEV)(INSTANCE_NAME=EBSDEV)))" \-rootdir "/tmp/custdocs"


upload OAF form personalization


java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/xxvem/oracle/apps/ar/hz/components/account/site/webui/customizations/site/0/HzPuiAcctSitesView.xml -username apps -password password321 -dbconnection "(description=(address_list=(address=(protocol=tcp)(host=vemu.apps2.com)(port=1521)))(connect_data=(SERVICE_NAME=VEMUAT)))" -rootdir $JAVA_TOP/xxvem 

Sample code for Pick Release with single Delivery ID

PROCEDURE XXVEM_SO_PICK_RELEASE
(P_ORDER_NUMBER IN NUMBER,
P_RETURN_STATUS OUT VARCHAR2)
IS
l_return_status   VARCHAR2 (1);
l_msg_count       NUMBER (15);
l_msg_data        VARCHAR2 (2000);
l_count           NUMBER (15);
l_msg_data_out    VARCHAR2 (2000);
l_mesg            VARCHAR2 (2000);
p_count           NUMBER (15);
p_new_batch_id    NUMBER;
l_rule_id         NUMBER;
l_rule_name       VARCHAR2 (2000);
l_batch_prefix    VARCHAR2 (2000);
l_batch_info_rec  wsh_picking_batches_pub.batch_info_rec;
l_REQUEST_ID      NUMBER;

v_context             varchar2(100);
ln_customer_id        NUMBER;
ln_header_id          NUMBER;
ln_ship_from_org_id   NUMBER;

BEGIN

DBMS_OUTPUT.PUT_LINE('1');
--1. Set applications context if not already set.

mo_global.set_policy_context ('S', l_org_id);
mo_global.init ('ONT');
fnd_global.apps_initialize (user_id, resp_id, resp_appl_id);

BEGIN
SELECT h.sold_to_org_id
,      h.header_id
,      (select distinct l.ship_from_org_id
        from oe_order_lines_all l
        where l.header_id = h.header_id
        and    rownum = 1 ) ship_from_org_id
INTO   ln_customer_id
,      ln_header_id
,      ln_ship_from_org_id
FROM  oe_order_headers_all h
WHERE H.ORDER_NUMBER = P_ORDER_NUMBER
AND   H.ORG_ID       = fnd_profile.value('org_id');

dbms_output.put_line('ln_customer_id ' ||ln_customer_id);
dbms_output.put_line('ln_header_id ' ||ln_header_id);
dbms_output.put_line('ln_ship_from_org_id ' ||ln_ship_from_org_id);

exception
when others then
dbms_output.put_line('Error occured while getting order customer id : ' ||SQLERRM);
END;



l_batch_info_rec.backorders_only_flag       := 'E';
l_batch_info_rec.existing_rsvs_only_flag    := 'N';
l_batch_info_rec.customer_id                := ln_customer_id ;
l_batch_info_rec.order_header_id            := ln_header_id ;
l_batch_info_rec.from_scheduled_ship_date   := sysdate;
l_batch_info_rec.organization_id            := ln_ship_from_org_id;
--l_batch_info_rec.Ship_Method_Code           := '0001_ship_method_code'; -- pass ship method code
--l_batch_info_rec.Ship_Set_Id                :=         
--l_batch_info_rec.Ship_Set_Number            :=
l_batch_info_rec.include_planned_lines      := 'N';
l_batch_info_rec.autocreate_delivery_flag   := 'Y';
l_batch_info_rec.autodetail_pr_flag         := 'Y';
l_batch_info_rec.allocation_method          := 'I';
--l_batch_info_rec.pick_from_locator_id       := 567678; -- pass from_locator_id
l_batch_info_rec.auto_pick_confirm_flag     := 'Y';
l_batch_info_rec.autopack_flag              := 'Y';
--l_rule_id                                   := 10;
l_rule_name                                 := 'XXVEM Pick Rule';
l_batch_prefix                              := NULL;

wsh_picking_batches_pub.create_batch
       (
           p_api_version   => 1.0,
         p_init_msg_list => fnd_api.g_true,
         p_commit        => fnd_api.g_true,
         x_return_status => l_return_status,
         x_msg_count     => l_msg_count,
         x_msg_data      => l_msg_data,
         p_rule_id       => l_rule_id,
         p_rule_name     => l_rule_name,
         p_batch_rec     => l_batch_info_rec,
         p_batch_prefix  => l_batch_prefix,
         x_batch_id      => p_new_batch_id
       );
commit;
IF l_return_status = 'S' THEN
   DBMS_OUTPUT.put_line('Pick Release Batch Got Created Sucessfully '||p_new_batch_id);
ELSE
   DBMS_OUTPUT.put_line('Message count ' || l_msg_count);
   IF l_msg_count = 1 THEN
      DBMS_OUTPUT.put_line('l_msg_data '||l_msg_data);
   ELSIF l_msg_count > 1 THEN
   LOOP
      p_count := p_count+1;
      l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
      IF l_msg_data IS NULL THEN
      EXIT;
      END IF;
      DBMS_OUTPUT.put_line('Message' || p_count ||'---'||l_msg_data);
      END LOOP;
      END IF;
END IF;

-- Release the batch Created Above

WSH_PICKING_BATCHES_PUB.RELEASE_BATCH(
    P_API_VERSION   => 1.0,
    P_INIT_MSG_LIST => fnd_api.g_true,
    P_COMMIT        => fnd_api.g_true,
    X_RETURN_STATUS => P_RETURN_STATUS,
    X_MSG_COUNT     => l_MSG_COUNT,
    X_MSG_DATA      => l_MSG_DATA,
    P_BATCH_ID      => p_new_batch_id,
    P_BATCH_NAME    => NULL,
    P_LOG_LEVEL     => 1,
    P_RELEASE_MODE  => 'ONLINE',-- (ONLINE or CONCURRENT)
    X_REQUEST_ID    => l_REQUEST_ID
  );
commit;
IF P_RETURN_STATUS = 'S' THEN
   DBMS_OUTPUT.put_line('Pick Selection List Generation '||l_REQUEST_ID);
   DBMS_OUTPUT.put_line('Pick Selection List Generation P_RETURN_STATUS '||P_RETURN_STATUS);
ELSE
   DBMS_OUTPUT.put_line('Message count ' || l_msg_count);
   IF l_msg_count = 1 THEN
      DBMS_OUTPUT.put_line('l_msg_data '||l_msg_data);
   ELSIF l_msg_count > 1 THEN
   LOOP
      p_count := p_count+1;
      l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
      IF l_msg_data IS NULL THEN
      EXIT;
      END IF;
      DBMS_OUTPUT.put_line('Message' || p_count ||'---'||l_msg_data);
      END LOOP;
      END IF;
END IF;
END;

Sample code to reserve serial number against sales order line

procedure xxvem_serial_reseravation(p_order_number  in  number
                                   ,p_serial_number in  varchar2
                                   ,p_so_line_item  in  varchar2
                                   ,p_return_status out varchar2)
is
        -- 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);
        L_ROW_CNT          number := 1;
        l_org              NUMBER := fnd_profile.value('org_id');
        l_user_id          NUMBER := fnd_global.user_id;
l_organization_id  NUMBER;
       
        -- 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 := 0;   -- total qty
        l_subinventory_code         VARCHAR2(40) :='MAIN';   -- will create a hard reservation
    l_locator_id                NUMBER       :=  NULL ;
        ln_sales_order_id           NUMBER;
        ln_order_line_id            NUMBER;
       
        -- Load required data into cursor, the present cursor will load serial numbers for given item
        CURSOR c_items (p_organization_id NUMBER) 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 = p_so_line_item
        AND mp.organization_id = p_organization_id;     -- need to pass parameter ship_from_org_id
       
        -- Load required serial numbers to be reserved
        CURSOR c_serials (p_organization_id NUMBER) 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 = p_so_line_item
        AND mp.organization_id = p_organization_id   ;  -- need to pass parameter ship_from_org_id
        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 p_serial_number AND p_serial_number -- can leave this NULL if item is not serial controlled
        ; 
     
BEGIN
     
      mo_global.set_policy_context ('S', l_org);
      mo_global.init ('INV');
      fnd_global.apps_initialize(l_user_id,50641,660);

        BEGIN
         
          select mso.sales_order_id
          ,      oola.line_id
          ,      oola.ordered_quantity
  ,      oola.ship_from_org_id
          INTO   ln_sales_order_id
          ,      ln_order_line_id
          ,      l_primary_reservation_qty
  ,      l_organization_id
          from mtl_sales_orders mso
          ,    oe_order_headers_all ooha
          ,    oe_order_lines_all   oola
          where mso.segment1   = to_char(ooha.order_number)
          and   ooha.header_id  = oola.header_id
          and   oola.flow_status_code  = 'AWAITING_SHIPPING'
          and   oola.ORDERED_ITEM     = p_so_line_item
          and   segment1 = to_char(p_order_number);

        EXCEPTION
          WHEN OTHERS THEN
          dbms_output.put_line('Error occured while getting ln_sales_order_id and ln_order_line_id');
        END;
     
     
        l_serial_number.delete;
        --l_rsv_rec := NULL;
        -- Initialize Serials to be reserved (if Item is serial controlled)
        BEGIN
          FOR ser IN c_serials(l_organization_id) LOOP
    dbms_output.put_line('before loop l_row_cnt : '||l_row_cnt);
            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;
dbms_output.put_line(' after loop l_row_cnt : '||l_row_cnt);
          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(l_organization_id) 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 ;
 --             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            :=   NULL;
              l_rsv_rec.demand_source_type_id         :=   INV_RESERVATION_GLOBAL.g_source_type_oe;
              l_rsv_rec.primary_reservation_quantity  :=  1;-- 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       :=   ln_sales_order_id ;
              l_rsv_rec.demand_source_line_id         :=   ln_order_line_id ;       
              l_rsv_rec.reservation_uom_code          :=   itm.primary_uom_code ;
              l_rsv_rec.reservation_quantity          :=   l_primary_reservation_qty ;
              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                    :=   l_locator_id ;
              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 
                    --, P_OVER_RESERVATION_FLAG    => 1
                    , X_SERIAL_NUMBER          => x_serial_number             
                    , X_RETURN_STATUS         => p_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);
                    COMMIT;
         
             DBMS_OUTPUT.PUT_LINE('=======================================================');
             DBMS_OUTPUT.PUT_LINE('Return Status: '||p_return_status);
     
             IF (p_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
                DBMS_OUTPUT.PUT_LINE('Error Message :'||x_msg_data);
             END IF;
           
             IF (p_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 ;

Sample code for RMA Receipt

procedure xxvem_rmaline_receive(p_order_number  IN  number,
                                p_item          IN  VARCHAR2,
                                p_serial_number IN  VARCHAR2,
                                p_return_status OUT varchar2
                                )
is                                                 
    l_req_id number;
    l_phase varchar2 (240);
    l_status varchar2 (240);
    l_dev_phase varchar2 (240);
    l_dev_status varchar2 (240);
    l_message varchar2 (4000);
    l_conc_status boolean;
    l_error_message varchar2(4000);
    l_error_exists boolean;
    l_org             VARCHAR2 (20)          := fnd_profile.VALUE ('ORG_ID');

    l_user_id                      NUMBER   ;
    l_resp_id                      NUMBER   ;
    l_resp_appl_id                 NUMBER   ;
    LN_EMPLOYEE_ID                 NUMBER   ;
    lv_waybill_num                 VARCHAR2(20);
 
CURSOR so_details is (select ooha.order_number
,      ooha.sold_from_org_id
,      ooha.org_id
,      ooha.payment_term_id
,      oola.ship_from_org_id
,      ooha.salesrep_id
,      oola.header_id
,      oola.line_id
,      olsn.from_serial_number
,      olsn.TO_SERIAL_NUMBER
,      oola.inventory_item_id
,      1 ordered_quantity --oola.ordered_quantity
,      hcsua.location customer_location
,      ott.NAME  order_type
,      msib.segment1 item
,      hcasa.cust_acct_site_id customer_site_id
,      hca.cust_account_id customer_id
 from oe_order_headers_all    ooha
 ,    oe_order_lines_all      oola
 ,    oe_lot_serial_numbers   olsn
 ,    oe_transaction_types_tl ott
 ,    mtl_system_items_b      msib
 ,    hz_cust_site_uses_all   hcsua
 ,    hz_cust_acct_sites_all  hcasa
 ,    hz_cust_accounts        hca
 where 1 = 1
 and ooha.header_id  = oola.header_id
 AND ooha.order_type_id = ott.transaction_type_id
 AND oola.flow_status_code NOT IN ('CLOSED','CANCELLED')
 AND ooha.flow_status_code NOT IN ('CLOSED','CANCELLED')
 AND oola.flow_status_code = 'AWAITING_RETURN'
 AND ott.NAME IN ('XXVEM Return Order', 'XXVEM Return Order')
 AND ott.LANGUAGE = USERENV ('LANG')   -- 'US'
 and oola.line_id              =   olsn.line_id(+)
 and ooha.org_id = fnd_profile.VALUE ('ORG_ID')
 and msib.organization_id = oola.ship_from_org_id
 and msib.inventory_item_id = oola.inventory_item_id
 AND ooha.ship_to_org_id = hcsua.site_use_id
 AND ooha.org_id = hcsua.org_id
 AND hcsua.site_use_code = 'SHIP_TO'
 AND hcsua.status = 'A'
 AND hcsua.cust_acct_site_id = hcasa.cust_acct_site_id
 AND hca.cust_account_id = hcasa.cust_account_id
 AND hca.status = 'A'
 AND olsn.FROM_SERIAL_NUMBER(+)  = p_serial_number
 AND ooha.order_number  =  p_order_number 
);
   
BEGIN
mo_global.set_policy_context ('S', l_org);
mo_global.init ('PO');

  l_user_id := fnd_global.user_id;
  l_resp_id := fnd_global.resp_id;
  l_resp_appl_id := fnd_global.resp_appl_id;

  fnd_global.apps_initialize  (user_id => l_user_id,
                               resp_id => l_resp_id,
                               resp_appl_id => l_resp_appl_id);
 

  BEGIN
     SELECT EMPLOYEE_ID
  INTO  LN_EMPLOYEE_ID
  FROM  FND_USER
  WHERE USER_ID = l_user_id;
 
  EXCEPTION
  WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE('ERROR WHILE GETTING EMPLOYEE ID OF THE USER : '||SQLERRM);
  END; 
 
  lv_waybill_num := NULL;

for so_rec in so_details
loop  
INSERT INTO RCV_HEADERS_INTERFACE(
                    HEADER_INTERFACE_ID     ,
                    GROUP_ID                ,
                    org_id                  ,
                    PROCESSING_STATUS_CODE  ,
                    RECEIPT_SOURCE_CODE     ,
                    TRANSACTION_TYPE        ,
                    LAST_UPDATE_DATE        ,
                    LAST_UPDATED_BY         ,
                    LAST_UPDATE_LOGIN       ,
                    CUSTOMER_ID             ,
                    EXPECTED_RECEIPT_DATE   ,
                    VALIDATION_FLAG         ,
                    WAYBILL_AIRBILL_NUM     ,
                    FREIGHT_CARRIER_CODE
                    )
                    SELECT
                    RCV_HEADERS_INTERFACE_S.NEXTVAL ,
                    RCV_INTERFACE_GROUPS_S.NEXTVAL  ,
                    l_org                           ,                  -- 550
                    'PENDING'                       ,
                    'CUSTOMER'                      ,
                    'NEW'                           ,
                    SYSDATE                         ,
                    l_user_id                       ,                  --USER_ID
                    0                               ,
                    so_rec.customer_id              ,                  --CUSTOMER_ID
                    SYSDATE                         ,
                    'Y'                             ,
                    lv_waybill_num                  ,
                    'TRANSFER'
                    FROM DUAL;
                   
  INSERT INTO RCV_TRANSACTIONS_INTERFACE
           (INTERFACE_TRANSACTION_ID,
           GROUP_ID,
           org_id,
           HEADER_INTERFACE_ID,
           LAST_UPDATE_DATE,
           LAST_UPDATED_BY,
           CREATION_DATE,
           CREATED_BY,
           TRANSACTION_TYPE,
           TRANSACTION_DATE,
           PROCESSING_STATUS_CODE,
           PROCESSING_MODE_CODE,
           TRANSACTION_STATUS_CODE,
           QUANTITY,
           UNIT_OF_MEASURE,
           INTERFACE_SOURCE_CODE,
           ITEM_ID,
           EMPLOYEE_ID,
           AUTO_TRANSACT_CODE,
           RECEIPT_SOURCE_CODE,
           TO_ORGANIZATION_ID,
           SOURCE_DOCUMENT_CODE,
           DESTINATION_TYPE_CODE,
           DELIVER_TO_LOCATION_ID,
           SUBINVENTORY,
       LOCATOR_ID,
           EXPECTED_RECEIPT_DATE,
           OE_ORDER_HEADER_ID,
           OE_ORDER_LINE_ID,
           CUSTOMER_ID,
           CUSTOMER_SITE_ID,
           VALIDATION_FLAG)
         Values
           (RCV_TRANSACTIONS_INTERFACE_S.NEXTVAL, --INTERFACE_TRANSACTION_ID
           RCV_INTERFACE_GROUPS_S.CURRVAL, --GROUP_ID
           l_org ,                         --550,
           RCV_HEADERS_INTERFACE_S.CURRVAL, --HEADER_INTERFACE_ID
           SYSDATE, --LAST_UPDATE_DATE
           l_user_id, --LAST_UPDATED_BY
           SYSDATE, --CREATION_DATE
           l_user_id, --CREATED_BY
           'RECEIVE', --TRANSACTION_TYPE
           SYSDATE, --TRANSACTION_DATE
           'PENDING', --PROCESSING_STATUS_CODE
           'BATCH',  --PROCESSING_MODE_CODE
           'PENDING', --TRANSACTION_MODE_CODE
           so_rec.ordered_quantity, --QUANTITY
           'Each', --UNIT_OF_MEASURE
           'RCV', --INTERFACE_SOURC E_CODE
           so_rec.inventory_item_id, --ITEM_ID
           LN_EMPLOYEE_ID, --EMPLOYEE_ID
           'DELIVER',--AUTO_TRANSACT_CODE
           'CUSTOMER', --RECEIPT_SOURCE_CODE
           so_rec.ship_from_org_id, --TO_ORGANIZATION_ID
           'RMA', --SOURCE_DOCUMENT_CODE
           'INVENTORY', --DESTINATION_TYPE_CODE
           so_rec.ship_from_org_id, --DELIVER_TO_LOCATION_ID
           'MAIN',    --SUBINVENTORY
           NULL, -- LOCATOT_ID -- PASS IF THE subinventory is locator controlled
           SYSDATE, --EXPECTED_RECEIPT_DATE
           so_rec.header_id, --OE_ORDER_HEADER_ID
           so_rec.LINE_ID, --OE_ORDER_LINE_ID
           so_rec.customer_id, --CUSTOMER_ID
           so_rec.customer_site_id,--CUSTOMER_SITE_ID
           'Y');
         
  IF so_rec.from_serial_number is not null and nvl(so_rec.to_serial_number,so_rec.from_serial_number) is not null THEN
         
  INSERT INTO mtl_serial_numbers_interface
                           (transaction_interface_id,
                            last_update_date,
                  last_updated_by,
                            creation_date,
                            created_by,
                            last_update_login,
              fm_serial_number,
                            to_serial_number,
              product_code,
                            product_transaction_id
                           )
                    VALUES (mtl_material_transactions_s.NEXTVAL,
                            sysdate,
                            l_user_id,                       
                            sysdate,       
                    l_user_id,
                            1,
                            so_rec.from_serial_number,
                            nvl(so_rec.to_serial_number,so_rec.from_serial_number),
                            'RCV',
                           rcv_transactions_interface_s.CURRVAL
                           );       
   END IF;
 
l_req_id := apps.fnd_request.submit_request ('PO',
                                             'RVCTP',
                                              null,
                                              sysdate,
                                              null,
                                             'BATCH',
                                             RCV_INTERFACE_GROUPS_S.CURRVAL
                                              );
dbms_output.put_line('the request number is :'|| l_req_id);
commit;
if(l_req_id > 0) then
l_conc_status := apps.fnd_concurrent.wait_for_request (request_id => l_req_id,
                                                       interval => 2,
                                                       max_wait => 1200,
                                                       phase => l_phase,
                                                       status => l_status,
                                                       dev_phase => l_dev_phase,
                                                       dev_status => l_dev_status,
                                                       message => l_message);
 l_error_exists := false;
 dbms_output.put_line(' the request status id : ' ||l_dev_status);
 p_return_status := l_dev_status;
  if l_dev_status = 'NORMAL'
  then
   commit;
   for r1 in (select error_message
              from po_interface_errors
              where request_id = l_req_id)
    loop
    fnd_file.put_line(fnd_file.log,'RMA Receiving errors : ' || r1.error_message);
    l_error_exists := true;
   end loop;
  elsif l_dev_status in ('ERROR', 'CANCELLED', 'TERMINATED') then
  rollback;
   for r1 in (select pie.error_message
              from po_interface_errors pie
              where pie.request_id = l_req_id)
   loop
    fnd_file.put_line(fnd_file.log,'RMA Receiving errors : ' || r1.error_message);
    l_error_exists := true;
   end loop;
 end if;
end if;   
end loop;     
END;

SCript to Migrate OAF Personalizations To Other Instances

Download OAF form personalization java oracle.jrad.tools.xml.exporter.XMLExporter \/oracle/apps/ar/hz/components/account/site/webui/cust...