Documente Academic
Documente Profesional
Documente Cultură
* Initial screen
DATA : BEGIN OF PLNINP OCCURS 10,
IMATNR(18) TYPE C, " Material
WERKS(4) TYPE C, " Plant
PLNNR(08) TYPE C,
AENNR(12) TYPE C,
STTAG(10) TYPE C,
REVLV(02) TYPE C,
PROFIDNETZ(07) TYPE C,
END OF PLNINP.
DATA : BEGIN OF TSKINP OCCURS 10,
IMATNR(18) TYPE C,
WERKS(4) TYPE C,
PLNNR(08) TYPE C,
PLNAL(02) TYPE C,
KTEXT(40) TYPE C,
DELKZ(01) TYPE C,
VERWE(03) TYPE C,
STATU(03) TYPE C,
PLNME(03) TYPE C,
PLNNR_ALT(20) TYPE C,
SLWBEZ(03) TYPE C,
QDYNHEAD(01) TYPE C,
QDYNREGEL(03) TYPE C,
MATKZ(01) TYPE C,
KUNDKZ(01) TYPE C,
LIEFKZ(01) TYPE C,
HERSTKZ(01) TYPE C,
EXTNUM(01) TYPE C,
END OF TSKINP.
DATA : BEGIN OF MATINP OCCURS 10,
IMATNR(18) TYPE C, " Material
WERKS(4) TYPE C, " Plant
PLNNR(08) TYPE C,
PLNAL(02) TYPE C,
IMATNR2(18) TYPE C,
WERKS2(4) TYPE C,
LIFNR(10) TYPE C,
KUNNR(10) TYPE C,
SUCHFELD(20) TYPE C,
SLIFNR LIKE LFA1-LIFNR,
SKUNNR LIKE KNA1-KUNNR,
END OF MATINP.
DATA : BEGIN OF OPSINP OCCURS 10,
IMATNR(18) TYPE C, " Material
WERKS(4) TYPE C, " Plant
PLNNR(08) TYPE C,
PLNAL(02) TYPE C,
VORNR(04) TYPE C,
UVORN(04) TYPE C,
ARBPL(08) TYPE C,
STEUS(04) TYPE C,
KTSCH(07) TYPE C,
LTXA1(40) TYPE C,
TXTKZ(01) TYPE C,
VERDART(01) TYPE C,
UAVO_AUFL(01) TYPE C,
BMSCH(13) TYPE C, "QTY
MEINH(03) TYPE C, "UOM
ERFSICHT(01) TYPE C,
QPPKTABS(01) TYPE C,
* UMREZ(05) TYPE C,
* UMREN(05) TYPE C,
* VGWO1_1(13) TYPE C, "QTY
* VGE01_1(03) TYPE C, "UOM
* LAR01_1(06) TYPE C,
* VGWO1_2(13) TYPE C, "QTY
* VGE01_2(03) TYPE C, "UOM
* LAR01_2(06) TYPE C,
* VGWO1_3(13) TYPE C, "QTY
* VGE01_3(03) TYPE C, "UOM
* LAR01_3(06) TYPE C,
END OF OPSINP.
DATA : BEGIN OF CHRINP OCCURS 10,
IMATNR(18) TYPE C, " Material
WERKS(4) TYPE C, " Plant
PLNNR(08) TYPE C,
PLNAL(02) TYPE C,
VORNR(04) TYPE C,
MERKNR(04) TYPE C,
VSTEUERKZ(04) TYPE C,
QUANTITAT(01) TYPE C,
QUALITAT(01) TYPE C,
VERWMERKM(08) TYPE C,
QPMK_WERKS(04) TYPE C,
MKVERSION(06) TYPE C,
KURZTEXT(40) TYPE C,
STICHPRVER(08) TYPE C,
PROBEMGEH(03) TYPE C,
PRUEFEINH(06) TYPE C,
FORMEL1(60) TYPE C,
* DUMMY40(40) TYPE C,
* PUMFKZ1(01) TYPE C,
* PUMFKZ4(01) TYPE C,
* TOLERUNTEN(01) TYPE C,
* TOLEROBEN(01) TYPE C,
* STELLEN(02) TYPE C,
* MASSEINHSW(03) TYPE C,
* STICHPR(01) TYPE C,
* ESTUKZ3(01) TYPE C,
* RZWANG4(01) TYPE C,
* AENDBELEG(01) TYPE C,
* DOKUKZ1(01) TYPE C,
* MESSWERTE(01) TYPE C,
* DRUCK1(01) TYPE C,
* KEINEFORMEL(01) TYPE C,
* PRUEFKAT(01) TYPE C,
* STICHPRVER(08) TYPE C,
* QERGDATH(02) TYPE C,
* SOLLWERT(16) TYPE C,
* TOLERANZUN(16) TYPE C,
* TOLERANZOB(16) TYPE C,
* AUSWMENGE1(8) TYPE C,
* AUSWMGWRK1(4) TYPE C,
END OF CHRINP.
DATA: ERROR_FLAG,
BAPI_IDOC_STATUS LIKE BDIDOCSTAT-STATUS.
* Upload files
DATA l_fname TYPE filetable.
DATA l_action TYPE i.
DATA l_cdir TYPE string.
DATA l_filename TYPE string.
DATA l_i_return_tab TYPE TABLE OF ddshretval.
DATA l_st_return_tab TYPE ddshretval.
DATA : l_path TYPE string,
l_fullpath TYPE string.
DATA l_rc TYPE i.
P_FILE1 = 'Pln_pln.txt'.
P_FILE2 = 'Pln_hdr.txt'.
P_FILE3 = 'Pln_mat.txt'.
P_FILE4 = 'Pln_ops.txt'.
P_FILE5 = 'Pln_chr.txt'.
************************************************************************
******* START OF SELECTION *******
************************************************************************
START-OF-SELECTION.
PERFORM A_INITIALIZE.
PERFORM B_UPLOAD_DATA.
IF P_RUN EQ 'X'.
PERFORM C_BUILD_PLAN_BAPI.
ENDIF.
PERFORM D_PRINT_REPORT.
END-OF-SELECTION.
*eject
*---------------------------------------------------------------------*
* FORM A_INITIALIZE *
*---------------------------------------------------------------------*
FORM A_INITIALIZE.
SELECT BISMT MATNR FROM MARA INTO TABLE XMARA WHERE BISMT GT SPACE
AND LVORM EQ SPACE.
SORT XMARA BY BISMT MATNR.
ENDFORM.
*---------------------------------------------------------------------*
* FORM B_UPLOAD_DATA *
*---------------------------------------------------------------------*
FORM B_UPLOAD_DATA.
l_filename = p_file1.
* Call Method for file selection dialog popup.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Plan Header File' "#EC NOTEXT
default_extension = 'TXT'
default_filename = l_filename
initial_directory = l_cdir
multiselection = space
CHANGING
file_table = l_fname
rc = l_rc
user_action = l_action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0 AND l_action EQ 0.
READ TABLE l_fname INTO p_file1 INDEX 1.
* Plan Header file
IF P_FILE1 GT SPACE.
PFILE = P_FILE1.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
filename = PFILE
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = PLNINP[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
* Task file
refresh l_fname. clear l_fname.
l_filename = p_file2.
* Call Method for file selection dialog popup.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Tasks File' "#EC NOTEXT
default_extension = 'TXT'
default_filename = l_filename
initial_directory = l_cdir
multiselection = space
CHANGING
file_table = l_fname
rc = l_rc
user_action = l_action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0 AND l_action EQ 0.
READ TABLE l_fname INTO p_file2 INDEX 1.
IF P_FILE2 GT SPACE.
PFILE = P_FILE2.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
filename = PFILE
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = TSKINP[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDIF.
* Material Assignments
refresh l_fname. clear l_fname.
l_filename = p_file3.
* Call Method for file selection dialog popup.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Material Assignments' "#EC NOTEXT
default_extension = 'TXT'
default_filename = l_filename
initial_directory = l_cdir
multiselection = space
CHANGING
file_table = l_fname
rc = l_rc
user_action = l_action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0 AND l_action EQ 0.
READ TABLE l_fname INTO p_file3 INDEX 1.
IF P_FILE3 GT SPACE.
PFILE = P_FILE3.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
filename = PFILE
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = MATINP[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDIF.
* Operations
refresh l_fname. clear l_fname.
l_filename = p_file4.
* Call Method for file selection dialog popup.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Operations' "#EC NOTEXT
default_extension = 'TXT'
default_filename = l_filename
initial_directory = l_cdir
multiselection = space
CHANGING
file_table = l_fname
rc = l_rc
user_action = l_action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0 AND l_action EQ 0.
READ TABLE l_fname INTO p_file4 INDEX 1.
IF P_FILE4 GT SPACE.
PFILE = P_FILE4.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
filename = PFILE
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = OPSINP[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDIF.
* Inspection Characteristics
refresh l_fname. clear l_fname.
l_filename = p_file5.
* Call Method for file selection dialog popup.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Inspection Characteristics' "#EC NOTEXT
default_extension = 'TXT'
default_filename = l_filename
initial_directory = l_cdir
multiselection = space
CHANGING
file_table = l_fname
rc = l_rc
user_action = l_action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0 AND l_action EQ 0.
READ TABLE l_fname INTO p_file5 INDEX 1.
IF P_FILE5 GT SPACE.
PFILE = P_FILE5.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
filename = PFILE
filetype = 'ASC'
has_field_separator = 'X'
CHANGING
data_tab = CHRINP[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
PERFORM BA_PLNINP_DATA.
PLNERR[] = PLNTAB[].
DELETE PLNERR WHERE RCD_OK EQ SPACE.
DELETE PLNERR WHERE RCD_OK EQ 'A'.
DELETE PLNTAB WHERE RCD_OK EQ 'N'.
DELETE PLNTAB WHERE RCD_OK EQ 'A'.
TSKERR[] = TSKTAB[].
DELETE TSKERR WHERE RCD_OK EQ SPACE.
DELETE TSKERR WHERE RCD_OK EQ 'A'.
DELETE TSKTAB WHERE RCD_OK EQ 'N'.
DELETE TSKTAB WHERE RCD_OK EQ 'A'.
MATERR[] = MATTAB[].
DELETE MATERR WHERE RCD_OK EQ SPACE.
DELETE MATERR WHERE RCD_OK EQ 'A'.
DELETE MATTAB WHERE RCD_OK EQ 'N'.
DELETE MATTAB WHERE RCD_OK EQ 'A'.
OPSERR[] = OPSTAB[].
DELETE OPSERR WHERE RCD_OK EQ SPACE.
DELETE OPSERR WHERE RCD_OK EQ 'A'.
DELETE OPSTAB WHERE RCD_OK EQ 'N'.
DELETE OPSTAB WHERE RCD_OK EQ 'A'.
CHRERR[] = CHRTAB[].
DELETE CHRERR WHERE RCD_OK EQ SPACE.
DELETE CHRERR WHERE RCD_OK EQ 'A'.
DELETE CHRTAB WHERE RCD_OK EQ 'N'.
DELETE CHRTAB WHERE RCD_OK EQ 'A'.
LOOP AT ERRTAB.
LOOP AT PLNTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
PLNTAB-RCD_OK = 'N'.
PLNTAB-MSG = 'A record on this plan has an error'.
MODIFY PLNTAB INDEX W_TABIX.
MOVE-CORRESPONDING PLNTAB TO PLNERR.
APPEND PLNERR. CLEAR PLNERR.
ENDLOOP.
LOOP AT TSKTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
TSKTAB-RCD_OK = 'N'.
TSKTAB-MSG = 'A record on this plan has an error'.
MODIFY TSKTAB INDEX W_TABIX.
MOVE-CORRESPONDING TSKTAB TO TSKERR.
APPEND TSKERR. CLEAR TSKERR.
ENDLOOP.
LOOP AT MATTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
MATTAB-RCD_OK = 'N'.
MATTAB-MSG = 'A record on this plan has an error'.
MODIFY MATTAB INDEX W_TABIX.
MOVE-CORRESPONDING MATTAB TO MATERR.
APPEND MATERR. CLEAR MATERR.
ENDLOOP.
LOOP AT OPSTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
OPSTAB-RCD_OK = 'N'.
OPSTAB-MSG = 'A record on this plan has an error'.
MODIFY OPSTAB INDEX W_TABIX.
MOVE-CORRESPONDING OPSTAB TO OPSERR.
APPEND OPSERR. CLEAR OPSERR.
ENDLOOP.
LOOP AT CHRTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
CHRTAB-RCD_OK = 'N'.
CHRTAB-MSG = 'A record on this plan has an error'.
MODIFY CHRTAB INDEX W_TABIX.
MOVE-CORRESPONDING CHRTAB TO CHRERR.
APPEND CHRERR. CLEAR CHRERR.
ENDLOOP.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM BA_PLNINP_DATA *
*---------------------------------------------------------------------*
FORM BA_PLNINP_DATA.
W_MATNR = PLNINP-IMATNR.
APPEND TSKTAB.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM C_BUILD_PLAN_BAPI *
*---------------------------------------------------------------------*
FORM C_BUILD_PLAN_BAPI.
LOOP AT PLNTAB.
W_TABIX = SY-TABIX.
PERFORM INIT_WORKING_FIELDS_ITABS.
PERFORM BUILD_PLANDATA.
ENDLOOP.
LOOP AT ERRTAB.
LOOP AT PLNTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
PLNTAB-RCD_OK = 'N'.
PLNTAB-MSG = ERRTAB-MSG.
MODIFY PLNTAB INDEX W_TABIX.
MOVE-CORRESPONDING PLNTAB TO PLNERR.
APPEND PLNERR. CLEAR PLNERR.
ENDLOOP.
LOOP AT TSKTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
TSKTAB-RCD_OK = 'N'.
TSKTAB-MSG = ERRTAB-MSG.
MODIFY TSKTAB INDEX W_TABIX.
* MOVE-CORRESPONDING TSKTAB TO TSKERR.
* APPEND TSKERR. CLEAR TSKERR.
ENDLOOP.
LOOP AT MATTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
MATTAB-RCD_OK = 'N'.
MATTAB-MSG = ERRTAB-MSG.
MODIFY MATTAB INDEX W_TABIX.
* MOVE-CORRESPONDING MATTAB TO MATERR.
* APPEND MATERR. CLEAR MATERR.
ENDLOOP.
LOOP AT OPSTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
OPSTAB-RCD_OK = 'N'.
OPSTAB-MSG = ERRTAB-MSG.
MODIFY OPSTAB INDEX W_TABIX.
* MOVE-CORRESPONDING OPSTAB TO OPSERR.
* APPEND OPSERR. CLEAR OPSERR.
ENDLOOP.
LOOP AT CHRTAB WHERE IMATNR EQ ERRTAB-IMATNR
AND WERKS EQ ERRTAB-WERKS
AND PLNNR EQ ERRTAB-PLNNR.
W_TABIX = SY-TABIX.
CHRTAB-RCD_OK = 'N'.
CHRTAB-MSG = ERRTAB-MSG.
MODIFY CHRTAB INDEX W_TABIX.
* MOVE-CORRESPONDING CHRTAB TO CHRERR.
* APPEND CHRERR. CLEAR CHRERR.
ENDLOOP.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INIT_WORKING_FIELDS_ITABS *
*---------------------------------------------------------------------*
FORM INIT_WORKING_FIELDS_ITABS.
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_PLANDATA *
*---------------------------------------------------------------------*
FORM BUILD_PLANDATA.
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_TASKDATA *
*---------------------------------------------------------------------*
FORM BUILD_TASKDATA.
TASK-TASK_LIST_GROUP = PLNTAB-PLNNR.
TASK-CHANGE_NO = PLNTAB-AENNR.
TASK-VALID_FROM = PLNTAB-DSTTAG.
TASK-GROUP_COUNTER = TSKTAB-PLNAL.
TASK-DESCRIPTION = TSKTAB-KTEXT.
TASK-PLANT = TSKTAB-WERKS.
TASK-DEL_IND = TSKTAB-DELKZ.
TASK-TASK_LIST_USAGE = TSKTAB-VERWE.
TASK-TASK_LIST_STATUS = TSKTAB-STATU.
TASK-TASK_MEASURE_UNIT = TSKTAB-PLNME.
TASK-DYN_MODIF_LEVEL = TSKTAB-QDYNHEAD.
TASK-DYN_MODIF_RULE = TSKTAB-QDYNREGEL.
TASK-OLD_NUMBER_OF_TASK_LIST = TSKTAB-PLNNR_ALT.
TASK-IDENT_KEY = TSKTAB-SLWBEZ.
TASK-DYN_MODIF_BY_CUSTOMR = TSKTAB-KUNDKZ.
TASK-DYN_MODIF_BY_VENDOR = TSKTAB-LIEFKZ.
TASK-DYN_MODIF_BY_MANUFACT = TSKTAB-HERSTKZ.
TASK-IND_UNITS_EXT_NUMBERING = TSKTAB-EXTNUM.
*CHANGE_NO_TO
*VALID_TO_DATE
*TASK_MEASURE_UNIT_ISO
*LOT_SIZE_FROM
*LOT_SIZE_TO
*RESP_PLANNER_GROUP
*OLD_NUMBER_OF_TASK_LIST
*RECALC_STD_VALUES
*DYN_MODIF_LEVEL
*DYN_MODIF_RULE
*DYN_MODIF_BY_VENDOR
*DYN_MODIF_BY_MANUFACT
*DYN_MODIF_BY_CUSTOMR
*SAMPLE_DRAWING_PROCEDURE
*IND_UNITS_EXT_NUMBERING
*IDENT_KEY
*INSPPOINT_PARTIALLOT_ASSGNMT
*CHANGE_RULE
*OBJECT_CHANGE_TYPE
*PLANNING_WORK_CENTER
*MS_FLAG
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_MATLDATA *
*---------------------------------------------------------------------*
FORM BUILD_MATLDATA.
MATERIALTASKALLOCATION-MATERIAL = MATTAB-MATNR2.
MATERIALTASKALLOCATION-PLANT = MATTAB-WERKS2.
MATERIALTASKALLOCATION-TASK_LIST_GROUP = PLNTAB-PLNNR.
MATERIALTASKALLOCATION-GROUP_COUNTER = TSKTAB-PLNAL.
MATERIALTASKALLOCATION-CHANGE_NO = PLNTAB-AENNR.
MATERIALTASKALLOCATION-VALID_FROM = PLNTAB-DSTTAG.
MATERIALTASKALLOCATION-VENDOR = MATTAB-SLIFNR.
MATERIALTASKALLOCATION-CUSTOMER = MATTAB-KUNNR.
MATERIALTASKALLOCATION-SEARCH_FIELD = MATTAB-SUCHFELD.
*CHANGE_NO_TO
*VALID_TO_DATE
*DEL_IND
*MATERIAL_EXTERNAL
*MATERIAL_GUID
*MATERIAL_VERSION
*MS_OBJECT
*MS_OBJTYPE
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_OPSDATA *
*---------------------------------------------------------------------*
FORM BUILD_OPSDATA.
OPERATION-TASK_LIST_GROUP = PLNTAB-PLNNR.
OPERATION-GROUP_COUNTER = TSKTAB-PLNAL.
OPERATION-CHANGE_NO = PLNTAB-AENNR.
OPERATION-VALID_FROM = PLNTAB-DSTTAG.
OPERATION-ACTIVITY = OPSTAB-VORNR.
OPERATION-WORK_CNTR = OPSTAB-ARBPL.
OPERATION-PLANT = OPSTAB-WERKS.
OPERATION-CONTROL_KEY = OPSTAB-STEUS.
OPERATION-STANDARD_TEXT_KEY = OPSTAB-KTSCH.
OPERATION-DESCRIPTION = OPSTAB-LTXA1.
OPERATION-OPERATION_MEASURE_UNIT = OPSTAB-MEINH.
OPERATION-RECORDING_VIEW = OPSTAB-ERFSICHT.
OPERATION-INSP_POINT_COMPLT_FLOW_VARIANT = OPSTAB-QPPKTABS.
* OPERATION-DENOMINATOR = OPSTAB-UMREN.
* OPERATION-NOMINATOR = OPSTAB-UMREZ.
* OPERATION-BASE_QUANTITY = OPSTAB-BMSCH.
* OPERATION-STD_VALUE_01 = OPSTAB-VGWO1_1.
* OPERATION-STD_UNIT_01 = OPSTAB-VGE01_1.
* OPERATION-ACTTYPE_01 = OPSTAB-LAR01_1.
* OPERATION-STD_VALUE_02 = OPSTAB-VGWO1_2.
* OPERATION-STD_UNIT_02 = OPSTAB-VGE01_2.
* OPERATION-ACTTYPE_02 = OPSTAB-LAR01_2.
* OPERATION-STD_VALUE_03 = OPSTAB-VGWO1_3.
* OPERATION-STD_UNIT_03 = OPSTAB-VGE01_3.
* OPERATION-ACTTYPE_03 = OPSTAB-LAR01_3.
*CHANGE_NO_TO
*VALID_TO_DATE
*DEL_IND
*OPERATION_ID
*OBJ_ID
*OBJECT_TYPE_CIM_RESOURCE
*OPERATION_MEASURE_UNIT_ISO
*STD_UNIT_01_ISO
*STD_UNIT_02_ISO
*STD_UNIT_03_ISO
*ACTTYPE_04
*STD_UNIT_04
*STD_UNIT_04_ISO
*STD_VALUE_04
*ACTTYPE_05
*STD_UNIT_05
*STD_UNIT_05_ISO
*STD_VALUE_05
*ACTTYPE_06
*STD_UNIT_06
*STD_UNIT_06_ISO
*STD_VALUE_06
*USERFIELDS_KEYWORD_ID
ENDFORM.
*---------------------------------------------------------------------*
* FORM BUILD_CHARDATA *
*---------------------------------------------------------------------*
FORM BUILD_CHARDATA.
INSPCHARACTERISTIC-TASK_LIST_GROUP = PLNTAB-PLNNR.
INSPCHARACTERISTIC-CHANGE_NO = PLNTAB-AENNR.
INSPCHARACTERISTIC-GROUP_COUNTER = TSKTAB-PLNAL.
INSPCHARACTERISTIC-ACTIVITY = OPSTAB-VORNR.
INSPCHARACTERISTIC-INSPCHAR = CHRTAB-MERKNR.
INSPCHARACTERISTIC-PRESET_CTRL_INDS_KEY = CHRTAB-VSTEUERKZ.
INSPCHARACTERISTIC-QUANTITATIVE_IND = CHRTAB-QUANTITAT.
INSPCHARACTERISTIC-MSTR_CHAR = CHRTAB-VERWMERKM.
INSPCHARACTERISTIC-PMSTR_CHAR = CHRTAB-WERKS.
INSPCHARACTERISTIC-CHAR_DESCR = CHRTAB-KURZTEXT.
INSPCHARACTERISTIC-SAMPLING_PROCEDURE_IND = CHRTAB-STICHPRVER.
INSPCHARACTERISTIC-SMPL_UNIT = CHRTAB-PROBEMGEH.
INSPCHARACTERISTIC-SMPL_QUANT = CHRTAB-PRUEFEINH.
INSPCHARACTERISTIC-FORMULA_FIELD_1 = CHRTAB-FORMEL1.
* INSPCHARACTERISTIC-INFOFIELD3 = CHRTAB-DUMMY40.
* IF CHRTAB-PUMFKZ1 EQ 'X'.
* INSPCHARACTERISTIC-SCOPE_IND = ' '. " Scope not fixed
* ELSEIF CHRTAB-PUMFKZ4 EQ 'X'.
* INSPCHARACTERISTIC-SCOPE_IND = '='. " Fixed insp scope
* ENDIF.
* INSPCHARACTERISTIC-LW_TOL_LMT_IND = CHRTAB-TOLERUNTEN.
* INSPCHARACTERISTIC-UP_TOL_LMT_IND = CHRTAB-TOLEROBEN.
* INSPCHARACTERISTIC-DEC_PLACES = CHRTAB-STELLEN.
* INSPCHARACTERISTIC-MEAS_UNIT = CHRTAB-MASSEINHSW.
* INSPCHARACTERISTIC-SAMPLING_PROCEDURE_IND = CHRTAB-STICHPR.
* IF CHRTAB-ESTUKZ3 EQ 'X'.
* INSPCHARACTERISTIC-RESULT_RECORDING_TYPE = '+'. " Single value recording
* ENDIF.
* IF CHRTAB-RZWANG4 EQ 'X'.
* INSPCHARACTERISTIC-CONFIRMATION_CATEGORY = 'X'. " Required characteristic
* ENDIF.
* INSPCHARACTERISTIC-CHANGE_DOCUMENTS_REQ = CHRTAB-AENDBELEG.
* IF CHRTAB-DOKUKZ1 EQ 'X'.
* INSPCHARACTERISTIC-DOCU_REQU = ' '. " Documentation not required
* ENDIF.
* INSPCHARACTERISTIC-MEAS_VALUE_CONFIRM_IND = CHRTAB-MESSWERTE.
* IF CHRTAB-DRUCK1 EQ 'X'.
* INSPCHARACTERISTIC-PRINT_IND = ' '. " Print
* ENDIF.
* IF CHRTAB-KEINEFORMEL EQ 'X'.
* INSPCHARACTERISTIC-FORMULA_IND = ' '. " No formula
* ENDIF.
* INSPCHARACTERISTIC-ATTRIBUTE_REQUIRED_IND = CHRTAB-PRUEFKAT.
* INSPCHARACTERISTIC-SMPL_PROCEDURE = CHRTAB-STICHPRVER.
* INSPCHARACTERISTIC-SMPL_UNIT = OPSTAB-MEINH.
* INSPCHARACTERISTIC-SMPL_QUANT = '1'.
* INSPCHARACTERISTIC-RES_ORG = CHRTAB-QERGDATH.
* INSPCHARACTERISTIC-TARGET_VAL = CHRTAB-SOLLWERT.
* INSPCHARACTERISTIC-LW_TOL_LMT = CHRTAB-TOLERANZUN.
* INSPCHARACTERISTIC-UP_TOL_LMT = CHRTAB-TOLERANZOB.
* INSPCHARACTERISTIC-SEL_SET1 = CHRTAB-AUSWMENGE1.
* INSPCHARACTERISTIC-PSEL_SET1 = CHRTAB-AUSWMGWRK1.
* INSPCHARACTERISTIC-CHA_MASTER_IMPORT_MODUS = 'N'.
*OPERATION_ID
*VALID_FROM
*CHANGE_NO
*CHANGE_NO_TO
*VALID_TO_DATE
*DEL_IND
*PMSTR_CHAR
*CHA_MASTER_IMPORT_MODUS
*CHAR_DESCR
*METHOD
*PMETHOD
*TOLERANCE_KEY
*MEAS_VALUE_CONFIRM_IND
*ATTRIBUTE_REQUIRED_IND
*UP_TOL_LMT_IND
*LW_TOL_LMT_IND
ENDFORM.
*---------------------------------------------------------------------*
* FORM CREATE_INSP_PLAN *
*---------------------------------------------------------------------*
FORM CREATE_INSP_PLAN.
ENDFORM.
*---------------------------------------------------------------------*
* FORM D_PRINT_REPORT *
*---------------------------------------------------------------------*
FORM D_PRINT_REPORT.
SKIP 2.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
E_PRINT_LINE = '********* END OF REPORT *********'.
PERFORM JUST_ROUTINE(RSBTCHH0) USING E_PRINT_LINE SY-LINSZ.
WRITE: / E_PRINT_LINE.
ENDFORM.
WRITE: / 'SOURCE DATA:', 14(157) P_FILE1 COLOR COL_NORMAL, 170 ' '.