QP01 - To Create a Inspection Plan
Hi Associates and Consultants,
Have any one worked on T-Code QP01 to create a Inspection Plan Using BDC's or BAPI's.
If so please try to ping me.
Regards,
sg
*& Report ZQMB_QP01_INSP_PLAN_NEW
REPORT ZQMB_QP01_INSP_PLAN_NEW
NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN_NEW.
D A T A D E C L A R A T I O N *
TYPES: BEGIN OF TY_TABDATA,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
AENNR TYPE RC271-AENNR, "Change Number
KTEXT TYPE PLKOD-KTEXT, "Task list description
VERWE TYPE PLKOD-VERWE, "Task list usage
STATU TYPE PLKOD-STATU, "Status
SLWBEZ TYPE PLKOD-SLWBEZ, "Identification for the Inspection Point Field Combination
QPRZIEHVER TYPE PLKOD-QPRZIEHVER, "Sample-Drawing Procedure
END OF TY_TABDATA.
TYPES: BEGIN OF TY_TBCTRL1,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
AENNR TYPE RC271-AENNR, "Change Number
ARBPL TYPE PLPOD-ARBPL, "Work center
STEUS TYPE PLPOD-STEUS, "Control key
LTXA1 TYPE PLPOD-LTXA1, "Operation short text
END OF TY_TBCTRL1.
TYPES: BEGIN OF TY_TBCTRL2,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
AENNR TYPE RC271-AENNR, "Change Number
ARBPL TYPE PLPOD-ARBPL, "Work center
STEUS TYPE PLPOD-STEUS, "Control key
VERWMERKM TYPE PLMKB-VERWMERKM, "Master Inspection Characteristics
PMETHODE TYPE PLMKB-PMETHODE, "Inspection Method
PMTVERSION TYPE PLMKB-PMTVERSION, "Version Number of the Inspection Method
STICHPRVER TYPE PLMKB-STICHPRVER, "Sampling Procedure in Inspection Characteristic
PRUEFEINH(7)," TYPE PLMKB-PRUEFEINH, " Value
PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH, "Unit
STELLEN(3), "TYPE PLMKB-STELLEN, "Number of Places to the Right of a Decimal Point (Accuracy)
MASSEINHSW TYPE RQPAS-MASSEINHSW, "Measurement Unit in Which Quantitative Data Is Maintained
SOLLWERT TYPE QFLTP-SOLLWERT, "Target Value for a Quantitative Characteristic
TOLERANZUN TYPE QFLTP-TOLERANZUN, "Lower Specification Limit
TOLERANZOB TYPE QFLTP-TOLERANZOB, "Upper Specification Limit
DUMMY10 TYPE PLMKB-DUMMY10, "Info Field1
DUMMY20 TYPE PLMKB-DUMMY20, "Info Field2
DUMMY40 TYPE PLMKB-DUMMY40, "Info Field3
END OF TY_TBCTRL2.
TYPES: BEGIN OF TY_CHECK,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
AENNR TYPE RC271-AENNR, "Change Number
END OF TY_CHECK.
Declaration of the Internal Table & Work Area.
DATA: ITST_TABDATA TYPE SORTED TABLE OF TY_TABDATA WITH
UNIQUE KEY MATNR WERKS PLNNR, " AENNR,
" Internal table for Non-Table Control Records
WA_TABDATA TYPE TY_TABDATA,
ITST_TABCTRL1 TYPE TABLE OF TY_TBCTRL1 , " Internal table for the First Screen with Table Control
WA_TABCTRL1 TYPE TY_TBCTRL1,
ITST_TABCTRL2 TYPE TABLE OF TY_TBCTRL2, " Internal table for the Second Screen with Table Control
WA_TABCTRL2 TYPE TY_TBCTRL2,
ITST_CHECK TYPE TABLE OF TY_CHECK, " Internal table to check if record already exists
WA_CHECK TYPE TY_CHECK.
Constants
CONSTANTS: C_QP01 TYPE CHAR4 VALUE 'QP01', " Transaction Name
C_A TYPE CHAR1 VALUE 'A', " Mode
C_S TYPE CHAR1 VALUE 'S'. " Status
Global data Declaration
DATA: GV_YEAR(4) TYPE C, " Year part for Date
GV_MNTH(2) TYPE C, " Month part for Date
GV_DATE(2) TYPE C, " Day part for Date
GV_DATUM(10) TYPE C, " Concatenated Date in dd.mm.yyyy Format
GV_ANS TYPE C, " Answer to Continue
GV_FLAG_NEW(1) TYPE N VALUE 0. " Flag to set if Inspection Plan exists.
Declaration of the Internal Table with Header Line comprising of the uploaded data.
DATA: BEGIN OF IT_FILE_UPLOAD OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data
DATA: END OF IT_FILE_UPLOAD.
Batch Input Data for a single Transaction.
Message of Call Transaction.
DATA: ITST_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE, " BDC Table
ITST_MSGTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. " BDC Messages
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001,
BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK B2,
END OF BLOCK B1.
E V E N T : AT S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
CHANGING
FILE_NAME = P_FNAME.
E V E N T : S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Upload Excel file into Internal Table.
PERFORM UPLOAD_EXCEL_FILE. " To Upload the Excel File
IF NOT IT_FILE_UPLOAD IS INITIAL.
Confirm whether you want to proceed with the Upload.
PERFORM CONFIRM_UPLOAD.
IF GV_ANS EQ '1'.
Organize the uploaded data into another Internal Table.
PERFORM ORGANIZE_UPLOADED_DATA.
Validate if already some Inspection Plan exists for that Material Plant
IF ITST_TABDATA[] IS NOT INITIAL.
SELECT MATNR
WERKS
PLNNR
FROM MAPL
INTO TABLE ITST_CHECK
FOR ALL ENTRIES IN ITST_TABDATA
WHERE MATNR = ITST_TABDATA-MATNR AND WERKS = ITST_TABDATA-WERKS AND
PLNNR = ITST_TABDATA-PLNNR
AND PLNTY = 'Q' AND LOEKZ <> 'X'.
ENDIF.
LOOP AT ITST_CHECK INTO WA_CHECK .
LOOP AT ITST_TABDATA INTO WA_TABDATA WHERE MATNR = WA_CHECK-MATNR
AND WERKS = WA_CHECK-WERKS AND PLNNR = WA_CHECK-PLNNR.
AND AENNR = WA_CHECK-AENNR.
IF SY-SUBRC = 0. " If exists SET FLAG = 1.
GV_FLAG_NEW = 1.
DELETE ITST_TABDATA WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
AND AENNR = WA_CHECK-AENNR.
DELETE ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
AND AENNR = WA_CHECK-AENNR.
DELETE ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
AND AENNR = WA_CHECK-AENNR.
ENDIF.
ENDLOOP.
ENDLOOP.
Kick-start BDC Operation
PERFORM F_START_BDC. " If answer is YES, then start BDC Operations
ENDIF.
ELSE.
LEAVE PROGRAM. " If answer is NO or CANCEL then leave program
ENDIF.
*& Form F_START_BDC
text
--> p1 text
<-- p2 text
FORM F_START_BDC .
DATA : LV_FNAM(20) TYPE C, " Concatenated field name
LV_IDX1(3) TYPE N VALUE 1, " Index For Table Control 1
LV_IDX2(3) TYPE N VALUE 1, " Index For Table Control 2
LV_GOTO(4) TYPE N , " Index for GoTo Line No incase of Page Down
LV_PG(3) TYPE N VALUE 1, " Index for Page No
LV_IDX(3) TYPE N VALUE 1.
IF ITST_TABDATA[] IS INITIAL.
MESSAGE E000. " If Inspection Plan exists for all items in file, show error message
ENDIF.
LOOP AT ITST_TABDATA INTO WA_TABDATA.
LV_IDX2 = '1'.
CLEAR ITST_BDCDATA.
REFRESH ITST_BDCDATA.
GV_YEAR = SY-DATUM+0(4).
GV_MNTH = SY-DATUM+4(2).
GV_DATE = SY-DATUM+6(2).
CONCATENATE GV_DATE '.' GV_MNTH '.' GV_YEAR INTO GV_DATUM.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '8010'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC27M-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC27M-MATNR'
WA_TABDATA-MATNR. " 'kiz0006c'
PERFORM BDC_FIELD USING 'RC27M-WERKS'
WA_TABDATA-WERKS. " 'B001'
PERFORM BDC_FIELD USING 'RC271-PLNNR'
WA_TABDATA-PLNNR. " 60000000-99999999
PERFORM BDC_FIELD USING 'RC271-STTAG'
GV_DATUM. " '16.01.2008'
PERFORM BDC_FIELD USING 'RC271-AENNR'
WA_TABDATA-AENNR. " CHANGE NUMBER
IF GV_FLAG_NEW = 1. " If Exists then diff screen for clicking NEW ENTRIES tab
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC27X-ENTRY_ACT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ANLG'.
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
'1'.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ENDIF.
IF WA_TABDATA-KTEXT <> SPACE.
PERFORM BDC_FIELD USING 'PLKOD-KTEXT'
WA_TABDATA-KTEXT. " 'ZOLMITRIPTAN STAGE C1111'
ENDIF.
PERFORM BDC_FIELD USING 'PLKOD-VERWE'
WA_TABDATA-VERWE. " '5'
PERFORM BDC_FIELD USING 'PLKOD-STATU'
WA_TABDATA-STATU. " '4'
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLKOD-QPRZIEHVER'.
PERFORM BDC_FIELD USING 'PLKOD-SLWBEZ'
WA_TABDATA-SLWBEZ. " '200'
PERFORM BDC_FIELD USING 'PLKOD-QPRZIEHVER'
WA_TABDATA-QPRZIEHVER. " 'ACTIVE'
PERFORM BDC_FIELD USING 'PLKOD-CHRULE'
'1'. " With change number
PERFORM BDC_FIELD USING 'PLKOD-CCOAA'
'1'. " Change Type for all objects
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=VOUE'.
LOOP AT ITST_TABCTRL1 INTO WA_TABCTRL1 WHERE MATNR = WA_TABDATA-MATNR
AND WERKS = WA_TABDATA-WERKS
AND PLNNR = WA_TABDATA-PLNNR.
AND AENNR = WA_CHECK-AENNR.
ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR." OR WA_TABCTRL1-AENNR.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-LTXA1(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'PLPOD-ARBPL(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-ARBPL. " 'qc01'
CONCATENATE 'PLPOD-STEUS(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-STEUS. " 'qm01'
CONCATENATE 'PLPOD-LTXA1(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-LTXA1. " 'opearation1'
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-VORNR(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMUE'.
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
'1'.
PERFORM BDC_FIELD USING 'RC27X-FLG_SEL(01)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
LOOP AT ITST_TABCTRL2 INTO WA_TABCTRL2 WHERE MATNR = WA_TABCTRL1-MATNR AND
WERKS = WA_TABCTRL1-WERKS AND
PLNNR = WA_TABCTRL1-PLNNR.
AND AENNR = WA_TABCTRL1-AENNR.
AND ARBPL = WA_TABCTRL1-ARBPL AND
STEUS = WA_TABCTRL1-STEUS.
LV_GOTO = LV_PG * 140. " For Page Down on Second Table Control
IF LV_IDX2 >= 14.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-AB_MKNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RQPAS-AB_MKNR'
LV_GOTO .
LV_IDX2 = 2.
LV_PG = LV_PG + 1.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ENDIF.
CONCATENATE 'PLMKB-VERWMERKM(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-VERWMERKM. " 'MIC00001'/ ' MIC00050'
IF WA_TABCTRL2-PMETHODE <> SPACE.
CONCATENATE 'PLMKB-PMETHODE(' LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMETHODE. " 'met00001'
CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMTVERSION. " '1'
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER." 'APIFX1'
CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PRUEFEINH. " '20'
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PROBEMGEH. " 'G'
IF WA_TABCTRL2-STELLEN <> SPACE.
CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN." '2'
ENDIF.
IF WA_TABCTRL2-MASSEINHSW <> SPACE.
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
ENDIF.
IF WA_TABCTRL2-SOLLWERT <> SPACE.
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT." '10'
ENDIF.
IF WA_TABCTRL2-TOLERANZUN <> SPACE.
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN." '5'
ENDIF.
IF WA_TABCTRL2-TOLERANZOB <> SPACE.
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB." '15'
ENDIF.
IF WA_TABCTRL2-DUMMY10 <> SPACE.
CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY10." Info Field 1
ENDIF.
IF WA_TABCTRL2-DUMMY20 <> SPACE.
CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY20." Info Field 2
ENDIF.
IF WA_TABCTRL2-DUMMY40 <> SPACE.
CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY40." Info Field 3
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-VERWMERKM'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
LV_FNAM.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMAM'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.
IF LV_IDX2 = 1. " If only one entry then select it
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
'X'.
ELSE.
LV_IDX = LV_IDX2 - 1. " Deselect previous entry and select current one
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
'X'.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0160'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMBW'.
PERFORM BDC_FIELD USING 'PLMKB-KURZTEXT'
'Description'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-QERGDATH'.
PERFORM BDC_FIELD USING 'PLMKB-QERGDATH'
'01'. " Quality Certificate
ELSE.
CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMTVERSION. " '1'
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER." 'APIFX1'
CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PRUEFEINH. " '20'
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PROBEMGEH. " 'G'
IF WA_TABCTRL2-STELLEN <> SPACE.
CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN." '2'
ENDIF.
IF WA_TABCTRL2-MASSEINHSW <> SPACE.
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
ENDIF.
IF WA_TABCTRL2-SOLLWERT <> SPACE.
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT." '10'
ENDIF.
IF WA_TABCTRL2-TOLERANZUN <> SPACE.
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN." '5'
ENDIF.
IF WA_TABCTRL2-TOLERANZOB <> SPACE.
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB." '15'
ENDIF.
IF WA_TABCTRL2-DUMMY10 <> SPACE.
CONCATENATE 'PLMKB-DUMMY10(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY10." Info Field 1
ENDIF.
IF WA_TABCTRL2-DUMMY20 <> SPACE.
CONCATENATE 'PLMKB-DUMMY20(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY20." Info Field 2
ENDIF.
IF WA_TABCTRL2-DUMMY40 <> SPACE.
CONCATENATE 'PLMKB-DUMMY40(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-DUMMY40." Info Field 3
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-QMTB_WERKS'.
PERFORM BDC_FIELD USING 'PLMKB-VERWMERKM'
WA_TABCTRL2-VERWMERKM.
PERFORM BDC_FIELD USING 'PLMKB-QPMK_WERKS'
WA_TABCTRL2-WERKS.
PERFORM BDC_FIELD USING 'PLMKB-QMTB_WERKS'
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
CONCATENATE 'PLMKB-MERKNR('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
LV_FNAM.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMAM'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.
IF LV_IDX2 = 1. " If first entry select it
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
'X'.
ELSE.
LV_IDX = LV_IDX2 - 1. " Deselect Previous entry ans select current one
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
CONCATENATE 'RQPAS-SEL_FLG('LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
'X'.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0160'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMBW'.
PERFORM BDC_FIELD USING 'PLMKB-KURZTEXT'
'Description'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-QERGDATH'.
PERFORM BDC_FIELD USING 'PLMKB-QERGDATH'
'01'. " Quality Certificate
ENDIF.
LV_IDX2 = LV_IDX2 + 1.
ENDLOOP.
ENDON.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-ENTRY_ACT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMBU'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.
CALL TRANSACTION C_QP01 USING ITST_BDCDATA
MODE C_A UPDATE C_S
MESSAGES INTO ITST_MSGTAB. "#EC CI_CALLTA
ENDLOOP.
ENDFORM. " F_START_BDC
*& Form UPLOAD_EXCEL_FILE
text
--> p1 text
<-- p2 text
FORM UPLOAD_EXCEL_FILE .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 24
I_END_ROW = 9999
TABLES
INTERN = IT_FILE_UPLOAD.
ENDFORM. " UPLOAD_EXCEL_FILE
*& Form CONFIRM_UPLOAD
text
--> p1 text
<-- p2 text
FORM CONFIRM_UPLOAD .
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-002
TEXT_QUESTION = TEXT-003
IMPORTING
ANSWER = GV_ANS
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
ENDFORM. " CONFIRM_UPLOAD
*& Form BDC_DYNPRO
text
-->P_0589 text
-->P_0590 text
FORM BDC_DYNPRO USING PROGRAM
DYNPRO.
CLEAR: ITST_BDCDATA.
ITST_BDCDATA-PROGRAM = PROGRAM.
ITST_BDCDATA-DYNPRO = DYNPRO.
ITST_BDCDATA-DYNBEGIN = 'X'.
APPEND ITST_BDCDATA.
ENDFORM. " BDC_DYNPRO
*& Form BDC_FIELD
text
-->P_0729 text
-->P_0730 text
FORM BDC_FIELD USING FNAM
FVAL.
CLEAR: ITST_BDCDATA.
ITST_BDCDATA-FNAM = FNAM.
ITST_BDCDATA-FVAL = FVAL.
APPEND ITST_BDCDATA.
ENDFORM. " BDC_FIELD
*& Form ORGANIZE_UPLOADED_DATA
text
--> p1 text
<-- p2 text
FORM ORGANIZE_UPLOADED_DATA .
DATA : LV_TOTROW TYPE I, " Total Records
LV_ROW TYPE I. " Row No
LV_TOTROW = 1.
SORT IT_FILE_UPLOAD BY ROW
COL.
LOOP AT IT_FILE_UPLOAD.
LV_TOTROW = IT_FILE_UPLOAD-ROW. " To find total rows
ENDLOOP.
LV_ROW = 1.
WHILE LV_ROW <= LV_TOTROW.
LOOP AT IT_FILE_UPLOAD WHERE ROW = LV_ROW.
CASE IT_FILE_UPLOAD-COL.
WHEN '0001'. " Material
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-MATNR = IT_FILE_UPLOAD-VALUE.
WHEN '0002'. " Plant
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-WERKS = IT_FILE_UPLOAD-VALUE.
WHEN '0003'. " Group Key
WA_TABDATA-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-PLNNR = IT_FILE_UPLOAD-VALUE.
WHEN '0004'. " Change Number
WA_TABDATA-AENNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-AENNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-AENNR = IT_FILE_UPLOAD-VALUE.
WHEN '0004'. " Group Counter Desc
WA_TABDATA-KTEXT = IT_FILE_UPLOAD-VALUE.
WHEN '0005'. " Usage
WA_TABDATA-VERWE = IT_FILE_UPLOAD-VALUE.
WHEN '0006'. " Status
WA_TABDATA-STATU = IT_FILE_UPLOAD-VALUE.
WHEN '0007'. " Inspection Point
WA_TABDATA-SLWBEZ = IT_FILE_UPLOAD-VALUE.
WHEN '0008'. " Sample Drawing Procedure
WA_TABDATA-QPRZIEHVER = IT_FILE_UPLOAD-VALUE.
WHEN '0009'. " Work Centre
WA_TABCTRL1-ARBPL = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-ARBPL = IT_FILE_UPLOAD-VALUE.
WHEN '0010'. " Control Key
WA_TABCTRL1-STEUS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-STEUS = IT_FILE_UPLOAD-VALUE.
WHEN '0011'. " Desc
WA_TABCTRL1-LTXA1 = IT_FILE_UPLOAD-VALUE.
WHEN '0012'. " MIC
WA_TABCTRL2-VERWMERKM = IT_FILE_UPLOAD-VALUE.
WHEN '0013'. " Method
WA_TABCTRL2-PMETHODE = IT_FILE_UPLOAD-VALUE.
WHEN '0014'.
WA_TABCTRL2-PMTVERSION = IT_FILE_UPLOAD-VALUE.
WHEN '0014'. " Sampling
WA_TABCTRL2-STICHPRVER = IT_FILE_UPLOAD-VALUE.
WHEN '0015'.
WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE.
WHEN '0016'.
WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE.
WHEN '0017'. " Accuracy
WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.
WHEN '0018'. " Unit
WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.
WHEN '0019'. " Target Value
WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.
WHEN '0020'. " Lower Limit
WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.
WHEN '0021'. " Upper Limit
WA_TABCTRL2-TOLERANZOB = IT_FILE_UPLOAD-VALUE.
WHEN '0022'. " Info Field1
WA_TABCTRL2-DUMMY10 = IT_FILE_UPLOAD-VALUE.
WHEN '0023'. " Info Field2
WA_TABCTRL2-DUMMY20 = IT_FILE_UPLOAD-VALUE.
WHEN '0024'. " Info Field3
WA_TABCTRL2-DUMMY40 = IT_FILE_UPLOAD-VALUE.
ENDCASE.
ENDLOOP.
LV_ROW = LV_ROW + 1.
INSERT WA_TABDATA INTO TABLE ITST_TABDATA .
APPEND WA_TABCTRL1 TO ITST_TABCTRL1.
APPEND WA_TABCTRL2 TO ITST_TABCTRL2.
CLEAR :WA_TABDATA,WA_TABCTRL1,WA_TABCTRL2.
ENDWHILE.
ENDFORM. " ORGANIZE_UPLOADED_DATA
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Free all internal tables
FREE: ITST_TABDATA,
ITST_TABCTRL1,
ITST_TABCTRL2.
Similar Messages
-
Error while creating the Inspection plan by T.C QP01
Hello Friends,
In QP01, When i am trying to create a inspection plan system throwing the error message "The inspection plan identifier exists already. Enter another."
Message no. QP054
But in QP02, When i checked for that material, Plant, Group Number, Group counter, Usage, Status, i didn't find the entry over there.
Actually my requirement is to create a inspection plan for a material and plant combination with speicfic Usage as 61(customer requirement and status 4) but when i am trying to create that system throwing the error message explained above.
Thanks and Regards,
Jitendra Chauhan.
Edited by: jitendra chauhan on Jun 1, 2010 4:28 PMHello Friends,
Thanks for your valuable answers.
I checked in table MAPL, for a particular material, Plant, Group Number and Group Counter, there is no entry.
Where as in table PLKO, for a particular Group Number and Group Counter, entry is there. Actually this Inspection Plan Group Number and Group Counter is assigned to multiple materials through Material Assignment. If i delete the entry for this in table PLKO, than for all rest of the materials also entry will be deleted.
Hence how to resolve this?
Actually for other material number, same plant, same group number and same group counter, entry exist. So can i simply go in the inspection plan of other material,same plant,same group number,same group counter and than inside the material assignment to assign the required material code, plant and the group counter number?
Looking ahead for valuable inputs from the genius.
Thanks and Regards,
Jitendra
Edited by: jitendra chauhan on Jun 2, 2010 8:09 AM -
QP01 - To Create Inspection Plant
Hi Associates and Consultants,
Have any one worked on T-Code QP01 to create a Inspection Plan Using BDC's or BAPI's.
If so please try to ping me.
Regards,
sgHi friend,
check the code
REPORT ZQMB_QP01_INSP_PLAN
NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN.
Description: Upload Program for Create Inspection Plan *
ABAP Name : ZQMB_QP01_INSP_PLAN *
Autor : Vanessa Noronha *
Type : BDC Program for QP01 Transaction. *
Module : QM *
Date : 17 January 2008 *
Transport : D01K948244 -- TR-BDC for QP01 *
Changes (internal Version: Documentation/Info on line level) *
Date Name internal Transp.No. Description *
-Version- *
D A T A D E C L A R A T I O N *
TYPES: BEGIN OF TY_TABDATA,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
KTEXT TYPE PLKOD-KTEXT, "Task list description
VERWE TYPE PLKOD-VERWE, "Task list usage
STATU TYPE PLKOD-STATU, "Status
SLWBEZ TYPE PLKOD-SLWBEZ, "Identification for the Inspection Point Field Combination
QPRZIEHVER TYPE PLKOD-QPRZIEHVER, "Sample-Drawing Procedure
END OF TY_TABDATA.
TYPES: BEGIN OF TY_TBCTRL1,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
ARBPL TYPE PLPOD-ARBPL, "Work center
STEUS TYPE PLPOD-STEUS, "Control key
LTXA1 TYPE PLPOD-LTXA1, "Operation short text
END OF TY_TBCTRL1.
TYPES: BEGIN OF TY_TBCTRL2,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
ARBPL TYPE PLPOD-ARBPL, "Work center
STEUS TYPE PLPOD-STEUS, "Control key
VERWMERKM TYPE PLMKB-VERWMERKM, "Master Inspection Characteristics
PMETHODE TYPE PLMKB-PMETHODE, "Inspection Method
PMTVERSION TYPE PLMKB-PMTVERSION, "Version Number of the Inspection Method
STICHPRVER TYPE PLMKB-STICHPRVER, "Sampling Procedure in Inspection Characteristic
PRUEFEINH(7)," TYPE PLMKB-PRUEFEINH,
PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH,
STELLEN(3), "TYPE PLMKB-STELLEN, "Number of Places to the Right of a Decimal Point (Accuracy)
MASSEINHSW TYPE RQPAS-MASSEINHSW, "Measurement Unit in Which Quantitative Data Is Maintained
SOLLWERT TYPE QFLTP-SOLLWERT, "Target Value for a Quantitative Characteristic
TOLERANZUN TYPE QFLTP-TOLERANZUN, "Lower Specification Limit
TOLERANZOB TYPE QFLTP-TOLERANZOB, "Upper Specification Limit
END OF TY_TBCTRL2.
TYPES: BEGIN OF TY_CHECK,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
END OF TY_CHECK.
Declaration of the Internal Table & Work Area.
DATA: ITST_TABDATA TYPE SORTED TABLE OF TY_TABDATA WITH
UNIQUE KEY MATNR WERKS PLNNR,
" Internal table for Non-Table Control Records
WA_TABDATA TYPE TY_TABDATA,
ITST_TABCTRL1 TYPE TABLE OF TY_TBCTRL1 , " Internal table for the First Screen with Table Control
WA_TABCTRL1 TYPE TY_TBCTRL1,
ITST_TABCTRL2 TYPE TABLE OF TY_TBCTRL2, " Internal table for the Second Screen with Table Control
WA_TABCTRL2 TYPE TY_TBCTRL2,
ITST_CHECK TYPE TABLE OF TY_CHECK, " Internal table to check if record already exists
WA_CHECK TYPE TY_CHECK.
Constants
CONSTANTS: C_QP01 TYPE CHAR4 VALUE 'QP01', " Transaction Name
C_A TYPE CHAR1 VALUE 'E', " Mode
C_S TYPE CHAR1 VALUE 'S'. " Status
Global data Declaration
DATA: GV_YEAR(4) TYPE C, " Year part for Date
GV_MNTH(2) TYPE C, " Month part for Date
GV_DATE(2) TYPE C, " Day part for Date
GV_DATUM(10) TYPE C, " Concatenated Date in dd.mm.yyyy Format
GV_ANS TYPE C, " Answer to Continue
GV_FLAG_NEW(1) TYPE N VALUE 0. " Flag to set if Inspection Plan exists.
Declaration of the Internal Table with Header Line comprising of the uploaded data.
DATA: BEGIN OF IT_FILE_UPLOAD OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data
DATA: END OF IT_FILE_UPLOAD.
Batch Input Data for a single Transaction.
Message of Call Transaction.
DATA: ITST_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE, " BDC Table
ITST_MSGTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. " BDC Messages
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001,
BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK B2,
END OF BLOCK B1.
E V E N T : AT S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
CHANGING
FILE_NAME = P_FNAME.
E V E N T : S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Upload Excel file into Internal Table.
PERFORM UPLOAD_EXCEL_FILE. " To Upload the Excel File
IF NOT IT_FILE_UPLOAD IS INITIAL.
Confirm whether you want to proceed with the Upload.
PERFORM CONFIRM_UPLOAD.
IF GV_ANS EQ '1'.
Organize the uploaded data into another Internal Table.
PERFORM ORGANIZE_UPLOADED_DATA.
Validate if already some Inspection Plan exists for that Material Plant
IF ITST_TABDATA[] IS NOT INITIAL.
SELECT MATNR
WERKS
PLNNR
FROM MAPL
INTO TABLE ITST_CHECK
FOR ALL ENTRIES IN ITST_TABDATA
WHERE MATNR = ITST_TABDATA-MATNR AND WERKS = ITST_TABDATA-WERKS AND
PLNNR = ITST_TABDATA-PLNNR AND PLNTY = 'Q' AND LOEKZ 'X'.
ENDIF.
LOOP AT ITST_CHECK INTO WA_CHECK .
LOOP AT ITST_TABDATA INTO WA_TABDATA WHERE MATNR = WA_CHECK-MATNR
AND WERKS = WA_CHECK-WERKS AND PLNNR = WA_CHECK-PLNNR.
IF SY-SUBRC = 0. " If exists SET FLAG = 1.
GV_FLAG_NEW = 1.
DELETE ITST_TABDATA WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
DELETE ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
DELETE ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.
ENDIF.
ENDLOOP.
ENDLOOP.
Kick-start BDC Operation
PERFORM F_START_BDC. " If answer is YES, then start BDC Operations
ENDIF.
ELSE.
LEAVE PROGRAM. " If answer is NO or CANCEL then leave program
ENDIF.
*& Form F_START_BDC
text
--> p1 text
<-- p2 text
FORM F_START_BDC .
DATA : LV_FNAM(20) TYPE C, " Concatenated field name
LV_IDX1(3) TYPE N VALUE 1, " Index For Table Control 1
LV_IDX2(3) TYPE N VALUE 1, " Index For Table Control 2
LV_GOTO(4) TYPE N , " Index for GoTo Line No incase of Page Down
LV_PG(3) TYPE N VALUE 1. " Index for Page No
IF ITST_TABDATA[] IS INITIAL.
MESSAGE E000. " If Inspection Plan exists for all items in file, show error message
ENDIF.
LOOP AT ITST_TABDATA INTO WA_TABDATA.
LV_IDX2 = '1'.
CLEAR ITST_BDCDATA.
REFRESH ITST_BDCDATA.
GV_YEAR = SY-DATUM+0(4).
GV_MNTH = SY-DATUM+4(2).
GV_DATE = SY-DATUM+6(2).
CONCATENATE GV_DATE '.' GV_MNTH '.' GV_YEAR INTO GV_DATUM.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '8010'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC27M-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC27M-MATNR'
WA_TABDATA-MATNR. " 'kiz0006c'
PERFORM BDC_FIELD USING 'RC27M-WERKS'
WA_TABDATA-WERKS. " 'B001'
PERFORM BDC_FIELD USING 'RC271-PLNNR'
WA_TABDATA-PLNNR. " 60000000-99999999
PERFORM BDC_FIELD USING 'RC271-STTAG'
GV_DATUM. " '16.01.2008'
IF GV_FLAG_NEW = 1. " If Exists then diff screen for clicking NEW ENTRIES tab
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC27X-ENTRY_ACT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ANLG'.
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
'1'.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ENDIF.
IF WA_TABDATA-KTEXT SPACE.
PERFORM BDC_FIELD USING 'PLKOD-KTEXT'
WA_TABDATA-KTEXT. " 'ZOLMITRIPTAN STAGE C1111'
ENDIF.
PERFORM BDC_FIELD USING 'PLKOD-VERWE'
WA_TABDATA-VERWE. " '5'
PERFORM BDC_FIELD USING 'PLKOD-STATU'
WA_TABDATA-STATU. " '4'
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLKOD-QPRZIEHVER'.
PERFORM BDC_FIELD USING 'PLKOD-SLWBEZ'
WA_TABDATA-SLWBEZ. " '200'
PERFORM BDC_FIELD USING 'PLKOD-QPRZIEHVER'
WA_TABDATA-QPRZIEHVER. " 'ACTIVE'
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=VOUE'.
LOOP AT ITST_TABCTRL1 INTO WA_TABCTRL1 WHERE MATNR = WA_TABDATA-MATNR
AND WERKS = WA_TABDATA-WERKS
AND PLNNR = WA_TABDATA-PLNNR.
ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-LTXA1(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'PLPOD-ARBPL(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-ARBPL. " 'qc01'
CONCATENATE 'PLPOD-STEUS(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-STEUS. " 'qm01'
CONCATENATE 'PLPOD-LTXA1(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-LTXA1. " 'opearation1'
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-VORNR(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMUE'.
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
'1'.
PERFORM BDC_FIELD USING 'RC27X-FLG_SEL(01)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
LOOP AT ITST_TABCTRL2 INTO WA_TABCTRL2 WHERE MATNR = WA_TABCTRL1-MATNR AND
WERKS = WA_TABCTRL1-WERKS AND
PLNNR = WA_TABCTRL1-PLNNR.
AND ARBPL = WA_TABCTRL1-ARBPL AND
STEUS = WA_TABCTRL1-STEUS.
LV_GOTO = LV_PG * 140. " For Page Down on Second Table Control
IF LV_IDX2 >= 14.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-AB_MKNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RQPAS-AB_MKNR'
LV_GOTO .
LV_IDX2 = 2.
LV_PG = LV_PG + 1.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ENDIF.
CONCATENATE 'PLMKB-VERWMERKM(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-VERWMERKM. " 'MIC00001'/ ' MIC00050'
IF WA_TABCTRL2-PMETHODE SPACE.
CONCATENATE 'PLMKB-PMETHODE(' LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMETHODE. " 'met00001'
CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMTVERSION. " '1'
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER. " 'APIFX1'
CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PRUEFEINH. " '20'
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PROBEMGEH. " 'G'
CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN. " '2'
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT. " '10'
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN. " '5'
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB. " '15'
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-VERWMERKM'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
ELSE.
CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMTVERSION. " '1'
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER. " 'APIFX1'
CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PRUEFEINH. " '20'
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PROBEMGEH. " 'G'
CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN. " '2'
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT. " '10'
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN. " '5'
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB. " '15'
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-QMTB_WERKS'.
PERFORM BDC_FIELD USING 'PLMKB-VERWMERKM'
WA_TABCTRL2-VERWMERKM.
PERFORM BDC_FIELD USING 'PLMKB-QPMK_WERKS'
WA_TABCTRL2-WERKS.
PERFORM BDC_FIELD USING 'PLMKB-QMTB_WERKS'
ENDIF.
LV_IDX2 = LV_IDX2 + 1.
ENDLOOP.
ENDON.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-ENTRY_ACT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMBU'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.
CALL TRANSACTION C_QP01 USING ITST_BDCDATA
MODE C_A UPDATE C_S
MESSAGES INTO ITST_MSGTAB. "#EC CI_CALLTA
ENDLOOP.
ENDFORM. " F_START_BDC
*& Form UPLOAD_EXCEL_FILE
text
--> p1 text
<-- p2 text
FORM UPLOAD_EXCEL_FILE .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 19
I_END_ROW = 9999
TABLES
INTERN = IT_FILE_UPLOAD.
ENDFORM. " UPLOAD_EXCEL_FILE
*& Form CONFIRM_UPLOAD
text
--> p1 text
<-- p2 text
FORM CONFIRM_UPLOAD .
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-002
TEXT_QUESTION = TEXT-003
IMPORTING
ANSWER = GV_ANS
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
ENDFORM. " CONFIRM_UPLOAD
*& Form BDC_DYNPRO
text
-->P_0589 text
-->P_0590 text
FORM BDC_DYNPRO USING PROGRAM
DYNPRO.
CLEAR: ITST_BDCDATA.
ITST_BDCDATA-PROGRAM = PROGRAM.
ITST_BDCDATA-DYNPRO = DYNPRO.
ITST_BDCDATA-DYNBEGIN = 'X'.
APPEND ITST_BDCDATA.
ENDFORM. " BDC_DYNPRO
*& Form BDC_FIELD
text
-->P_0729 text
-->P_0730 text
FORM BDC_FIELD USING FNAM
FVAL.
CLEAR: ITST_BDCDATA.
ITST_BDCDATA-FNAM = FNAM.
ITST_BDCDATA-FVAL = FVAL.
APPEND ITST_BDCDATA.
ENDFORM. " BDC_FIELD
*& Form ORGANIZE_UPLOADED_DATA
text
--> p1 text
<-- p2 text
FORM ORGANIZE_UPLOADED_DATA .
DATA : LV_TOTROW TYPE I, " Total Records
LV_ROW TYPE I. " Row No
LV_TOTROW = 1.
SORT IT_FILE_UPLOAD BY ROW
COL.
LOOP AT IT_FILE_UPLOAD.
LV_TOTROW = IT_FILE_UPLOAD-ROW. " To find total rows
ENDLOOP.
LV_ROW = 1.
WHILE LV_ROW <= LV_TOTROW.
LOOP AT IT_FILE_UPLOAD WHERE ROW = LV_ROW.
CASE IT_FILE_UPLOAD-COL.
WHEN '0001'. " Material
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-MATNR = IT_FILE_UPLOAD-VALUE.
WHEN '0002'. " Plant
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-WERKS = IT_FILE_UPLOAD-VALUE.
WHEN '0003'. " Group Key
WA_TABDATA-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-PLNNR = IT_FILE_UPLOAD-VALUE.
WHEN '0004'. " Group Counter Desc
WA_TABDATA-KTEXT = IT_FILE_UPLOAD-VALUE.
WHEN '0005'. " Usage
WA_TABDATA-VERWE = IT_FILE_UPLOAD-VALUE.
WHEN '0006'. " Status
WA_TABDATA-STATU = IT_FILE_UPLOAD-VALUE.
WHEN '0007'. " Inspection Point
WA_TABDATA-SLWBEZ = IT_FILE_UPLOAD-VALUE.
WHEN '0008'. " Sample Drawing Procedure
WA_TABDATA-QPRZIEHVER = IT_FILE_UPLOAD-VALUE.
WHEN '0009'. " Work Centre
WA_TABCTRL1-ARBPL = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-ARBPL = IT_FILE_UPLOAD-VALUE.
WHEN '0010'. " Control Key
WA_TABCTRL1-STEUS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-STEUS = IT_FILE_UPLOAD-VALUE.
WHEN '0011'. " Desc
WA_TABCTRL1-LTXA1 = IT_FILE_UPLOAD-VALUE.
WHEN '0012'. " MIC
WA_TABCTRL2-VERWMERKM = IT_FILE_UPLOAD-VALUE.
WHEN '0013'. " Method
WA_TABCTRL2-PMETHODE = IT_FILE_UPLOAD-VALUE.
WHEN '0014'.
WA_TABCTRL2-PMTVERSION = IT_FILE_UPLOAD-VALUE.
WHEN '0014'. " Sampling
WA_TABCTRL2-STICHPRVER = IT_FILE_UPLOAD-VALUE.
WHEN '0016'.
WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE.
WHEN '0017'.
WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE.
WHEN '0015'. " Accuracy
WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.
WHEN '0016'. " Unit
WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.
WHEN '0017'. " Target Value
WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.
WHEN '0018'. " Lower Limit
WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.
WHEN '0019'. " Upper Limit
WA_TABCTRL2-TOLERANZOB = IT_FILE_UPLOAD-VALUE.
ENDCASE.
ENDLOOP.
LV_ROW = LV_ROW + 1.
INSERT WA_TABDATA INTO TABLE ITST_TABDATA .
APPEND WA_TABCTRL1 TO ITST_TABCTRL1.
APPEND WA_TABCTRL2 TO ITST_TABCTRL2.
CLEAR :WA_TABDATA,WA_TABCTRL1,WA_TABCTRL2.
ENDWHILE.
ENDFORM. " ORGANIZE_UPLOADED_DATA
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Free all internal tables
FREE: ITST_TABDATA,
ITST_TABCTRL1,
ITST_TABCTRL2.
Regards,
Raj. -
Create Inspection plan at once for many materials through QP01. Possible?
Dear Friends,
Is it possible to create Inspection Plant for more than one material at onece through QP01 when operation activity and Characteristics are same. I will change the Characteristics specifications afterwards.As suggested in earlier reply you can assign multiple materials to one inspection plan.
But you may still need more than one plan because of
1. UOM is maintained in Inspection plan header. So you have to create different inspection plan if you receive materials in different Unit of measures.
2. Usage is also at header level, so depending on configuration, usage for 01 inspection type may be different from usage for 0101 inspection type.
If you like the user exit approach.
1. Create a dummy material and assign default inspection plan to this material.
2. In the user exit change the inspection plan assignment. Assign inspection plan from this dummy material.
Form us this was a very useful approach during testing or for new material where inspection plan was not created in time.
Once this default inspection plan is assigned, inspection lot is released even without inspection plan. If we need, we can always change the default inspection plan in QA02 transaction before RR
AK Marwadi. -
ERROR WHEN CREATING INSPECTION PLAN
HI GURUS,
WHEN CREATE AN INSPECTION PLAN GET THE FOLLOWING ERROR
Op. 0010, CH 0180: Char. ident. SMS used for QDI several times in task list.
THIS BECAUSE MY CLIENT WANTS TO REPEAT THIS M.I.C TWICE.HOW CAN I SOLVE THIS
REGARDS
AMITHi,
It is not a error message It is a warning message for Use the Same MIC in Multiple time, No problem just you can save the Inspection plan, It will not reflect any problem any where.
Regards,
S.Babusingh -
Creating Inspection plan using BAPI
HI all,
I am using the FM 'BAPI_INSPECTIONPLAN_CREATE'. I am unable to update the Inspection characteristics as multiple entries. Its getting updated only the last item.
Expecting answer from the experts.
Ravi.Hi,
you can check the BAPI_INSPECTIONPLAN_CREATE for the named purpose, the values you named are in the structure BAPI1191_CHA_C please read the BAPI documentation:
Functionality
You can use this function module to create inspection plans and all its subordinate objects.
You can create a key date view and the complete history of an inspection plan. It is useful to have a history when transferring data from external systems.
Example
You want to create an inspection plan with operations and inspection characteristics for key date 01.01.2000. Make an entry in the following tables for each object:
TASK
OPERATION
INSPCHARACTERISTIC
If you want to assign test equipment to the inspection characteristic in field ITEM_NO_OF_PRODUCTION_RESOURCE, you must have assigned this test equipment in PARAMETER PRODUCTIONRESOURCE.
Notes
If no error occurs during the transfer of data, the export parameters GROUP and GROUPCOUNTER contain the key for the task list created. A COMMIT WORK must be executed for writing data to the database.
All errors that have occured are logged in the export parameter RETURN. If there are inconsistencies, the inspection plan to be created is rejected
<b>Reward points</b>
Regards -
How to map revision level materials to already created inspection plan?
Dear All,
I have created single inspection plan for many existing raw materials. Now it has been found that each raw material have different revision level as well as valid from date.
My inspection plan is created on 02.07.2014 and each raw material has different revision level with valid from date which is also very old (like 11.03.2012 for revision level 09).
My Requirement is: how to correct my inspection plan?, so that it will work for each assigned raw material and there will not be any material revision level wise problem created for the inspection lot so that my inspection lot should be created in REL status in QA32 transaction i.e. inspection lot is assigned automatically as per standard SAP functionality.
Thanks,
NarreshHi Amol,
Thanks for your reply.
In this business scenario, we are not creating inspection plan for each raw material because there is similarity in inspection for 40-50 raw materials and total number of raw materials are around 500. This will be very difficult and unnecessarily data creation in the system.
As per my understanding revision level is for material master revision and if material master changes then how it affect so much on inspection plan? also is it means that for every revision in future we will have to create new inspection plan? hence I believe that if I will make back dated inspection plan for raw materials then it may work. Is my understanding is correct?
Expecting much better solution from QM experts.
Thanks,
Narresh -
Usage decision and inspection plan
Hi,
1. Once Usage decision has been done, can we still change it? how can i set that it can be changed?
2.Is it possible to create an Inspection plan for a group of material? for example, I just need to maintain 1 Inspection plan for 30 material. something like it can be group like reference operation set? if yes how? if no, why?
Thank you so much,
raymondHi
Hi,
1. Once Usage decision has been done, can we still change it? how can i set that it can be changed?
Yes UD can be changed anytime but you can not change the stock postng.Also for history in QM view tick on "document req"
2.Is it possible to create an Inspection plan for a group of material? for example, I just need to maintain 1 Inspection plan for 30 material. something like it can be group like reference operation set? if yes how? if no, why?
Yes this is possible through QP01/02 --->in header there is one tab"Material assignment" here you can enter
Group conter (same say "1" ) material & plant.
Same Inspection plan is reffered to the multiple materials.You can add as materials possible.
But remember that Unit of measurement of all materials must be same.
Sujit -
Hi Sapiens,
I am a requirement to upload the Quality Management data through LSMW.
1) Quality Info Recrod
2) Inspection Plan
For the first one, I could able to create Project in LSMW and successfully do for over 200 customers.
I am saying problem in creating and uploading the Inspection Plan data.
I created one inspection plan with a material in QP01 (Tcode), and assigned one customer in "Material Assignment".
We have only hand full of materials (6-10 max) with MICs (10 - 15 max). So I using the same Inspection plan for material and I want to assign all the customer in Inspection plan at "Material Assignment". But at "Run Batch Input Record" in LSMW, it is failing. due to the below errors.
1) Field MAPL-PLNAL(2) is not an input field
2) Field MAPL-MATNR(2) is not an input field
3) Field MAPL-WERKS(2) is not an input field
I understand that these fields are repeating, as these fields are required in "Material Assignment" tab, where I will mention Counter, Matl, Plant and Customer. but it is saying these fields are not for input. If I dont use these fields in Field mapping then it will throw an error during actual recording.
So, I need some inputs on it and all of your suggestions will be valuable.
Awaiting of your reply on this soon.
thanks,
MukeshHi Mukesh,
I would suggest to go for BAPI instead of LSMW for the inspection plans, if possible.
Regards,
Rahul -
Inspection plan - Valid to date
Dear gurus,
Iam using change number to create Inspection plan. System is displaying always Valid to date as "31.12.9999". But as per business requirement of the client, validity period is 3 yrs. How can i change the date.
1) Can i cahnge at change number level?
2) or At inspection plan level?
Iam giving you the details of the field at Inspection plan level.
Transaction: Qp01
screen no: 1200
screen Field name: PLKOD-DATUB
Program name: SAPLCPDI
Package: CP
Pls guide me how to get valid date as 3 yrs plus valid from date.
thanks and regards
Venkat. VHi,
For change number effetivity we can think of another alternative.
1) Create one change number and create a inspection plan with group counter 1.
2) Create another change number and create another inspection plan with group counter 2.Second change number
validity should be from 01.01.2012
3) When a goods receipt is done system automatically assigns the inspection plan with group counter 1 till 31.12.2011.
4) When a goods receipt is done on 01.01.2012 system will create the inspection lot with status created as there are
2 inspection lots from 01.01.2012.
5) Go to the first inspection lot and change the status to 1 and assign second inspection lot which is valid from 01.01.2012.
CSN -
Inspection plan 2985 has been deleted error
Hi,
We ahve created a new material and gr made for that materail as it is coming frist time we have created a inspection plan with QP01, but when i done QA02, chnage inspection lot to calculate the sample quantity system is giving error that Inspection plan 2985 has been deleted , and we are not getting the sample quantity and also the material is not coming in QE51 to update .
regards,
zafarHi Zafar,
Make sure you have assigned the material to a valid inspection plan in transaction QP02, once the material is assigned to the plan then go to QA02 under the inspection spefication tab click the task list / spec button, this will then automatically assign the inspection plan to the inspection lot. If you have assigned the material to multiple plans for the same usage it will give you a pop up selection of which plan to choose. Once the plan is assigned you will be able to see the inspection lot in transaction QE51N.
Regards,
Roderick -
Error while uploading Inspection plan
Dear Friends,
I am creating inspection plans using BDC. The MIChas 2 versions. When i am using version 1, the inspection plan is created. Whereas when i am using MIC version 2 i am getting error "error occured while checking type group".Kindly let me know how do i resolve this.
Regards
VivekHi,
Thanks for the reply. when i am trying to create a inspection plan in other plant, we have 4-5 sampling procesures to select from. But for this perticular plant where we are having problem, its showing only one. How do i get more options?How do i extend a sampling procedure to a new plant.
Vivek
Edited by: vivek mankad on Feb 23, 2010 7:57 AM -
Inspection plan based on workcentre
Dear Sir
We have one plant,in that we are using two interfaces,result recording has to come from this interfaces for that there is only one material code,we are using workcenter in inspection plan and even for that plan there are two operation,so how get the correct plan for the production confirmation
Aim if there is eg X work center its should take X plan
If there is Y workcenter it should take take Y plan
We donu2019t want to use dynamic modification rule ,and in search field in we use some to detect the plan,it will peak but how to segregate that w r t to workcentreDear Kunal,
I am not so sure what sort of user interface you are dealing with.
First of all may I request you to clarify with which inspection type you are working (03, 04, 01 or 89)?
For every operation you can assign only 1 work center and 1 inspection plan may contain several operations.
Inspection characteristics are defined at operation level only. These MICs may also vary operation to operation depending upon nature of operation. For example, if your inspection plan contains u201CDrillingu201D and u201CInner Threadingu201D as 2 operations, you can have diameter as inspection parameter for drilling and pitch for threading. Kindly note this entire information is associated with only 1 plan.
When the inspection lot is created and you click on results tab in QA32, system throws pop up of operations. There you need to choose for which operation you want to perform result recording. If you select Drilling, only diameter will be displayed to you to put observed reading.
To sum up, this mechanism ensures to pick operation specific (work center specific) inspection characteristics. There is no need to create 2 inspection plans if your plan contains 2 operations in a single plan.
Regards,
Anand Rao -
Material specification and Inspection plan - Task list usage
Dear Friends,
In inspection type Task list usage is assigned
For Example
inspection type 01 - usage - 03
inspection type 05 - usage - 05
inspection type 06 - usage - 07
inspection type 10 - usage - 06
In my scenario i want to use all the above inspection type for a product
if i use mateial specification there is no any problem with my Task list usage
If suppose i use inspection plan do i need to create different inspection plan with different usage
or is it possible to create one inspection plan with all the above usage
what about universal usage 03 can i use it
i try to use but system does not triggering inspection lot
can any one Suggest some ideas
Many Thanks & Regards
RajHi Raju,
All of first pls understand the concept of Task list and specification.
If you need to inspection any material in very systematic manner, where you will have well segregated operations where the appropriate Work Centers will be bind and under that hierarchy MIC will be attached. The inspection will be governed by some inspection points. And according the the same Samples will be calculated. When you wanna go with all these functionality then you must have to use Task list (Inspection plan).
And if you don't wish to have these functions then simply go with the material specification.
Now it comes the actual query about task list usage.
If there is a common inspection plan is supposed to be used for all the inspection types for your material then you can prepare only one inspection plan, put ant of the Usage to it it can be 05 or 03 universal. But what you have to do is,
Go to SPRO->Quality Management->Quality Inspection->Inspection Lot Creation->Maintain Inspection Types Execute and set the Task list usage as the same it is set in the inspection plan for all those Inspection types for which that common inspection plan is supposed to be used.
Note:- There is no any link between inspection lot creation and task list usage of inspection plan.
Regards,
Shyamal -
Muliple inspection plan for same material and same usage
Hi,
I need to create multiple inspection plans for same material with same usage.during the inspection lot creation i need to select any one inspection plan.
In standard SAP its not possible.Any user exits available for this..
Regards,
S.P.SelvathangamDear Selvathangam Palanisamy ,
My Dear Shayamal is absolutely correct and we are corrently using this SAP facility. You can create 'N' number of inspectio plans for a material and then whenever the inspection lot will created ( Thru a process order or Manual) then you will get the Inspection Lot Status 'CRTD' (Created mode) then you have to select your Inspection Task list manually by two way...
Either go to QA02 and then select it from the list of multiple plans.
Or you can directly go from QA32 ...select your inspection lot row and directly click on the Inspection Lot icon to go directly to the inspection lot window to slect the Task list.
Further there is no need to remove the Automatic Assignment from the QM View of the Material Master as if there is only one task List then system will automatically assign the TASK LIST, if you deselect it then you have to select in every case.
Thanks
Maybe you are looking for
-
How do I change the color of one of my calendars
My calendar for work changed to a very bright blue (by itself). How do I change back to the original red color it had?
-
Trigger Application successful but with no transfer
Hello, I am using CRS 5.01 I am sending callers to another application once we close. Once the call is sent to the Trigger Application step. The call is then fowarded successfully but I do not hear the next script. 1. I created the Application and
-
when i am syncing all my music and videos it isn't putting them all there like it will only put 974 songs out of 5250 items any idears that would fix and i have already tried restoreing it too
-
Is a JMF client dl required?
I am looking into developing a system that may use JMF. My very simple question (albiet one that I don't yet have a clear answer on) is: Does a client viewing an applet have to have d/led JMF in order to have the applet run correctly?
-
Anyone know where I can get a program that'll tell me...
...my mouses screen position? For example: I click...it displays somehow to me, it's x,y coords on my screen... I really need this badly, and hopefully soon and quickly :) Either someone knowing where I can get a prog that does this, or maybe someone