zoukankan      html  css  js  c++  java
  • [Oracle EBS APIs]import Flow routing and DJ routing using BOM_RTG_PUB.PROCESS_RTG APIs

    DJ routing --BOM模块的工艺路线

    Flow routing -- Flow Manufacturing 模块使用的工艺路线,导入 Flow routing时先导入Line Operation,然后在导入Event.

    CREATE OR REPLACE PROCEDURE SU_PROCESS_RTG_TEST AS
    
    /*
    *      Note:
    *      bom_rtg_globals.G_OPR_CREATE  ==>  'CREATE';
    *      bom_rtg_globals.G_OPR_UPDATE  ==>  'UPDATE';
    *         bom_rtg_globals.G_OPR_DELETE  ==>  'DELETE';
    *      CFM_Routing_Flag:  1==>Flow Routing,2==>DJ Routing
    *      Operation_Type:   1==>Event,3==>Line Operation 2==>Process
    *      import order: Line Operation => Event =>Process
    */
      -- API input variables
      l_operation_tbl    Bom_Rtg_Pub.Operation_Tbl_Type := Bom_Rtg_Pub.G_MISS_OPERATION_TBL;
      l_rtg_header_rec   Bom_Rtg_Pub.Rtg_Header_Rec_Type := Bom_Rtg_Pub.G_MISS_RTG_HEADER_REC;
      l_rtg_revision_tbl Bom_Rtg_Pub.Rtg_Revision_Tbl_Type := Bom_Rtg_Pub.G_MISS_RTG_REVISION_TBL;
      l_op_resource_tbl  Bom_Rtg_Pub.Op_Resource_Tbl_Type := Bom_Rtg_Pub.G_MISS_OP_RESOURCE_TBL;
      l_sub_resource_tbl Bom_Rtg_Pub.Sub_Resource_Tbl_Type := Bom_Rtg_Pub.G_MISS_SUB_RESOURCE_TBL;
      l_op_network_tbl   Bom_Rtg_Pub.Op_Network_Tbl_Type := Bom_Rtg_Pub.G_MISS_OP_NETWORK_TBL;
    
      -- API output variables
      x_rtg_header_rec   Bom_Rtg_Pub.Rtg_Header_Rec_Type; -- routing header record
      x_rtg_revision_tbl Bom_Rtg_Pub.Rtg_Revision_Tbl_Type; -- routing revisions
      x_operation_tbl    Bom_Rtg_Pub.Operation_Tbl_Type; -- routing operations
      x_op_resource_tbl  Bom_Rtg_Pub.Op_Resource_Tbl_Type; -- oepration resources
      x_sub_resource_tbl Bom_Rtg_Pub.Sub_Resource_Tbl_Type; -- sub operation resources
      x_op_network_tbl   Bom_Rtg_Pub.Op_Network_Tbl_Type; -- operation networks
      x_message_list     Error_Handler.Error_Tbl_Type;
    
      -- Other API variables
      l_return_status VARCHAR2(1) := NULL;
      l_msg_count     NUMBER := 0;
      l_cnt           NUMBER := 1;
    
      -- 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) := 'xxxxxx';
      l_resp_name      VARCHAR2(300) := 'xxxxx';
    
    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
       WHERE responsibility_key = l_resp_name;
    
      -- Initialize applications information
      FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id); -- Mfg / Mfg & Dist Mgr / INV
      dbms_output.put_line('Initialized applications context: ' || l_user_id || ' ' ||
                           l_resp_id || ' ' || l_application_id);
    
      -- Create the routing header
      l_rtg_header_rec.Assembly_Item_Name     := 'TEST20160811';
      l_rtg_header_rec.Organization_Code      := 'HAD';
      l_rtg_header_rec.Alternate_Routing_Code := NULL;
      l_rtg_header_rec.CFM_Routing_Flag       := 1; ---1==>Flow Routing,2==>DJ Routing
      l_rtg_header_rec.Line_Code              := 'LHA420';
      l_rtg_header_rec.mixed_model_map_flag   := 2;
      --l_rtg_header_rec.Completion_Subinventory   :=  'FGI';
      l_rtg_header_rec.Transaction_Type := bom_rtg_globals.G_OPR_CREATE;
      l_rtg_header_rec.Attribute1       := 'STD';
      l_rtg_header_rec.eng_routing_flag := 2;
      -- Create the routing operations
      --Line operation 1
      l_operation_tbl(l_cnt).Assembly_Item_Name := 'TEST20160811';
      l_operation_tbl(l_cnt).Organization_Code := 'HAD';
      l_operation_tbl(l_cnt).Alternate_Routing_Code := NULL;
      l_operation_tbl(l_cnt).Operation_Sequence_Number := '10';
      l_operation_tbl(l_cnt).Standard_Operation_Code := '5181';
      l_operation_tbl(l_cnt).Operation_Type := 3; ---Operation_Type:1==>Event,3==>Line Operation
      l_operation_tbl(l_cnt).Start_Effective_Date := SYSDATE - 10;
      l_operation_tbl(l_cnt).Yield := 0.87;
        l_operation_tbl(l_cnt).reference_flag :=2;
      l_operation_tbl(l_cnt).Transaction_Type := bom_rtg_globals.G_OPR_CREATE;
        
        --Line operation 2
      l_cnt := l_cnt + 1;
      l_operation_tbl(l_cnt).Assembly_Item_Name := 'TEST20160811';
      l_operation_tbl(l_cnt).Organization_Code := 'HAD';
      l_operation_tbl(l_cnt).Alternate_Routing_Code := NULL;
      l_operation_tbl(l_cnt).Operation_Sequence_Number := '20';
      l_operation_tbl(l_cnt).Standard_Operation_Code := '5005';
      l_operation_tbl(l_cnt).Operation_Type := 3;---Operation_Type:1==>Event,3==>Line Operation
      l_operation_tbl(l_cnt).Start_Effective_Date := SYSDATE - 20;  -- should match timestamp for UPDATE
      l_operation_tbl(l_cnt).Yield := 1.0;
        l_operation_tbl(l_cnt).reference_flag :=2;
      l_operation_tbl(l_cnt).Transaction_Type := bom_rtg_globals.G_OPR_CREATE;
        
        --Event1
        l_cnt := l_cnt + 1; 
        l_operation_tbl(l_cnt).Assembly_Item_Name := 'TEST20160811';
      l_operation_tbl(l_cnt).Organization_Code := 'HAD';
      l_operation_tbl(l_cnt).Alternate_Routing_Code := NULL;
      l_operation_tbl(l_cnt).Operation_Sequence_Number := '10';
      l_operation_tbl(l_cnt).Standard_Operation_Code := '5181';
      l_operation_tbl(l_cnt).Operation_Type := 1; ---Operation_Type:1==>Event,3==>Line Operation
      l_operation_tbl(l_cnt).Line_Op_Seq_Number := 10;
      l_operation_tbl(l_cnt).Line_Op_Code := '5181';
      l_operation_tbl(l_cnt).Start_Effective_Date := SYSDATE - 10;
      l_operation_tbl(l_cnt).Yield := 0.87;
        l_operation_tbl(l_cnt).reference_flag :=2;
      l_operation_tbl(l_cnt).Transaction_Type := bom_rtg_globals.G_OPR_CREATE;
        --Event2
        l_cnt := l_cnt + 1;
        l_operation_tbl(l_cnt).Assembly_Item_Name := 'TEST20160811';
      l_operation_tbl(l_cnt).Organization_Code := 'HAD';
      l_operation_tbl(l_cnt).Alternate_Routing_Code := NULL;
      l_operation_tbl(l_cnt).Operation_Sequence_Number := '20';
      l_operation_tbl(l_cnt).Standard_Operation_Code := '5005';
      l_operation_tbl(l_cnt).Operation_Type := 1; ---Operation_Type:1==>Event,3==>Line Operation
      l_operation_tbl(l_cnt).Line_Op_Seq_Number := 10;
      l_operation_tbl(l_cnt).Line_Op_Code := '5181';
      l_operation_tbl(l_cnt).Start_Effective_Date := SYSDATE - 10;
      l_operation_tbl(l_cnt).Yield := 0.87;
        l_operation_tbl(l_cnt).reference_flag :=2;
      l_operation_tbl(l_cnt).Transaction_Type := bom_rtg_globals.G_OPR_CREATE;  
    
      -- initialize error stack for logging errors
      Error_Handler.initialize;
    
      -- call API to create / update routing
      DBMS_OUTPUT.PUT_LINE('=======================================================');
      DBMS_OUTPUT.PUT_LINE('Calling Bom_Rtg_Pub.Process_Rtg API');
    
      BOM_RTG_PUB.PROCESS_RTG(p_bo_identifier      => 'RTG',
                              p_api_version_number => '1.0',
                              p_init_msg_list      => TRUE,
                              p_rtg_header_rec     => l_rtg_header_rec,
                              p_rtg_revision_tbl   => l_rtg_revision_tbl,
                              p_operation_tbl      => l_operation_tbl,
                              p_op_resource_tbl    => l_op_resource_tbl,
                              p_sub_resource_tbl   => l_sub_resource_tbl,
                              p_op_network_tbl     => l_op_network_tbl,
                              x_rtg_header_rec     => x_rtg_header_rec,
                              x_rtg_revision_tbl   => x_rtg_revision_tbl,
                              x_operation_tbl      => x_operation_tbl,
                              x_op_resource_tbl    => x_op_resource_tbl,
                              x_sub_resource_tbl   => x_sub_resource_tbl,
                              x_op_network_tbl     => x_op_network_tbl,
                              x_return_status      => l_return_status,
                              x_msg_count          => l_msg_count,
                              p_debug              => 'N',
                              p_output_dir         => '/usr/tmp/',
                              p_debug_filename     => 'rtg_bo_debug.log');
    
      DBMS_OUTPUT.PUT_LINE('=======================================================');
      DBMS_OUTPUT.PUT_LINE('Return Status: ' || l_return_status);
    
      IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
        dbms_output.put_line('x_msg_count:' || l_msg_count);
      
        Error_Handler.GET_MESSAGE_LIST(x_message_list => x_message_list);
        DBMS_OUTPUT.PUT_LINE('Error Message Count :' || x_message_list.COUNT);
        FOR i IN 1 .. x_message_list.COUNT LOOP
          DBMS_OUTPUT.PUT_LINE(to_char(i) || ':' || x_message_list(i)
                               .entity_index || ':' || x_message_list(i)
                               .table_name);
          DBMS_OUTPUT.PUT_LINE(to_char(i) || ':' || x_message_list(i)
                               .message_text);
        END LOOP;
      END IF;
      DBMS_OUTPUT.PUT_LINE('=======================================================');
    
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Exception Occured :');
        DBMS_OUTPUT.PUT_LINE(SQLCODE || ':' || SQLERRM);
        DBMS_OUTPUT.PUT_LINE('=======================================================');
        RAISE;
    END;
  • 相关阅读:
    oracle 编译无效对象
    nginx配置监控
    Docker底层技术
    KVM入门
    maven 忽略checkstyle
    Java 使用 UnixSocket 调用 Docker API
    unix-socket-implementation-for-java
    NVIDIA Physix Unity3D
    Mobile Prototype Dev Res Collection(Unity原型开发资源储备)
    Unity抗锯齿
  • 原文地址:https://www.cnblogs.com/pompeii2008/p/5765799.html
Copyright © 2011-2022 走看看