码迷,mamicode.com
首页 > 数据库 > 详细

[Oracle EBS APIs]import Flow routing and DJ routing using BOM_RTG_PUB.PROCESS_RTG APIs

时间:2016-08-12 18:14:53      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:

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 EBS APIs]import Flow routing and DJ routing using BOM_RTG_PUB.PROCESS_RTG APIs

标签:

原文地址:http://www.cnblogs.com/pompeii2008/p/5765799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!