Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

*&---------------------------------------------------------------------*

*& Report ZPP_QP01_UPLOAD


*&
*&---------------------------------------------------------------------*
*&for uploading into qp01
*&
*&---------------------------------------------------------------------*
REPORT

ZPP_QP01_UPLOAD NO STANDARD PAGE HEADING


LINE-SIZE 200 MESSAGE-ID ZQP01.

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.

DATA : PROFILE LIKE BAPI1012_CONTROL_DATA-PROFILE,


IT_TASK LIKE BAPI1191_TSK_C OCCURS 5 WITH HEADER LINE,"""1
IT_MATTASK LIKE BAPI1191_MTK_C OCCURS 5 WITH HEADER LINE,"""""2
IT_OPERATION LIKE BAPI1191_OPR_C OCCURS 5 WITH HEADER LINE,"""""3
IT_INSPCHAR LIKE BAPI1191_CHA_C OCCURS 5 WITH HEADER LINE,"""""6
IT_MESSAGE LIKE BAPIRET2 OCCURS 5 WITH HEADER LINE.

DATA : TGROUP LIKE BAPI1191_TSK_C-TASK_LIST_GROUP,


TGROUPCOUNTER LIKE BAPI1191_TSK_C-GROUP_COUNTER.

*-------------data for uploading


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE1.
PERFORM GET_FILE1.

*&---------------------------------------------------------------------*
*& 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.

DATA:FILE1 TYPE STRING.


FILE1 = P_P_FILE1.

*
*

*
*
*
*

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME
= FILE1
FILETYPE
= 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB
= IT_INSPECTION
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 = 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

GROUP_COUNTER ACTIVITY INSPCHAR.

LOOP AT P_IT_INSPECTION.
MOVE-CORRESPONDING

P_IT_INSPECTION TO WA_INSPECTION.

CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'


EXPORTING
INPUT = WA_INSPECTION-VALID_FROM
IMPORTING
OUTPUT = DATE.
*---------------Based on activity create inspection plan--------------------------*
AT NEW ACTIVITY.
CLEAR : GROUP.
SELECT SINGLE PLNNR FROM MAPL
INTO GROUP
WHERE
MATNR = WA_INSPECTION-MATERIAL
AND WERKS = WA_INSPECTION-PLANT.
.
IT_TASK-VALID_FROM = DATE.
IT_TASK-VALID_TO_DATE = '99991231'.
IF GROUP NE SPACE.
IT_TASK-TASK_LIST_GROUP = GROUP.
ENDIF.
IT_TASK-TASK_LIST_USAGE = WA_INSPECTION-TASK_LIST_USAGE.
IT_TASK-PLANT = WA_INSPECTION-PLANT.
IF WA_INSPECTION-GROUP_COUNTER NE SPACE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_INSPECTION-GROUP_COUNTER
IMPORTING
OUTPUT = IT_TASK-GROUP_COUNTER.
ENDIF.
IT_TASK-DESCRIPTION = WA_INSPECTION-DESCRIPTIONS.
IT_TASK-TASK_LIST_STATUS = WA_INSPECTION-TASK_LIST_STATUS.
IT_TASK-TASK_MEASURE_UNIT = WA_INSPECTION-TASK_MEASURE_UNIT .
IT_TASK-LOT_SIZE_FROM = WA_INSPECTION-LOT_SIZE_FROM.
IT_TASK-LOT_SIZE_TO = WA_INSPECTION-LOT_SIZE_TO.
IT_TASK-IDENT_KEY = WA_INSPECTION-IDENT_KEY.
IT_TASK-DYN_MODIF_LEVEL = WA_INSPECTION-DYN_MODIF_LEVEL.
IT_TASK-DYN_MODIF_RULE = WA_INSPECTION-DYN_MODIF_RULE.
IT_TASK-SAMPLE_DRAWING_PROCEDURE = WA_INSPECTIONSAMPLE_DRAWING_PROCEDURE.
*
it_task-PLANNING_WORK_CENTER = wa_inspection-PLANNING_WORK_CENTER.

PROFILE = WA_INSPECTION-PROFILE.
*
*

append : it_task.
clear : it_task.

********Material-Task List Assignment in CREATE_BAPI for Inspection Plans****


