Inspection plan QP01
Please advise do we need to prepare the insp plan for raw materials as well as for fert materials using qp01 t-code?. Because for fert materials, we need to assign the MICu2019s in routing, so do we need to prepare qp01 for fert materials? Please advise whether we should create qp01 for raw materials and as well as for fert materials in case we need 01 and 03 insp types.
HI
1. You have to create inspection plan in QP01 for Raw materials with inspection type 01
2. You have to create inspection plan for FERT with inspection type 03 in Routing only.
3. For the FERT material with inspection type 04, you need to crerate in QP01.
Regards
Bala
Similar Messages
-
Lsmw by bapi for qm to upload inspection plan qp01
I want to upload Inspection plan by Transaction qp01
<Edited by Moderator - Bhavesh Kantilal. Removed all Capitals post. User has been warned and request to move this thread to the appropriate forum has been raised.>
Edited by: Bhavesh Kantilal on Dec 20, 2008 1:50 AMPost it here:
ABAP Connectivity
Also, Please do not use all CAPS.
It is understood as shouting at people.
Regards,
Ravi -
Master data changes not updated in Inspection Plan- QP01
Hi
We created all the QM master data . After that we did some changes in inspection chars and in the sampling master data.but the values are not reflecting in the Inspection plan . How to update the changes in the inspection plan. We are trying to find indIvidual as well as Mass update
Any input will he highly appreciated
Thanks
JJDear JJ
Another easy method will be maintaining MIC as referenced mic. instead of maintaining it as complete copy model you can make it referenced. any changes in the mic can be updated automaticalyin the inspection plan using the referenced functionality.
The issue being wherever the mic goes will be changed,
Regards
gajesh -
Long text problem while uploading Inspection plan through BDC.
Hi,
I am facing some problem while uploading the inspection plan. There are few MICs for which we are having long text, while uploading the inspection plan through BDC - some other long text is getting copied into the MIC's long text. After checking I came to know that in function module, read_text - some text which is stored in ABAP memory is getting copied into the inspection plan.
I am working in SAP release 4.7. I have checked with SAP notes: 97419, but it is also not satisfying.
Waiting for quick solution.
Thanks in advance.
FahiéHi a®s,
Thanks a lot for your kind reply.
My requirement is I want to maintain long text for few MICs (which are not having long texts at MIC level) in inspection plan (QP01).
When I am trying to manually assign the MIC's to inspection plan (QP01), long text is copied whereas I am not clicking the long text icon in (QP01). Long text is not maintained in MIC level, still some long text is copied to this MIC. This was also happening while uploading the inspection plan thro' BDC.
I believe what you have mentioned about function module SAVE_TEXT cannot be used here since long text is already copied before we pass the long text. Also if we pass some long text, still apart from the long text what we have passed there is some other long text copied (extra long text).
Waiting for quick solution.
Thanks in advance.
Fahié -
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 -
Error in LSMW in Uploading Inspection Plan in QP01
Hi All,
I am facing problem when executing LSMW, I am Uploading Inspection Plan in QP01 transaction using Direct Input methos. The problem is on 13th step :Error that I get is 'No profile with entry tool for task list / / / in session INSPECTION_OBJ', here INSPECTION_OBJ is the name of the session. I have given the constant value of field profile (BIPKO-PROFIDNETZ) in mapping step and also activated check box 'entry tool' under profile to remove this error. But in that case i can pass only the header data while processing the session and control does not get into Operation and characteristic screen.
Can anyone pls help me..
Thanks in advance...You might need to redo the recording all over again, BDC has plentty of scenario for screen selection to go wrong, so can't really tell what cause your problem based on your desc. I have been stop using BDC to uplaod material since 5 years ago, I always use Direct input in LSMW and it works much better. I recomend you try the Direct input method instead of BDC if still getting problem.
-
Hi,
I am trying to upload inspection plan master data in QP01 tcode.
I was given a program in BDC which does the same. but the problem with this program is that....its not updating inspection characteristics after 13th record. line is not getting incremented. Below is my code .plz help
page_count is initialized to zero.
IF WRK-NUMB_LOOP > 1.
PERFORM F_DYNPRO USING:
' ' TRQPAS_SEL_FLG ' '.
ENDIF.
(This below part is branced out when 13 records are processed....otherwise it skips this and does the normal process)
IF WRK-NUMB_LOOP > 13.
PAGE_COUNT = INCR + ( WRK-NUMB_LOOP * 10 ).
INCR = PAGE_COUNT.
MOVE 2 TO WRK-NUMB_LOOP.
PERFORM F_DYNPRO USING:
'X' 'SAPLQPAA' '0150',
' ' 'RQPAS-AB_MKNR' INCR,
'X' 'SAPLQPAA' '0150'.
ENDIF.
TRQPAS_SEL_FLG+14(2) = WRK-NUMB_LOOP.
TPLMKB_VERWMERKM+16(2) = WRK-NUMB_LOOP.
TRQPAS_QUANTITAT+16(2) = WRK-NUMB_LOOP.
TRQPAS_QUALITAT+15(2) = WRK-NUMB_LOOP.
PERFORM F_DYNPRO USING:
' ' TRQPAS_SEL_FLG 'X',
' ' TPLMKB_VERWMERKM INTQPMK-MKMNR.
(few more performs are here)(when branced out for 13 records...its not performing the below dynpro performs..)
IF PAGE_COUNT > 0.
SUBTRACT 1 FROM WRK-NUMB_LOOP. "TLDD
TRQPAS_SEL_FLG+14(2) = WRK-NUMB_LOOP.
ENDIF.
CLEAR PAGE_COUNT.
wrk-numb_loop increments after one record is completely processed.
After getting to 13th line my program is not reading the perform dynpro.....code ...
any help is appreciated.There is no such direct mapping table, cross-table or Function module that describes how the Qualitative/Quantative fields are populated.
SAP follows certain mapping to populate the values for these fields this can be cheked in SCN for Qualitative and Quantitative control indicators mapping.
Secondly to update these indicators in Inspection plan load, you can use the STEUERKZ field value from QPMK table.
This field is concatenation of the 28 control indicators (QMKST structure for Quali/Quantitative fields).
So while uploading the data for Inspection plan, Inspection chracteristics are updated in system first where STEUERKZ can be updated.
Vice versa to know what each indicator value signifies in
the field QPMK-STEUERKZ, we can use the function module QSS0_QMKST_RQMST.
Regards,
Nidhi -
BDC - Creating Inspections Plans using T-Code QP01
Hi All,
I want to Create Inspection Plans using QP01 transaction using BDC.
It having 4 screens. Third and Fourth screens having line item details.
I did recording. Upto First and second screens data is populating properly, coming to third screen data is not taking even though bdctable having data (in debug mode i found). I don't know hw to resolve this problem.
Can u please explain hw to populate line-item details, possible give some example coding .
Regards,
PrabhakarHi,
If you are comfortable using function modules then you will not have any difficulty in using the BAPI, only thing we need to take care of the following, refer the following this is not using the bapi for Inspection plan, this is done for different purpose, still you can refer this and use accordingly,
Data declarations,
DATA: TOPNODEONLY LIKE BAPICO_GROUP-TOPNODEONLY,
RETURN LIKE BAPIRET2,
LT_HIERARCHYNODES LIKE BAPISET_HIER OCCURS 0,
LT_HIERARCHYVALUES LIKE BAPI1117_VALUES OCCURS 0,
LS_HIERARCHYNODES LIKE BAPISET_HIER,
LS_HIERARCHYVALUES LIKE BAPI1117_VALUES,
LV_FLAG TYPE I,FLAG.
DATA: BEGIN OF ORDERS OCCURS 0,
ORDER_GROUP TYPE GRPDYNP-NAME_COALL,
DESC(30),
ORDER TYPE GRPVALUES-VFROM,
END OF ORDERS.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = FILENAME
FILETYPE = 'DAT'
TABLES
DATA_TAB = ORDERS.
SORT ORDERS BY ORDER_GROUP ORDER.
LOOP AT ORDERS.
IF LV_FLAG NE 1.
TRANSLATE ORDERS-ORDER_GROUP TO UPPER CASE.
LS_HIERARCHYNODES-GROUPNAME = ORDERS-ORDER_GROUP.
LS_HIERARCHYNODES-DESCRIPT = ORDERS-DESC.
LS_HIERARCHYNODES-HIERLEVEL = 0.
LS_HIERARCHYNODES-VALCOUNT = 0.
APPEND LS_HIERARCHYNODES TO LT_HIERARCHYNODES.
LV_FLAG = 1.
ENDIF.
CLEAR LS_HIERARCHYNODES.
LS_HIERARCHYNODES-GROUPNAME = ORDERS-ORDER.
LS_HIERARCHYNODES-HIERLEVEL = 1.
LS_HIERARCHYNODES-VALCOUNT = 0.
APPEND LS_HIERARCHYNODES TO LT_HIERARCHYNODES.
AT END OF ORDER_GROUP.
FLAG = 'X'.
ENDAT.
IF FLAG = 'X'.
BAPI is called to create Internal Order group in the system
CALL FUNCTION 'BAPI_INTERNALORDRGRP_CREATE'
TABLES
HIERARCHYNODES = LT_HIERARCHYNODES
HIERARCHYVALUES = LT_HIERARCHYVALUES.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CLEAR : LT_HIERARCHYNODES[], LS_HIERARCHYNODES.
CLEAR : LV_FLAG,FLAG.
ENDIF.
ENDLOOP.
Hope this helps,
Rgds, -
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. -
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. -
We are trying to copy an inspection plan but continue to get messages that say CP 284 Unit KG cannot be converted to unit EA from material master 1129348
However the material listed is not on the material assignment list and we can not find it associated to the inpsection plan. Has anyone seen this, or is there someone besides the assignment list that we need to look? Once we maintianed the material conversions in the material master it bypassed the error but we got the same error for another material not associated to the material assignment list. We need help finding where these materials are coming from. We would greatly appreciate any assistance.I think the problem is that you are specifying a material number in the initial QP01 screen when creating/copying the inspection plan. The issue is that the plan you are using as a template, has a different BUOM in it then the material specified in the initial screen of QP01.
You either need to select an inspection plan with the same BUOM as the material referenced in the initial screen, or create/copy the plan with out reference to a material. This of course results in a plan with no material assignments so don't forget to go back in and add the material to the assignments list.
Craig -
QP01 Create inspection plan BAPI
Dear experts,
I am trying to create Inspection plan, by using BAPI_INSPECTIONPLAN_CREATE, but it is not working always giving some error. I can create with same data manually in QP01.
Can anyone please help.closed thread as no answer recvd
-
QP01 Inspection Plan Charecteristics....
Hi all,
I am uploading QP01 Inspection plan, in that inspection charecteristics after 16th row the data is not inserting and giving errors, i use entry RQPAS-ENTRY_ACT..
not usable Can any one send me right way to upload more than 16 Inspection charecteristics...
thanks...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'
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'
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.
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 '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.
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 'BDC_CURSOR'
'PLMKB-QERGDATH'.
PERFORM BDC_FIELD USING 'PLMKB-QERGDATH'
'01'. " Previous Inspection Lot
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 -
Error while creating Inspection plan
Hi,
While creating inspection plan in QP01, system is showing error "Material type ZROH is not defined for task list type Q''
Please help me to solve the error.
Thanks
PrasantHi,
This is due to the configuration error,
Just use T.Code OP50
Create an entry for task list type "Q" with material type "ZROH" and save,
Then try creating a Quality Inspection Plan, it will work
Regards
Merwyn -
How to progammatically get Inspection Characteristics from Inspection Plan
How do I programmatically get Inspection Characteristics from an inspection plan? I am currently getting inspection characteristics from inspection lots via a QM-IDI RFC call (QIRF_SEND_REQUIREMENTS_GET_DAT2), but if the Inspection Characteristic is not in an inspection lot, I don't get it via the RFC call. What BAPI/RFC/IDOCS mechanism can I use from an external subsystem (VB.NET app) to get inspection characteristics (Spec Limits, Target, Operation, Activity) associated with a material in an inspection plan?
Thanks,
EdThe problem is the SAP system that my external subsystem (VB.NET application using QM-IDI) is interfacing with does not have inspection lots (and the customer is not willing to add inspection lots), so the QM-IDI RFC that I'm using (QIRF_SEND_REQUIREMENTS_GET_DAT2) does not return the inspection characteristics (spec limits, etc) that I require. My customer creates a reference (QP11) with inspection characteristics, then attaches the reference to a Material (QP01). When I try to get the inspection characteristics for the material via QIRF_SEND_REQUIREMENTS_GET_DAT2, I don't get the inspection characteristics because there is no inspection lot associated with the material and inspection characteristics.
The design is for my external subsystem to do the Material Inspection Characteristic valuation, and then send the valuation results back to SAP. Is there a way to get Material Inspection Characteristics and then send the results back given the SAP setup I described above?
Thanks,
Ed
Maybe you are looking for
-
I never set one im trying to reset my ipod 4 8gb and i have no idea what it is help me!
-
List support in TLF 2.0. <s:list id="list1" listStylePosition="outside"> <s:li>Item 1</s:li> <s:li>Item 2</s:li> <s:li>Item 3</s:li> </s:list> My question is how i write above code piece in html. I try this <ul>
-
MB_MIGO_BADI and use of local class of SAPLMIGO
Hello I used the BADI MB_MIGO_BADI and methode LINE_MODIFY to change all i want on the ITEM. That's OK and all is working. But, because there is a but...I'd like to check if the item fields are input fields, invisible fieds, etc, etc , exactly like
-
Hello: Standard SAP does not clear (marked as cashed) payroll checks. I have a customized transaction that was recommended by an SAP OSS notes. It works great in the foreground, it cancelled when I try to run it in the background. Does anyone has b
-
Upgred my wag200G on my computer without internet connection
I was able to download the wag200 firmware upgrade but the problem is extension is in img. As per advice I need to connect using my linkys but I cannot connect to internet. Is there a site/link where I can download the upgrade using other computer th