REPORT ZPPRTE001 LINE-SIZE 170
LINE-COUNT 65
NO STANDARD PAGE HEADING
MESSAGE-ID MG.
*----------------------------------------------------------------------*
* Program : ZPPRTE001 *
* Author : Patrick,Song *
* Date : Jul 05, 2008 *
* Code type : conversion *
* Version : new creation *
* (interface/conversion/on-line transaction/report) *
* *
*----------------------------------------------------------------------*
* Error handling : *
*----------------------------------------------------------------------*
* 1. *
* *
*----------------------------------------------------------------------*
* Change log : *
*----------------------------------------------------------------------*
* CR# : *
* Corr. no. : *
* Date : *
* Author : *
* Change : *
* *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
* Table declaration
*&---------------------------------------------------------------------*
TABLES: MARA, " Material number
MAKT, " Material description
MAPL, " Assignment of Task Lists to Materials
MARC, " Plant data for material
MAST, " Material to BOM Link
QPMT, " Master Inspection Characteristics Texts
T001W, " Plant data
TCF10, " PRT control key
STPO, " BOM item
CRHD, " Work Center Header
CRTX, " Text for the Work Center or PRT
CRVS_A,
T430. " Operation/Activity control key
*&---------------------------------------------------------------------*
* Subrouting declaration
*&---------------------------------------------------------------------*
TYPE-POOLS: KCDE.
INCLUDE : ZBCDWI000 .
*&---------------------------------------------------------------------*
* selection screen define
*&---------------------------------------------------------------------*
* define block a1 for screen 1000
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-HB1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_RTGPRT RADIOBUTTON GROUP RTG DEFAULT 'X'.
SELECTION-SCREEN COMMENT 03(45) TEXT-PT1 FOR FIELD P_RTGPRT.
PARAMETERS: P_RTGRB RADIOBUTTON GROUP RTG .
SELECTION-SCREEN COMMENT 50(45) TEXT-PT2 FOR FIELD P_RTGRB.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK A1.
SELECTION-SCREEN BEGIN OF BLOCK A3 WITH FRAME TITLE TEXT-HB1.
PARAMETERS: P_STLAN LIKE MAST-STLAN DEFAULT '1' NO-DISPLAY.
PARAMETERS: P_VERWE LIKE PLKOD-VERWE DEFAULT '1' NO-DISPLAY.
PARAMETERS: P_STATU LIKE PLKOD-STATU DEFAULT '4' NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK A3.
* define block a2 for screen 1000
SELECTION-SCREEN BEGIN OF BLOCK A2 WITH FRAME TITLE TEXT-HB2.
PARAMETER: P_RTG LIKE RLGRAP-FILENAME OBLIGATORY.
PARAMETER: P_PRT LIKE RLGRAP-FILENAME .
PARAMETER: BEGCOL TYPE I DEFAULT 1 NO-DISPLAY.
PARAMETER: BEGROW TYPE I DEFAULT 1 NO-DISPLAY.
PARAMETER: ENDCOL TYPE I DEFAULT 100 NO-DISPLAY.
PARAMETER: ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK A2.
PARAMETERS: P_RESULT AS CHECKBOX DEFAULT SPACE .
*&---------------------------------------------------------------------*
* globe parameters declaration
*&---------------------------------------------------------------------*
* define table to store tempoary data
DATA INT_TAB TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF FILE_RTG OCCURS 1000.
** these fields of routing data collection - ST
DATA: BOM_MATERIAL LIKE BAPI1012_MTK_C-MATERIAL. " BOM Material
DATA: MAKTX LIKE MAKT-MAKTX. " Material Description
DATA: PLANT LIKE BAPI1012_TSK_C-PLANT. " Plant
DATA: GROUP_COUNTER LIKE BAPI1012_TSK_C-GROUP_COUNTER. " Group Counter
DATA: ACTIVITY LIKE BAPI1012_OPR_C-ACTIVITY. " Activity
DATA: WORK_CNTR LIKE BAPI1012_OPR_C-WORK_CNTR. " Work center
DATA: PLANT2 LIKE BAPI1012_TSK_C-PLANT. " Plant for W/C
DATA: CONTROL_KEY LIKE BAPI1012_OPR_C-CONTROL_KEY. " Task list usage
DATA: DESCRIPTION LIKE BAPI1012_OPR_C-DESCRIPTION. " Description
DATA: BASE_QUANTITY LIKE BAPI1012_OPR_C-BASE_QUANTITY. " Base Quantity
DATA: STD_VALUE_01 LIKE BAPI1012_OPR_C-STD_VALUE_01. " Preparation Time
DATA: STD_VALUE_02 LIKE BAPI1012_OPR_C-STD_VALUE_02. " Labor Time
DATA: STD_VALUE_03 LIKE BAPI1012_OPR_C-STD_VALUE_03. " Machine Time
DATA: MAX_NO_OF_SPLITS LIKE BAPI1012_OPR_C-MAX_NO_OF_SPLITS. " Maximum number of splits
DATA: MATERIAL LIKE BAPI1012_COM_C-MATERIAL. " Components
DATA: STANDARD_QUEUE_TIME LIKE BAPI1012_OPR_C-STANDARD_QUEUE_TIME. " Standard queue time
DATA: STANDARD_QUEUE_TIME_UNIT LIKE BAPI1012_OPR_C-STANDARD_QUEUE_TIME_UNIT.
DATA: METHOD LIKE BAPI1012_CHA_C-METHOD . " Inspection Method
** these fields of routing data collection - EN
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: IND_SPLITTING_REQRD LIKE BAPI1012_OPR_C-IND_SPLITTING_REQRD. " Required splitting
DATA: OPERATION_ID LIKE BAPI1012_OPR_C-OPERATION_ID. " Operation_id
DATA: TASK_LIST_USAGE LIKE BAPI1012_TSK_C-TASK_LIST_USAGE. " Task list usage
DATA: TASK_LIST_STATUS LIKE BAPI1012_TSK_C-TASK_LIST_STATUS. " Task_list_status
DATA: STANDARD_TEXT_KEY LIKE BAPI1012_OPR_C-STANDARD_TEXT_KEY. " Standard Key Text
DATA: STD_VALUE_04 LIKE BAPI1012_OPR_C-STD_VALUE_04. " PowerTime
DATA: STD_VALUE_05 LIKE BAPI1012_OPR_C-STD_VALUE_05. " Maintain Time
DATA: STD_VALUE_06 LIKE BAPI1012_OPR_C-STD_VALUE_06. " Other time
DATA: USERFIELDS_KEYWORD_ID LIKE BAPI1012_OPR_C-USERFIELDS_KEYWORD_ID. " Keyword Code
DATA: USERFIELD_CH20_00 LIKE BAPI1012_OPR_C-USERFIELD_CH20_00. " Whokshop
DATA: USERFIELD_CH20_01 LIKE BAPI1012_OPR_C-USERFIELD_CH20_01." Class 01
DATA: USERFIELD_CH10_02 LIKE BAPI1012_OPR_C-USERFIELD_CH10_02." Class 02
DATA: USERFIELD_CH10_03 LIKE BAPI1012_OPR_C-USERFIELD_CH10_03." Class 03
DATA: USERFIELD_QUAN_04 LIKE BAPI1012_OPR_C-USERFIELD_QUAN_04. " Convert frequence
DATA: SORTED_BY LIKE BAPI1012_OPR_C-SORTED_BY. " Sort Term for Non-Stock Info Records
DATA: COST_ELEM LIKE BAPI1012_OPR_C-COST_ELEM. " Cost Element
DATA: PURCH_ORG LIKE BAPI1012_OPR_C-PURCH_ORG. " Purchasing Organization
DATA: PURCH_GROUP LIKE BAPI1012_OPR_C-PURCH_GROUP. " Purchasing group for external processing
DATA: MATL_GROUP LIKE BAPI1012_OPR_C-MATL_GROUP. " Material Group
DATA: END OF FILE_RTG.
DATA: BEGIN OF RTG_UPL OCCURS 0.
DATA: BOM_MATERIAL(018). " BOM Material
DATA: MAKTX(040). " Material Description
DATA: PLANT(004). " Plant
DATA: GROUP_COUNTER(002). " Group Counter
DATA: ACTIVITY(004). " Activity
DATA: WORK_CNTR(008). " Work center
DATA: PLANT2(004). " Plant for W/C
DATA: CONTROL_KEY(004). " Task list usage
DATA: DESCRIPTION(040). " Description
DATA: BASE_QUANTITY(017). " Base Quantity
DATA: STD_VALUE_01(013). " Preparation Time
DATA: STD_VALUE_02(013). " Labor Time
DATA: STD_VALUE_03(013). " Machine Time
DATA: MAX_NO_OF_SPLITS(003). " Maximum number of splits
DATA: MATERIAL(018). " Components
DATA: STANDARD_QUEUE_TIME(013). " Standard queue time
DATA: STANDARD_QUEUE_TIME_UNIT(003).
DATA: METHOD(008) . " Inspection Method
DATA: END OF RTG_UPL .
DATA: BEGIN OF FILE_PRT OCCURS 1000.
** these fields of PRT data collection - ST
DATA: BOM_MATERIAL LIKE BAPI1012_MTK_C-MATERIAL. " BOM Material
DATA: MAKTX LIKE MAKT-MAKTX. " Material Description
DATA: PLANT LIKE BAPI1012_TSK_C-PLANT. " Plant
DATA: GROUP_COUNTER LIKE BAPI1012_TSK_C-GROUP_COUNTER. " Group Counter
DATA: ACTIVITY LIKE BAPI1012_OPR_C-ACTIVITY. " Activity
DATA: ACTIVITY_PRT LIKE BAPI1012_PRT_C-ACTIVITY. " Activity PRT
DATA: MISCELLANEOUS LIKE BAPI1012_PRT_C-MISCELLANEOUS. " ProdResourceTools
DATA: OBJECT_ID_CIM_RESOURCE LIKE BAPI1012_PRT_C-OBJECT_ID_CIM_RESOURCE .
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: END OF FILE_PRT .
*--* define internal table for error store
DATA: BEGIN OF I_ERROR OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: WORK_CNTR LIKE FILE_RTG-WORK_CNTR.
DATA: CONTROL_KEY LIKE FILE_RTG-CONTROL_KEY.
DATA: MATERIAL LIKE FILE_RTG-MATERIAL.
DATA: FIELD(030).
DATA: VALUE(030).
DATA: MESSAGE(040).
DATA: SELK(001) .
DATA: END OF I_ERROR.
DATA: BEGIN OF I_MAT OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: END OF I_MAT .
DATA: BEGIN OF I_WC OCCURS 0 .
DATA: WORK_CNTR LIKE FILE_RTG-WORK_CNTR.
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: END OF I_WC .
DATA: BEGIN OF I_ROUTING OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: MAKTX(040). " Material Description
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: GROUP_COUNTER LIKE FILE_RTG-GROUP_COUNTER.
DATA: END OF I_ROUTING .
DATA: BEGIN OF I_DELETION OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: MAKTX(040). " Material Description
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: PLNNR LIKE MAPL-PLNNR.
DATA: GROUP_COUNTER LIKE FILE_RTG-GROUP_COUNTER.
DATA: END OF I_DELETION .
*--* define internal table for BAPI Processing
** Task list header data in CREATE-BAPI for routings
DATA: BEGIN OF TASK OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TSK_C.
DATA: END OF TASK.
** Material task list assignment in CREATE-BAPI for routings
DATA: BEGIN OF MATERIALTASKALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_MTK_C.
DATA: END OF MATERIALTASKALLOCATION.
** Task list sequences in CREATE-BAPI for routings
DATA: BEGIN OF SEQUENCE OCCURS 0.
INCLUDE STRUCTURE BAPI1012_SEQ_C.
DATA: END OF SEQUENCE.
** Operations in CREATE-BAPI for routings
DATA: BEGIN OF OPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_OPR_C.
DATA: END OF OPERATION.
** Sub operations in CREATE-BAPI for routings
DATA: BEGIN OF SUBOPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_SUB_OPR_C.
DATA: END OF SUBOPERATION.
** Reference to operation set in CREATE-BAPI for routings
DATA: BEGIN OF REFERENCEOPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_REF_OPR_C.
DATA: END OF REFERENCEOPERATION.
** Component assignment in CREATE-BAPI for routing
DATA: BEGIN OF PRODUCTIONRESOURCE OCCURS 0.
INCLUDE STRUCTURE BAPI1012_PRT_C.
DATA: END OF PRODUCTIONRESOURCE.
** PRT assignments in CREATE-BAPI for routings
DATA: BEGIN OF COMPONENTALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_COM_C.
DATA: END OF COMPONENTALLOCATION.
** Inspection Characteristics in CREATE-BAPI for routings
DATA: BEGIN OF INSPCHARACTERISTIC OCCURS 0.
INCLUDE STRUCTURE BAPI1012_CHA_C.
DATA: END OF INSPCHARACTERISTIC.
* define BOM Number for details data getting
DATA: STR_STLNR TYPE STPO-STLNR .
** Text assignment (int. format) for Direct Input in the EWB
DATA: BEGIN OF TEXTALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TXT_HDR_C.
DATA: END OF TEXTALLOCATION.
** Long text lines in CREATE-BAPI for routings
DATA: BEGIN OF TEXTROUTING OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TXT_C.
DATA: END OF TEXTROUTING.
** Return parameter
DATA: BEGIN OF RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF RETURN.
DATA: S_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_ST01'.
DATA: S_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND-ALV'.
*----------------------------------------------------------------------*
* Global program variables *
*----------------------------------------------------------------------*
* * Variables used for Standard Title
*--* define functional data for BAPI processing
DATA: GROUP TYPE BAPI1012_TSK_C-TASK_LIST_GROUP,
GROUPCOUNTER TYPE BAPI1012_TSK_C-GROUP_COUNTER,
TESTRUN TYPE BAPIFLAG,
PROFILE LIKE BAPI1012_CONTROL_DATA-PROFILE,
BOMUSAGE LIKE BAPI1012_CONTROL_DATA-BOM_USAGE,
APPLICATION LIKE BAPI1012_CONTROL_DATA-APPLICATION.
*-* define message table for routing deletion & remove
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
* store uploaded and processed result
DATA: BEGIN OF AUDIT.
DATA: FILESIZE TYPE I. " # size of local file
DATA: LIN_PROC TYPE I. " # of lines processed
DATA: LIN_TOTAL TYPE I. " # of lines total
DATA: RTG_ENTRIES TYPE I. " # of Routing Entries
DATA: RTG_DUPLICATE TYPE I. " # of Routing duplicated Entries
DATA: RTG_CREATE TYPE I. " # of Routing created
DATA: RTG_ERROR TYPE I. " # of Routing Created error
DATA: LIN_PRTRTG TYPE I. " # of PRT Line of Routing
DATA: END OF AUDIT.
DATA: FNAME_RTG TYPE STRING. " input file name for routing
DATA: FNAME_PRT TYPE STRING. " input file name for prt
DATA: STR_OBJTY LIKE CRTX-OBJTY VALUE 'FH' .
DATA: STR_STEUF LIKE TCF10-STEUF .
*-* define parameter to store line count
DATA: LINE TYPE I.
*&---------------------------------------------------------------------*
* top-of-page.
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
IF I_ERROR[] IS INITIAL.
PERFORM PAGE_HEADER.
PERFORM OUTPUT_COLUMN_HEADING. " Print column heading
ENDIF .
*&---------------------------------------------------------------------*
* initialization.
*&---------------------------------------------------------------------*
INITIALIZATION.
REFRESH: FILE_RTG, RETURN, TEXTROUTING, TEXTALLOCATION,
INSPCHARACTERISTIC, COMPONENTALLOCATION, PRODUCTIONRESOURCE,
REFERENCEOPERATION, SUBOPERATION, OPERATION,
SEQUENCE, TASK, MATERIALTASKALLOCATION.
CLEAR : FILE_RTG, RETURN, TEXTROUTING, TEXTALLOCATION,
INSPCHARACTERISTIC, COMPONENTALLOCATION, PRODUCTIONRESOURCE,
REFERENCEOPERATION, SUBOPERATION, OPERATION,
SEQUENCE, TASK, MATERIALTASKALLOCATION.
CLEAR : AUDIT .
N = 157 .
*&---------------------------------------------------------------------*
* at selection-screen.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_RTG .
PERFORM GET_RTG_FILENAME .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PRT .
PERFORM GET_PRT_FILENAME .
AT SELECTION-SCREEN .
IF NOT P_RTGPRT IS INITIAL .
IF P_PRT IS INITIAL .
MESSAGE E899 WITH TEXT-EE0 .
ENDIF .
ENDIF .
*&---------------------------------------------------------------------*
* start-of-selection.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
** get start time
* PERFORM GET_START_TIME .
** get uploading data
PERFORM GET_UPLOADING_DATA TABLES FILE_RTG
CHANGING FNAME_RTG FNAME_PRT AUDIT-FILESIZE.
** check uploading data
PERFORM CHECK_UPLOAD_DATA .
** display result
PERFORM DISPLAY_RESULT .
*&---------------------------------------------------------------------*
* end-of-selection.
*&---------------------------------------------------------------------*
END-OF-SELECTION.
* IF SY-UNAME EQ 'T31920'
* OR SY-UNAME EQ 'A31920'
* OR SY-UNAME EQ 'ABAP06'
* OR SY-UNAME EQ 'WANGYP'
* OR SY-UNAME CA '31920'.
* SET PF-STATUS 'TLB'.
* ELSE.
* SET PF-STATUS 'TLB' EXCLUDING 'RTGDEL'.
* ENDIF .
SET PF-STATUS 'TLB'.
** get end time
* PERFORM GET_END_TIME .
*&---------------------------------------------------------------------*
* end-of-page.
*&---------------------------------------------------------------------*
*END-OF-PAGE.
* PERFORM PAGE_FOOTER .
*&---------------------------------------------------------------------*
* at user-command.
*&---------------------------------------------------------------------*
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'RTGCRT'.
IF NOT I_ROUTING[] IS INITIAL AND I_ERROR[] IS INITIAL .
PERFORM POPUP_TO_CONFIRM USING TEXT-HH1 TEXT-Q01.
IF L_ANSWER = '1'.
WRITE:/ TEXT-R01 COLOR COL_KEY, TEXT-R02 COLOR COL_KEY,
TEXT-R03 COLOR COL_KEY, TEXT-R04 COLOR COL_KEY.
ULINE.
PERFORM BAPI_ROUTING_CREATE TABLES FILE_RTG.
REFRESH: I_ROUTING .
CLEAR : I_ROUTING .
ENDIF .
ELSEIF I_ROUTING[] IS INITIAL .
MESSAGE TEXT-E06 TYPE 'S'.
ELSE.
MESSAGE TEXT-E09 TYPE 'S'.
ENDIF.
WHEN 'RTGDEL'.
IF NOT I_DELETION[] IS INITIAL .
PERFORM POPUP_TO_CONFIRM USING TEXT-HH1 TEXT-Q02.
IF L_ANSWER = '1'.
WRITE:/10 TEXT-R01 COLOR COL_KEY, TEXT-R02 COLOR COL_KEY,
TEXT-R03 COLOR COL_KEY, TEXT-R04 COLOR COL_KEY.
ULINE .
PERFORM DELETE_ROUTING TABLES I_DELETION .
REFRESH: I_DELETION .
CLEAR : I_DELETION .
CLEAR : AUDIT-RTG_DUPLICATE .
ENDIF .
ENDIF .
WHEN OTHERS .
ENDCASE.
*&---------------------------------------------------------------------*
*& Form get_filename
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_RTG_FILENAME .
CALL FUNCTION 'WS_FILENAME_GET' "Get file name
EXPORTING
* DEF_FILENAME = ' '
* DEF_PATH = ' '
MASK = ',*.* ,*.*.'
MODE = '0'
TITLE = 'Get File name'
IMPORTING
FILENAME = P_RTG
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
* MESSAGE E016 WITH P_PATH.
ENDIF.
ENDFORM. " get_filename
*&---------------------------------------------------------------------*
*& Form get_uploading_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_UPLOADING_DATA TABLES ITAB CHANGING FNAME_RTG FNAME_PRT FILESIZE.
** call function to get path and name if parameter is initial
IF P_RTG IS INITIAL.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_RTG.
ENDIF .
* get filename for uploading PRT data of routing creation if required
IF NOT P_RTGPRT IS INITIAL AND P_PRT IS INITIAL.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_PRT.
ENDIF.
FNAME_RTG = P_RTG .
FNAME_PRT = P_PRT .
*" Upload basic routing data
PERFORM GET_UPLOADED_ROUTING_DATA .
*" Upload PRT data for routing if required
IF NOT P_RTGPRT IS INITIAL .
PERFORM GET_UPLOADED_PRTOOLS_DATA .
ENDIF .
*-* Check internal table
IF FILE_RTG[] IS INITIAL.
MESSAGE TEXT-M01 TYPE 'S'.
ELSE.
DESCRIBE TABLE FILE_RTG LINES AUDIT-LIN_TOTAL .
ENDIF.
*-* sort by material and plant
SORT FILE_RTG BY BOM_MATERIAL PLANT ACTIVITY.
ENDFORM. " get_uploading_data
LINE-COUNT 65
NO STANDARD PAGE HEADING
MESSAGE-ID MG.
*----------------------------------------------------------------------*
* Program : ZPPRTE001 *
* Author : Patrick,Song *
* Date : Jul 05, 2008 *
* Code type : conversion *
* Version : new creation *
* (interface/conversion/on-line transaction/report) *
* *
*----------------------------------------------------------------------*
* Error handling : *
*----------------------------------------------------------------------*
* 1. *
* *
*----------------------------------------------------------------------*
* Change log : *
*----------------------------------------------------------------------*
* CR# : *
* Corr. no. : *
* Date : *
* Author : *
* Change : *
* *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
* Table declaration
*&---------------------------------------------------------------------*
TABLES: MARA, " Material number
MAKT, " Material description
MAPL, " Assignment of Task Lists to Materials
MARC, " Plant data for material
MAST, " Material to BOM Link
QPMT, " Master Inspection Characteristics Texts
T001W, " Plant data
TCF10, " PRT control key
STPO, " BOM item
CRHD, " Work Center Header
CRTX, " Text for the Work Center or PRT
CRVS_A,
T430. " Operation/Activity control key
*&---------------------------------------------------------------------*
* Subrouting declaration
*&---------------------------------------------------------------------*
TYPE-POOLS: KCDE.
INCLUDE : ZBCDWI000 .
*&---------------------------------------------------------------------*
* selection screen define
*&---------------------------------------------------------------------*
* define block a1 for screen 1000
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-HB1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_RTGPRT RADIOBUTTON GROUP RTG DEFAULT 'X'.
SELECTION-SCREEN COMMENT 03(45) TEXT-PT1 FOR FIELD P_RTGPRT.
PARAMETERS: P_RTGRB RADIOBUTTON GROUP RTG .
SELECTION-SCREEN COMMENT 50(45) TEXT-PT2 FOR FIELD P_RTGRB.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK A1.
SELECTION-SCREEN BEGIN OF BLOCK A3 WITH FRAME TITLE TEXT-HB1.
PARAMETERS: P_STLAN LIKE MAST-STLAN DEFAULT '1' NO-DISPLAY.
PARAMETERS: P_VERWE LIKE PLKOD-VERWE DEFAULT '1' NO-DISPLAY.
PARAMETERS: P_STATU LIKE PLKOD-STATU DEFAULT '4' NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK A3.
* define block a2 for screen 1000
SELECTION-SCREEN BEGIN OF BLOCK A2 WITH FRAME TITLE TEXT-HB2.
PARAMETER: P_RTG LIKE RLGRAP-FILENAME OBLIGATORY.
PARAMETER: P_PRT LIKE RLGRAP-FILENAME .
PARAMETER: BEGCOL TYPE I DEFAULT 1 NO-DISPLAY.
PARAMETER: BEGROW TYPE I DEFAULT 1 NO-DISPLAY.
PARAMETER: ENDCOL TYPE I DEFAULT 100 NO-DISPLAY.
PARAMETER: ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK A2.
PARAMETERS: P_RESULT AS CHECKBOX DEFAULT SPACE .
*&---------------------------------------------------------------------*
* globe parameters declaration
*&---------------------------------------------------------------------*
* define table to store tempoary data
DATA INT_TAB TYPE KCDE_INTERN_STRUC OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF FILE_RTG OCCURS 1000.
** these fields of routing data collection - ST
DATA: BOM_MATERIAL LIKE BAPI1012_MTK_C-MATERIAL. " BOM Material
DATA: MAKTX LIKE MAKT-MAKTX. " Material Description
DATA: PLANT LIKE BAPI1012_TSK_C-PLANT. " Plant
DATA: GROUP_COUNTER LIKE BAPI1012_TSK_C-GROUP_COUNTER. " Group Counter
DATA: ACTIVITY LIKE BAPI1012_OPR_C-ACTIVITY. " Activity
DATA: WORK_CNTR LIKE BAPI1012_OPR_C-WORK_CNTR. " Work center
DATA: PLANT2 LIKE BAPI1012_TSK_C-PLANT. " Plant for W/C
DATA: CONTROL_KEY LIKE BAPI1012_OPR_C-CONTROL_KEY. " Task list usage
DATA: DESCRIPTION LIKE BAPI1012_OPR_C-DESCRIPTION. " Description
DATA: BASE_QUANTITY LIKE BAPI1012_OPR_C-BASE_QUANTITY. " Base Quantity
DATA: STD_VALUE_01 LIKE BAPI1012_OPR_C-STD_VALUE_01. " Preparation Time
DATA: STD_VALUE_02 LIKE BAPI1012_OPR_C-STD_VALUE_02. " Labor Time
DATA: STD_VALUE_03 LIKE BAPI1012_OPR_C-STD_VALUE_03. " Machine Time
DATA: MAX_NO_OF_SPLITS LIKE BAPI1012_OPR_C-MAX_NO_OF_SPLITS. " Maximum number of splits
DATA: MATERIAL LIKE BAPI1012_COM_C-MATERIAL. " Components
DATA: STANDARD_QUEUE_TIME LIKE BAPI1012_OPR_C-STANDARD_QUEUE_TIME. " Standard queue time
DATA: STANDARD_QUEUE_TIME_UNIT LIKE BAPI1012_OPR_C-STANDARD_QUEUE_TIME_UNIT.
DATA: METHOD LIKE BAPI1012_CHA_C-METHOD . " Inspection Method
** these fields of routing data collection - EN
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: IND_SPLITTING_REQRD LIKE BAPI1012_OPR_C-IND_SPLITTING_REQRD. " Required splitting
DATA: OPERATION_ID LIKE BAPI1012_OPR_C-OPERATION_ID. " Operation_id
DATA: TASK_LIST_USAGE LIKE BAPI1012_TSK_C-TASK_LIST_USAGE. " Task list usage
DATA: TASK_LIST_STATUS LIKE BAPI1012_TSK_C-TASK_LIST_STATUS. " Task_list_status
DATA: STANDARD_TEXT_KEY LIKE BAPI1012_OPR_C-STANDARD_TEXT_KEY. " Standard Key Text
DATA: STD_VALUE_04 LIKE BAPI1012_OPR_C-STD_VALUE_04. " PowerTime
DATA: STD_VALUE_05 LIKE BAPI1012_OPR_C-STD_VALUE_05. " Maintain Time
DATA: STD_VALUE_06 LIKE BAPI1012_OPR_C-STD_VALUE_06. " Other time
DATA: USERFIELDS_KEYWORD_ID LIKE BAPI1012_OPR_C-USERFIELDS_KEYWORD_ID. " Keyword Code
DATA: USERFIELD_CH20_00 LIKE BAPI1012_OPR_C-USERFIELD_CH20_00. " Whokshop
DATA: USERFIELD_CH20_01 LIKE BAPI1012_OPR_C-USERFIELD_CH20_01." Class 01
DATA: USERFIELD_CH10_02 LIKE BAPI1012_OPR_C-USERFIELD_CH10_02." Class 02
DATA: USERFIELD_CH10_03 LIKE BAPI1012_OPR_C-USERFIELD_CH10_03." Class 03
DATA: USERFIELD_QUAN_04 LIKE BAPI1012_OPR_C-USERFIELD_QUAN_04. " Convert frequence
DATA: SORTED_BY LIKE BAPI1012_OPR_C-SORTED_BY. " Sort Term for Non-Stock Info Records
DATA: COST_ELEM LIKE BAPI1012_OPR_C-COST_ELEM. " Cost Element
DATA: PURCH_ORG LIKE BAPI1012_OPR_C-PURCH_ORG. " Purchasing Organization
DATA: PURCH_GROUP LIKE BAPI1012_OPR_C-PURCH_GROUP. " Purchasing group for external processing
DATA: MATL_GROUP LIKE BAPI1012_OPR_C-MATL_GROUP. " Material Group
DATA: END OF FILE_RTG.
DATA: BEGIN OF RTG_UPL OCCURS 0.
DATA: BOM_MATERIAL(018). " BOM Material
DATA: MAKTX(040). " Material Description
DATA: PLANT(004). " Plant
DATA: GROUP_COUNTER(002). " Group Counter
DATA: ACTIVITY(004). " Activity
DATA: WORK_CNTR(008). " Work center
DATA: PLANT2(004). " Plant for W/C
DATA: CONTROL_KEY(004). " Task list usage
DATA: DESCRIPTION(040). " Description
DATA: BASE_QUANTITY(017). " Base Quantity
DATA: STD_VALUE_01(013). " Preparation Time
DATA: STD_VALUE_02(013). " Labor Time
DATA: STD_VALUE_03(013). " Machine Time
DATA: MAX_NO_OF_SPLITS(003). " Maximum number of splits
DATA: MATERIAL(018). " Components
DATA: STANDARD_QUEUE_TIME(013). " Standard queue time
DATA: STANDARD_QUEUE_TIME_UNIT(003).
DATA: METHOD(008) . " Inspection Method
DATA: END OF RTG_UPL .
DATA: BEGIN OF FILE_PRT OCCURS 1000.
** these fields of PRT data collection - ST
DATA: BOM_MATERIAL LIKE BAPI1012_MTK_C-MATERIAL. " BOM Material
DATA: MAKTX LIKE MAKT-MAKTX. " Material Description
DATA: PLANT LIKE BAPI1012_TSK_C-PLANT. " Plant
DATA: GROUP_COUNTER LIKE BAPI1012_TSK_C-GROUP_COUNTER. " Group Counter
DATA: ACTIVITY LIKE BAPI1012_OPR_C-ACTIVITY. " Activity
DATA: ACTIVITY_PRT LIKE BAPI1012_PRT_C-ACTIVITY. " Activity PRT
DATA: MISCELLANEOUS LIKE BAPI1012_PRT_C-MISCELLANEOUS. " ProdResourceTools
DATA: OBJECT_ID_CIM_RESOURCE LIKE BAPI1012_PRT_C-OBJECT_ID_CIM_RESOURCE .
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: END OF FILE_PRT .
*--* define internal table for error store
DATA: BEGIN OF I_ERROR OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: WORK_CNTR LIKE FILE_RTG-WORK_CNTR.
DATA: CONTROL_KEY LIKE FILE_RTG-CONTROL_KEY.
DATA: MATERIAL LIKE FILE_RTG-MATERIAL.
DATA: FIELD(030).
DATA: VALUE(030).
DATA: MESSAGE(040).
DATA: SELK(001) .
DATA: END OF I_ERROR.
DATA: BEGIN OF I_MAT OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: END OF I_MAT .
DATA: BEGIN OF I_WC OCCURS 0 .
DATA: WORK_CNTR LIKE FILE_RTG-WORK_CNTR.
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: END OF I_WC .
DATA: BEGIN OF I_ROUTING OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: MAKTX(040). " Material Description
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: TASK_LIST_GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP. " Key for Task List Group
DATA: GROUP_COUNTER LIKE FILE_RTG-GROUP_COUNTER.
DATA: END OF I_ROUTING .
DATA: BEGIN OF I_DELETION OCCURS 0.
DATA: BOM_MATERIAL LIKE FILE_RTG-BOM_MATERIAL.
DATA: MAKTX(040). " Material Description
DATA: PLANT LIKE FILE_RTG-PLANT.
DATA: PLNNR LIKE MAPL-PLNNR.
DATA: GROUP_COUNTER LIKE FILE_RTG-GROUP_COUNTER.
DATA: END OF I_DELETION .
*--* define internal table for BAPI Processing
** Task list header data in CREATE-BAPI for routings
DATA: BEGIN OF TASK OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TSK_C.
DATA: END OF TASK.
** Material task list assignment in CREATE-BAPI for routings
DATA: BEGIN OF MATERIALTASKALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_MTK_C.
DATA: END OF MATERIALTASKALLOCATION.
** Task list sequences in CREATE-BAPI for routings
DATA: BEGIN OF SEQUENCE OCCURS 0.
INCLUDE STRUCTURE BAPI1012_SEQ_C.
DATA: END OF SEQUENCE.
** Operations in CREATE-BAPI for routings
DATA: BEGIN OF OPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_OPR_C.
DATA: END OF OPERATION.
** Sub operations in CREATE-BAPI for routings
DATA: BEGIN OF SUBOPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_SUB_OPR_C.
DATA: END OF SUBOPERATION.
** Reference to operation set in CREATE-BAPI for routings
DATA: BEGIN OF REFERENCEOPERATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_REF_OPR_C.
DATA: END OF REFERENCEOPERATION.
** Component assignment in CREATE-BAPI for routing
DATA: BEGIN OF PRODUCTIONRESOURCE OCCURS 0.
INCLUDE STRUCTURE BAPI1012_PRT_C.
DATA: END OF PRODUCTIONRESOURCE.
** PRT assignments in CREATE-BAPI for routings
DATA: BEGIN OF COMPONENTALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_COM_C.
DATA: END OF COMPONENTALLOCATION.
** Inspection Characteristics in CREATE-BAPI for routings
DATA: BEGIN OF INSPCHARACTERISTIC OCCURS 0.
INCLUDE STRUCTURE BAPI1012_CHA_C.
DATA: END OF INSPCHARACTERISTIC.
* define BOM Number for details data getting
DATA: STR_STLNR TYPE STPO-STLNR .
** Text assignment (int. format) for Direct Input in the EWB
DATA: BEGIN OF TEXTALLOCATION OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TXT_HDR_C.
DATA: END OF TEXTALLOCATION.
** Long text lines in CREATE-BAPI for routings
DATA: BEGIN OF TEXTROUTING OCCURS 0.
INCLUDE STRUCTURE BAPI1012_TXT_C.
DATA: END OF TEXTROUTING.
** Return parameter
DATA: BEGIN OF RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF RETURN.
DATA: S_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_ST01'.
DATA: S_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND-ALV'.
*----------------------------------------------------------------------*
* Global program variables *
*----------------------------------------------------------------------*
* * Variables used for Standard Title
*--* define functional data for BAPI processing
DATA: GROUP TYPE BAPI1012_TSK_C-TASK_LIST_GROUP,
GROUPCOUNTER TYPE BAPI1012_TSK_C-GROUP_COUNTER,
TESTRUN TYPE BAPIFLAG,
PROFILE LIKE BAPI1012_CONTROL_DATA-PROFILE,
BOMUSAGE LIKE BAPI1012_CONTROL_DATA-BOM_USAGE,
APPLICATION LIKE BAPI1012_CONTROL_DATA-APPLICATION.
*-* define message table for routing deletion & remove
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
* store uploaded and processed result
DATA: BEGIN OF AUDIT.
DATA: FILESIZE TYPE I. " # size of local file
DATA: LIN_PROC TYPE I. " # of lines processed
DATA: LIN_TOTAL TYPE I. " # of lines total
DATA: RTG_ENTRIES TYPE I. " # of Routing Entries
DATA: RTG_DUPLICATE TYPE I. " # of Routing duplicated Entries
DATA: RTG_CREATE TYPE I. " # of Routing created
DATA: RTG_ERROR TYPE I. " # of Routing Created error
DATA: LIN_PRTRTG TYPE I. " # of PRT Line of Routing
DATA: END OF AUDIT.
DATA: FNAME_RTG TYPE STRING. " input file name for routing
DATA: FNAME_PRT TYPE STRING. " input file name for prt
DATA: STR_OBJTY LIKE CRTX-OBJTY VALUE 'FH' .
DATA: STR_STEUF LIKE TCF10-STEUF .
*-* define parameter to store line count
DATA: LINE TYPE I.
*&---------------------------------------------------------------------*
* top-of-page.
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
IF I_ERROR[] IS INITIAL.
PERFORM PAGE_HEADER.
PERFORM OUTPUT_COLUMN_HEADING. " Print column heading
ENDIF .
*&---------------------------------------------------------------------*
* initialization.
*&---------------------------------------------------------------------*
INITIALIZATION.
REFRESH: FILE_RTG, RETURN, TEXTROUTING, TEXTALLOCATION,
INSPCHARACTERISTIC, COMPONENTALLOCATION, PRODUCTIONRESOURCE,
REFERENCEOPERATION, SUBOPERATION, OPERATION,
SEQUENCE, TASK, MATERIALTASKALLOCATION.
CLEAR : FILE_RTG, RETURN, TEXTROUTING, TEXTALLOCATION,
INSPCHARACTERISTIC, COMPONENTALLOCATION, PRODUCTIONRESOURCE,
REFERENCEOPERATION, SUBOPERATION, OPERATION,
SEQUENCE, TASK, MATERIALTASKALLOCATION.
CLEAR : AUDIT .
N = 157 .
*&---------------------------------------------------------------------*
* at selection-screen.
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_RTG .
PERFORM GET_RTG_FILENAME .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PRT .
PERFORM GET_PRT_FILENAME .
AT SELECTION-SCREEN .
IF NOT P_RTGPRT IS INITIAL .
IF P_PRT IS INITIAL .
MESSAGE E899 WITH TEXT-EE0 .
ENDIF .
ENDIF .
*&---------------------------------------------------------------------*
* start-of-selection.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
** get start time
* PERFORM GET_START_TIME .
** get uploading data
PERFORM GET_UPLOADING_DATA TABLES FILE_RTG
CHANGING FNAME_RTG FNAME_PRT AUDIT-FILESIZE.
** check uploading data
PERFORM CHECK_UPLOAD_DATA .
** display result
PERFORM DISPLAY_RESULT .
*&---------------------------------------------------------------------*
* end-of-selection.
*&---------------------------------------------------------------------*
END-OF-SELECTION.
* IF SY-UNAME EQ 'T31920'
* OR SY-UNAME EQ 'A31920'
* OR SY-UNAME EQ 'ABAP06'
* OR SY-UNAME EQ 'WANGYP'
* OR SY-UNAME CA '31920'.
* SET PF-STATUS 'TLB'.
* ELSE.
* SET PF-STATUS 'TLB' EXCLUDING 'RTGDEL'.
* ENDIF .
SET PF-STATUS 'TLB'.
** get end time
* PERFORM GET_END_TIME .
*&---------------------------------------------------------------------*
* end-of-page.
*&---------------------------------------------------------------------*
*END-OF-PAGE.
* PERFORM PAGE_FOOTER .
*&---------------------------------------------------------------------*
* at user-command.
*&---------------------------------------------------------------------*
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'RTGCRT'.
IF NOT I_ROUTING[] IS INITIAL AND I_ERROR[] IS INITIAL .
PERFORM POPUP_TO_CONFIRM USING TEXT-HH1 TEXT-Q01.
IF L_ANSWER = '1'.
WRITE:/ TEXT-R01 COLOR COL_KEY, TEXT-R02 COLOR COL_KEY,
TEXT-R03 COLOR COL_KEY, TEXT-R04 COLOR COL_KEY.
ULINE.
PERFORM BAPI_ROUTING_CREATE TABLES FILE_RTG.
REFRESH: I_ROUTING .
CLEAR : I_ROUTING .
ENDIF .
ELSEIF I_ROUTING[] IS INITIAL .
MESSAGE TEXT-E06 TYPE 'S'.
ELSE.
MESSAGE TEXT-E09 TYPE 'S'.
ENDIF.
WHEN 'RTGDEL'.
IF NOT I_DELETION[] IS INITIAL .
PERFORM POPUP_TO_CONFIRM USING TEXT-HH1 TEXT-Q02.
IF L_ANSWER = '1'.
WRITE:/10 TEXT-R01 COLOR COL_KEY, TEXT-R02 COLOR COL_KEY,
TEXT-R03 COLOR COL_KEY, TEXT-R04 COLOR COL_KEY.
ULINE .
PERFORM DELETE_ROUTING TABLES I_DELETION .
REFRESH: I_DELETION .
CLEAR : I_DELETION .
CLEAR : AUDIT-RTG_DUPLICATE .
ENDIF .
ENDIF .
WHEN OTHERS .
ENDCASE.
*&---------------------------------------------------------------------*
*& Form get_filename
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_RTG_FILENAME .
CALL FUNCTION 'WS_FILENAME_GET' "Get file name
EXPORTING
* DEF_FILENAME = ' '
* DEF_PATH = ' '
MASK = ',*.* ,*.*.'
MODE = '0'
TITLE = 'Get File name'
IMPORTING
FILENAME = P_RTG
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
* MESSAGE E016 WITH P_PATH.
ENDIF.
ENDFORM. " get_filename
*&---------------------------------------------------------------------*
*& Form get_uploading_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_UPLOADING_DATA TABLES ITAB CHANGING FNAME_RTG FNAME_PRT FILESIZE.
** call function to get path and name if parameter is initial
IF P_RTG IS INITIAL.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_RTG.
ENDIF .
* get filename for uploading PRT data of routing creation if required
IF NOT P_RTGPRT IS INITIAL AND P_PRT IS INITIAL.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_PRT.
ENDIF.
FNAME_RTG = P_RTG .
FNAME_PRT = P_PRT .
*" Upload basic routing data
PERFORM GET_UPLOADED_ROUTING_DATA .
*" Upload PRT data for routing if required
IF NOT P_RTGPRT IS INITIAL .
PERFORM GET_UPLOADED_PRTOOLS_DATA .
ENDIF .
*-* Check internal table
IF FILE_RTG[] IS INITIAL.
MESSAGE TEXT-M01 TYPE 'S'.
ELSE.
DESCRIBE TABLE FILE_RTG LINES AUDIT-LIN_TOTAL .
ENDIF.
*-* sort by material and plant
SORT FILE_RTG BY BOM_MATERIAL PLANT ACTIVITY.
ENDFORM. " get_uploading_data