**********
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_INSPECTION-MATERIAL
IMPORTING
OUTPUT = IT_MATTASK-MATERIAL.
*
IT_MATTASK-MATERIAL = WA_INSPECTION-MATERIAL.
IF GROUP NE SPACE.
IT_MATTASK-TASK_LIST_GROUP = GROUP.
ENDIF.
IT_MATTASK-PLANT = WA_INSPECTION-PLANT.
IT_MATTASK-VALID_FROM = DATE.
IT_MATTASK-VALID_TO_DATE = '99991231'.
*
*********************************Operations in CREATE-BAPI for Inspection Pla
ns
IT_OPERATION-VALID_FROM = DATE.
IT_OPERATION-VALID_TO_DATE = '99993112'.
IF GROUP NE SPACE.
IT_OPERATION-TASK_LIST_GROUP = GROUP.
ENDIF.
IT_OPERATION-ACTIVITY = WA_INSPECTION-ACTIVITY.
IT_OPERATION-PLANT = WA_INSPECTION-PLANT.
IT_OPERATION-WORK_CNTR = WA_INSPECTION-WORK_CNTR.
IT_OPERATION-CONTROL_KEY = WA_INSPECTION-CONTROL_KEY.
IT_OPERATION-DESCRIPTION = WA_INSPECTION-DESCRIPTION.
IT_OPERATION-OPERATION_MEASURE_UNIT = WA_INSPECTION-TASK_MEASURE_UNIT.
IT_OPERATION-BASE_QUANTITY = 1.
IT_OPERATION-NOMINATOR = 1.
IT_OPERATION-DENOMINATOR = 1.

APPEND : IT_OPERATION ,IT_TASK ,IT_MATTASK.


clear : it_OPERATION ,it_task .
ENDAT.

**********Inspection Characteristics in CREATE-BAPI for Inspection Plans


IF GROUP NE SPACE.
IT_INSPCHAR-TASK_LIST_GROUP = GROUP.
ENDIF.

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.

*
*
*

*
*

CALL FUNCTION 'CONVERSION_EXIT_LUNIT_INPUT'


EXPORTING
INPUT
= WA_INSPECTION-MEAS_UNIT
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT
= IT_INSPCHAR-MEAS_UNIT.
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.
IT_INSPCHAR-MEAS_UNIT = WA_INSPECTION-MEAS_UNIT .
IT_INSPCHAR-SMPL_PROCEDURE = WA_INSPECTION-SMPL_PROCEDURE.
IT_INSPCHAR-SMPL_UNIT = WA_INSPECTION-TASK_MEASURE_UNIT.
IT_INSPCHAR-SMPL_QUANT = 1.
IT_INSPCHAR-CHA_MASTER_IMPORT_MODUS = 'C'.

*----------------additional values to be modified------*


IF WA_INSPECTION-TARGET_VAL = SPACE.
IT_INSPCHAR-TARGET_VAL = 0.
ELSE .
IT_INSPCHAR-TARGET_VAL = WA_INSPECTION-TARGET_VAL.
ENDIF.
IF
WA_INSPECTION-LW_TOL_LMT = SPACE.
IT_INSPCHAR-LW_TOL_LMT = 0 .
ELSE.
IT_INSPCHAR-LW_TOL_LMT = WA_INSPECTION-LW_TOL_LMT.

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 .

*DATA :GROUP LIKE BAPI1191_TSK_C-TASK_LIST_GROUP,


*GROUPCOUNTER LIKE BAPI1191_TSK_C-GROUP_COUNTER.
*
CALL FUNCTION 'BAPI_INSPECTIONPLAN_CREATE'
EXPORTING
*
TESTRUN
= ' '
PROFILE
= PROFILE

*
*
*
*
*

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

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'


* EXPORTING
*
WAIT
=
* IMPORTING
*
RETURN
=
.
IF TGROUP NE SPACE.
WRITE : / 'Inspection plan created with Group ',TGROUP ,'Group Counter',TG
ROUPCOUNTER.
LOOP AT IT_INSPCHAR .

SELECT SINGLE MAX( PLNKN ) FROM PLMK


INTO PLNKN
WHERE
PLNTY = 'Q'
AND PLNNR = TGROUP
AND MERKNR = IT_INSPCHAR-INSPCHAR
AND ERSTELLER = SY-UNAME.

SELECT SINGLE * FROM PLMK


WHERE
PLNTY = 'Q'
AND PLNNR = TGROUP
AND PLNKN = PLNKN
AND MERKNR = IT_INSPCHAR-INSPCHAR.

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

IT_INSPECTION WHERE MATERIAL+0(3) = 'SAP'.

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.

PERFORM UPLOAD_FILE TABLES IT_INSPECTION USING P_FILE1 .


***********************enter material no for blank fields.
PERFORM UPDATE_UPLOAD TABLES IT_INSPECTION.
PERFORM MOVE_DAT TABLES IT_INSPECTION.

You might also like