Qp01 Program
Qp01 Program
INCLUDE Z_QP01_DATA.
INCLUDE Z_QP01_ROUTINES.
INCLUDE Z_QP01MAIN.
*&---------------------------------------------------------------------*
*& Include
Z_QP01_DATA
*&---------------------------------------------------------------------*
*********BAPI_INSPECTIONPLAN_CREATE
TABLES : PLMK,MAPL.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE1 TYPE IBIPPARMS-PATH .
SELECTION-SCREEN END OF BLOCK B1.
DATA : PLNKN TYPE PLNKN .
DATA :BEGIN OF WA_INSPECTION,
*----------------header data---------------------*
MATERIAL(18),
PLANT(4),
VALID_FROM(10),"""key date
PROFILE(7),"I2
GROUP_COUNTER(2),
DESCRIPTIONS(40),""""header description
TASK_LIST_USAGE(3),"""T1
TASK_LIST_STATUS(3),""T1
LOT_SIZE_FROM(13),""T1
LOT_SIZE_TO(13),"""T1
TASK_MEASURE_UNIT(3),"""T1
IDENT_KEY(3),"""T1
DYN_MODIF_LEVEL,""T1
DYN_MODIF_RULE(3),"""T1
SAMPLE_DRAWING_PROCEDURE(8),"""T1-----------------O
*-13-------------------------operations ----------------*
ACTIVITY(4),""T6 """""""""""QM operation
WORK_CNTR(8),""""T3
*PLANNING_WORK_CENTER(8),"""T1
CONTROL_KEY(4),"""T3 T5
DESCRIPTION(40),"""T1---------------------s
*---17------------inspection characters.---------*
INSPCHAR(4),"""""""""""""""mic no
MSTR_CHAR(8),"mic char
PMSTR_CHAR(4),"""""plant
VERSION(6),""version
CHAR_DESCR(40),
TOLERANCE_KEY(4),
DEC_PLACES(3),"Decimal places-------------z
MEAS_UNIT(6),"""""Unit of Measure
TARGET_VAL(16),
LW_TOL_LMT(16),
UP_TOL_LMT(16),"""upper limit
SEL_SET1(8),"""selected set
METHOD(8),"""inspection method
PSEL_SET1(4),""Plant of the Assigned Selected Set
SMPL_PROCEDURE(8),"""sampling procedure
VERSION2(6),"-------------------------Ai
END OF WA_INSPECTION.
DATA : IT_INSPECTION LIKE WA_INSPECTION OCCURS 5 WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& Include
Z_QP01_ROUTINES
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form GET_FILE
*&---------------------------------------------------------------------*
*
GET FILE NAME
*
*----------------------------------------------------------------------*
FORM GET_FILE1 .
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
*
PROGRAM_NAME
*
DYNPRO_NUMBER
*
FIELD_NAME
IMPORTING
FILE_NAME
= SYST-CPROG
= SYST-DYNNR
= ' '
=
P_FILE1 .
ENDFORM.
"GET_FILE1
*&---------------------------------------------------------------------*
*&
Form UPLOAD_FILE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_INSPECTION text
*
-->P_P_FILE1 text
*----------------------------------------------------------------------*
FORM UPLOAD_FILE TABLES IT_INSPECTION STRUCTURE WA_INSPECTION
USING
P_P_FILE1.
*
*
*
*
*
*
IF SY-SUBRC = 1.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '006' RAISING
*
RAISE selection_error.
ELSEIF SY-SUBRC = 2.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '007' RAISING
ELSEIF SY-SUBRC = 5.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '008' RAISING
ELSEIF SY-SUBRC = 6.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '009' RAISING
FILE_OPEN_ERROR
FILE_READ_ERROR
ELSEIF SY-SUBRC = 9.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '012' RAISING
ELSEIF SY-SUBRC = 10.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '013' RAISING
ELSEIF SY-SUBRC = 13.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '014' RAISING
INVALID_TYPE
NO_AUTHORITY
ELSEIF SY-SUBRC = 7.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '010' RAISING UNKNOWN_ERROR
ELSEIF SY-SUBRC = 8.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '011' RAISING
BAD_DATA_FORMAT
HEADER_NOT_ALLOWED
SEPARATOR_NOT_ALLOWED .
ACCESS_DENIED
ELSE .
*MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '005' RAISING OTHERS .
ENDIF.
ENDFORM.
" UPLOAD_FILE
*&---------------------------------------------------------------------*
*&
Form MOVE_DAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_INSPECTION text
*----------------------------------------------------------------------*
FORM MOVE_DAT TABLES
P_IT_INSPECTION STRUCTURE WA_INSPECTION.
DATA : GROUP LIKE MAPL-PLNNR.
DATA : DATE LIKE SY-DATUM.
SORT
P_IT_INSPECTION BY MATERIAL
LOOP AT P_IT_INSPECTION.
MOVE-CORRESPONDING
P_IT_INSPECTION TO WA_INSPECTION.
PROFILE = WA_INSPECTION-PROFILE.
*
*
append : it_task.
clear : it_task.
IT_INSPCHAR-ACTIVITY = WA_INSPECTION-ACTIVITY.
IT_INSPCHAR-INSPCHAR = WA_INSPECTION-INSPCHAR.
IT_INSPCHAR-VALID_FROM = DATE.
IT_INSPCHAR-VALID_TO_DATE = '99991231'.
IT_INSPCHAR-MSTR_CHAR = WA_INSPECTION-MSTR_CHAR.
IT_INSPCHAR-CHAR_DESCR = WA_INSPECTION-CHAR_DESCR.
IT_INSPCHAR-TOLERANCE_KEY = WA_INSPECTION-TOLERANCE_KEY.
IT_INSPCHAR-DEC_PLACES = WA_INSPECTION-DEC_PLACES.
IT_INSPCHAR-METHOD = WA_INSPECTION-METHOD.
IF WA_INSPECTION-PMSTR_CHAR = SPACE.
IT_INSPCHAR-PMETHOD = WA_INSPECTION-PLANT.
ELSE.
IT_INSPCHAR-PMETHOD = WA_INSPECTION-PMSTR_CHAR.
ENDIF.
IT_INSPCHAR-PMSTR_CHAR = WA_INSPECTION-PMSTR_CHAR.
*
*
*
*
*
ENDIF.
IF
WA_INSPECTION-UP_TOL_LMT = SPACE.
IT_INSPCHAR-UP_TOL_LMT = 0.
ELSE.
IT_INSPCHAR-UP_TOL_LMT = WA_INSPECTION-UP_TOL_LMT.
ENDIF.
APPEND : IT_INSPCHAR.
CLEAR : IT_INSPCHAR.
****--------CREATING iNSPECTION PLAN BY CALLING BAPI----------*
*-------------------------------------------------------------*.
AT END OF GROUP_COUNTER.
PERFORM UPLOAD_QP01 .
REFRESH :IT_TASK[],IT_MATTASK[],IT_OPERATION[],IT_INSPCHAR[].
CLEAR : IT_TASK,IT_MATTASK,IT_OPERATION,IT_INSPCHAR,PROFILE.
ENDAT.
CLEAR : P_IT_INSPECTION,WA_INSPECTION.
ENDLOOP.
ENDFORM.
" MOVE_DAT
*&---------------------------------------------------------------------*
*&
Form UPLOAD_QP01
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM UPLOAD_QP01 .
*
*
*
*
*
IMPORTING
GROUP
GROUPCOUNTER
TABLES
TASK
MATERIALTASKALLOCATION
OPERATION
REFERENCEOPERATION
PRODUCTIONRESOURCE
INSPCHARACTERISTIC
TEXTALLOCATION
TEXT
RETURN
INSP_CHAR_VALUES
.
= TGROUP
= TGROUPCOUNTER
= IT_TASK
= IT_MATTASK
= IT_OPERATION
=
=
= IT_INSPCHAR
=
=
= IT_MESSAGE
IF IT_INSPCHAR-MEAS_UNIT NE SPACE .
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT
= IT_INSPCHAR-MEAS_UNIT
LANGUAGE
= SY-LANGU
IMPORTING
OUTPUT
= PLMK-MASSEINHSW
*
EXCEPTIONS
*
UNIT_NOT_FOUND
= 1
*
OTHERS
= 2
.
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.
*---------decimal places.----------------*
PLMK-STELLEN = IT_INSPCHAR-DEC_PLACES.
*-----------change uppar/lower/target values-------*
IF IT_INSPCHAR-TARGET_VAL NE SPACE .
PLMK-SOLLWERT = IT_INSPCHAR-TARGET_VAL.
ENDIF.
IF IT_INSPCHAR-LW_TOL_LMT NE SPACE .
PLMK-TOLERANZOB = IT_INSPCHAR-UP_TOL_LMT.
ENDIF.
IF IT_INSPCHAR-UP_TOL_LMT NE SPACE .
PLMK-TOLERANZUN = IT_INSPCHAR-LW_TOL_LMT.
ENDIF.
UPDATE PLMK.
COMMIT WORK .
CLEAR PLMK.
CLEAR IT_INSPCHAR.
ENDLOOP.
ENDIF.
LOOP AT IT_MESSAGE.
WRITE :/ IT_MESSAGE-MESSAGE.
CLEAR :IT_MESSAGE.
ENDLOOP.
ENDFORM.
" UPLOAD_QP01
*&---------------------------------------------------------------------*
*&
Form UPDATE_UPLOAD
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_MAT text
*----------------------------------------------------------------------*
FORM UPDATE_UPLOAD TABLES
IT_INSPECTION STRUCTURE WA_INSPECTION .
DATA : IDX LIKE SY-TABIX,
UOM LIKE MARA-MEINS.
DELETE
LOOP AT IT_INSPECTION.
IDX = SY-TABIX.
IF IT_INSPECTION-ACTIVITY = SPACE .
MOVE
: WA_INSPECTION-MATERIAL TO IT_INSPECTION-MATERIAL,
WA_INSPECTION-PLANT TO IT_INSPECTION-PLANT,
WA_INSPECTION-VALID_FROM TO IT_INSPECTION-VALID_FROM,
WA_INSPECTION-PROFILE TO IT_INSPECTION-PROFILE,
WA_INSPECTION-GROUP_COUNTER TO IT_INSPECTION-GROUP_COUNTER,
WA_INSPECTION-DESCRIPTION TO IT_INSPECTION-DESCRIPTION,
WA_INSPECTION-TASK_LIST_USAGE TO IT_INSPECTIONTASK_LIST_USAGE,
WA_INSPECTION-TASK_LIST_STATUS TO IT_INSPECTIONTASK_LIST_STATUS,
WA_INSPECTION-LOT_SIZE_FROM TO IT_INSPECTION-LOT_SIZE_FROM,
WA_INSPECTION-LOT_SIZE_TO TO IT_INSPECTION-LOT_SIZE_TO,
WA_INSPECTION-TASK_MEASURE_UNIT TO IT_INSPECTIONTASK_MEASURE_UNIT,
WA_INSPECTION-IDENT_KEY TO IT_INSPECTION-IDENT_KEY,
WA_INSPECTION-DYN_MODIF_LEVEL TO IT_INSPECTIONDYN_MODIF_LEVEL,
WA_INSPECTION-DYN_MODIF_RULE TO IT_INSPECTIONDYN_MODIF_RULE,
WA_INSPECTION-SAMPLE_DRAWING_PROCEDURE TO IT_INSPECTIONSAMPLE_DRAWING_PROCEDURE,
WA_INSPECTION-ACTIVITY TO IT_INSPECTION-ACTIVITY,
WA_INSPECTION-WORK_CNTR TO IT_INSPECTION-WORK_CNTR,
WA_INSPECTION-CONTROL_KEY TO IT_INSPECTION-CONTROL_KEY,
WA_INSPECTION-DESCRIPTIONS TO IT_INSPECTION-DESCRIPTIONS.
MODIFY IT_INSPECTION INDEX IDX .""" transporting
material GROUP_COUNTE
R.
ELSE .
SELECT SINGLE MEINS INTO IT_INSPECTION-TASK_MEASURE_UNIT
FROM MARA
WHERE
MATNR = IT_INSPECTION-MATERIAL.
MODIFY IT_INSPECTION INDEX IDX .
MOVE-CORRESPONDING IT_INSPECTION TO WA_INSPECTION.
ENDIF.
CLEAR IT_INSPECTION.
ENDLOOP.
ENDFORM.
" UPDATE_UPLOAD
*&---------------------------------------------------------------------*
*& Include
Z_QP01MAIN
*&---------------------------------------------------------------------*
*---------------------------------start-of-selection------------------*
START-OF-SELECTION.