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 = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = 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 FILE_OPEN_ERROR .
* RAISE selection_error.
ELSEIF SY-SUBRC = 2.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '007' RAISING FILE_READ_ERROR .

ELSEIF SY-SUBRC = 5.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '008' RAISING INVALID_TYPE .

ELSEIF SY-SUBRC = 6.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '009' RAISING 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 .

ELSEIF SY-SUBRC = 9.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '012' RAISING HEADER_NOT_ALLOWED .
ELSEIF SY-SUBRC = 10.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '013' RAISING SEPARATOR_NOT_ALLOWED .
ELSEIF SY-SUBRC = 13.
MESSAGE ID 'ZQP01' TYPE 'I' NUMBER '014' RAISING 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_INSPECTION-
SAMPLE_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 = TGROUP
GROUPCOUNTER = TGROUPCOUNTER
TABLES
TASK = IT_TASK
MATERIALTASKALLOCATION = IT_MATTASK
OPERATION = IT_OPERATION
* REFERENCEOPERATION =
* PRODUCTIONRESOURCE =
INSPCHARACTERISTIC = IT_INSPCHAR
* TEXTALLOCATION =
* TEXT =
RETURN = IT_MESSAGE .
* INSP_CHAR_VALUES =
.

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_INSPECTION-
TASK_LIST_USAGE,
WA_INSPECTION-TASK_LIST_STATUS TO IT_INSPECTION-
TASK_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_INSPECTION-
TASK_MEASURE_UNIT,
WA_INSPECTION-IDENT_KEY TO IT_INSPECTION-IDENT_KEY,
WA_INSPECTION-DYN_MODIF_LEVEL TO IT_INSPECTION-
DYN_MODIF_LEVEL,
WA_INSPECTION-DYN_MODIF_RULE TO IT_INSPECTION-
DYN_MODIF_RULE,
WA_INSPECTION-SAMPLE_DRAWING_PROCEDURE TO IT_INSPECTION-
SAMPLE_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