cancel
Showing results for 
Search instead for 
Did you mean: 

Re: Certificate Profile QC01

Former Member
0 Kudos

Dear All,

I have a query regarding the master data upload for certificate Profile.Do we need to upload this data using LSMW/BDC. Or we manually create it in the client itself using t-codes qc01 & qc15.

Regards,

Vivek

Accepted Solutions (0)

Answers (5)

Answers (5)

former_member188831
Contributor
0 Kudos

I think we developed bdc program.. if you need i will find the code and share.

Former Member
0 Kudos

Please, that would be of great help.

former_member188831
Contributor
0 Kudos

Please see the below code.

guess it should work for you..see the file structure and change accordingly.

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

*& Report  ZQMC_CERTIFICATE_PROFILE

*&

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

*&

*&

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

REPORT ZQMC_CERTIFICATE_PROFILE NO STANDARD PAGE HEADING.

*Table Declaration.

TABLES:QCVM. "Certificate profile characteristic level

*Types Declaration.

TYPES:BEGIN OF TS_INFILE,

       VORLNR     TYPE QVORLNR,    "Certificate Profile Number

       CTYP       TYPE QZGTYP,     "Certificate Type

       TDFORM     TYPE QCTDFORM,   "Form Name

       SORTNR     TYPE QSORTNR,    "Sort Number

       KATEGORIE  TYPE QCCHARCAT"Characteristic Category for Certificates

       ATNAM      TYPE ATNAM,      "Characteristic Name

       KZHERKWERT(2) TYPE N,"QKZHERKWT,  "Origin of the Characteristic Result on the Certificate

       KZHERKTEXT(2) TYPE N,"QKZHERKTXT, "Origin of Characteristic Short Text

       KZHERKVG(2) TYPE N,"QKZHERKVG,  "Origin of Inspection Specifications

       KZSTRSKIP(2) TYPE N,"QKZSTRSKIP, "Output Strategy for Skip Characteristics

       TEXTELEM(4)   TYPE N,"QCTEXTELEM, "Assignment of a Characteristic to a Form Text Element

       END OF TS_INFILE.

TYPES:BEGIN OF TS_QCVK,

       CTYP TYPE QCVK-CTYP,

       VORLNR TYPE QCVK-VORLNR,

       END OF TS_QCVK.

**Data declarations for work varaibles.

DATA:GV_RC TYPE I,

      W_TITLE TYPE STRING,

      WA_FILETABLE TYPE LINE OF FILETABLE,

      WA_RAW_DATE TYPE TRUXS_T_TEXT_DATA,

      GV_FIELDNAM TYPE BDCDATA-FNAM,

      GV_BDC_REC_POS(2) TYPE N,

      GV_PAGE_DOWN TYPE C.

DATA:BEGIN OF IT_LOGMSG OCCURS 0,

      CTYP TYPE QCVM-CTYP,

      VORLNR TYPE QCVM-VORLNR,

      MESSAGE(100) TYPE C,

      END OF IT_LOGMSG.

*Internal Table Declarations.

DATA:IT_FILETABLE     TYPE FILETABLE,

      IT_INFILE        TYPE TS_INFILE  OCCURS 0 WITH HEADER LINE,

      IT_INFILE_TMP    TYPE TS_INFILE  OCCURS 0 WITH HEADER LINE,

      IT_BDCDATA       TYPE BDCDATA    OCCURS 0 WITH HEADER LINE,

      IT_MSGLOG        LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

      IT_QCVK          TYPE TS_QCVK    OCCURS 0 WITH HEADER LINE.

****************************************************************************

*               SELECTION SCREEN

****************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS:P_FILE LIKE  RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

****************************************************************************

*               INITIALIZATION

****************************************************************************

****************************************************************************

*            AT SELECTION SCREEN                                           *

****************************************************************************

AT SELECTION-SCREEN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE" File on desktop

   CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

     EXPORTING

       WINDOW_TITLE            = W_TITLE

     CHANGING

       FILE_TABLE              = IT_FILETABLE

       RC                      = GV_RC

     EXCEPTIONS

       FILE_OPEN_DIALOG_FAILED = 1

       CNTL_ERROR              = 2

       ERROR_NO_GUI            = 3

       NOT_SUPPORTED_BY_GUI    = 4

       OTHERS                  = 5.

   IF SY-SUBRC <> 0.

     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

   ELSE.

     READ TABLE IT_FILETABLE INTO WA_FILETABLE INDEX 1.

     MOVE WA_FILETABLE TO P_FILE.

   ENDIF.

****************************************************************************

*               START OF SELECTION

****************************************************************************

START-OF-SELECTION.

************************************************************************************************

   PERFORM CLEAR_GLOBAL_DATA.

************************************************************************************************

   PERFORM READ_INPUT_FILE.

************************************************************************************************

   IF NOT IT_INFILE[] IS INITIAL.

     PERFORM CALL_BDC_QC01.

   ENDIF.

************************************************************************************************

   IF NOT IT_LOGMSG[] IS INITIAL.

     PERFORM CALL_DISPLAY_LOGDATA.

   ENDIF.

************************************************************************************************

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

*&      Form  CLEAR_GLOBAL_DATA

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM CLEAR_GLOBAL_DATA.

   CLEAR:IT_INFILE,IT_INFILE[],IT_INFILE_TMP,IT_INFILE_TMP[],IT_BDCDATA,IT_BDCDATA[],

         IT_QCVK,IT_QCVK[],IT_LOGMSG,IT_LOGMSG[].

ENDFORM.                    " CLEAR_GLOBAL_DATA

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

*&      Form  READ_INPUT_FILE

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM READ_INPUT_FILE.

   CLEAR:IT_INFILE,IT_INFILE[],IT_INFILE_TMP,IT_INFILE_TMP[].

************************************************************************************************

   CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

     EXPORTING

       I_LINE_HEADER        = 'X'

       I_TAB_RAW_DATA       = WA_RAW_DATE

       I_FILENAME           = P_FILE

     TABLES

       I_TAB_CONVERTED_DATA = IT_INFILE

     EXCEPTIONS

       CONVERSION_FAILED    = 1

       OTHERS               = 2.

   IF SY-SUBRC NE 0.

     MESSAGE 'File Data not Uploaded' TYPE 'S' DISPLAY LIKE 'E'.

     STOP.

   ELSE.

     IF NOT IT_INFILE[] IS INITIAL.

       LOOP AT IT_INFILE.

         TRANSLATE IT_INFILE-VORLNR TO UPPER CASE.

         TRANSLATE IT_INFILE-CTYP TO UPPER CASE.

         MODIFY IT_INFILE TRANSPORTING VORLNR CTYP.

       ENDLOOP.

       SELECT CTYP

              VORLNR FROM QCVK INTO TABLE IT_QCVK

              FOR ALL ENTRIES IN IT_INFILE

              WHERE CTYP EQ IT_INFILE-CTYP

              AND   VORLNR EQ IT_INFILE-VORLNR.

************************************************************************************************

       LOOP AT IT_INFILE.

         CLEAR IT_LOGMSG.

         READ TABLE IT_QCVK WITH KEY CTYP = IT_INFILE-CTYP

                                     VORLNR = IT_INFILE-VORLNR.

         IF SY-SUBRC EQ 0.

           MOVE:IT_INFILE-CTYP   TO IT_LOGMSG-CTYP,

                IT_INFILE-VORLNR TO IT_LOGMSG-VORLNR,

                'Already Exists the Certificate profile characteristic level Data' TO  IT_LOGMSG-MESSAGE.

           APPEND IT_LOGMSG.

           CLEAR  IT_LOGMSG.

           DELETE IT_INFILE WHERE  VORLNR EQ IT_INFILE-VORLNR AND CTYP EQ IT_INFILE-CTYP.

         ENDIF.

         CLEAR:IT_INFILE,IT_LOGMSG,IT_QCVK.

       ENDLOOP.

************************************************************************************************

       IT_INFILE_TMP[] = IT_INFILE[].

       SORT IT_INFILE_TMP BY VORLNR CTYP SORTNR ASCENDING.

       DELETE ADJACENT DUPLICATES FROM IT_INFILE_TMP COMPARING VORLNR CTYP.

     ENDIF.

   ENDIF.

ENDFORM.                    " READ_INPUT_FILE

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

*&      Form  CALL_BDC_QC01

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM CALL_BDC_QC01.

   LOOP AT IT_INFILE_TMP.

     CLEAR:IT_BDCDATA,IT_BDCDATA[],GV_BDC_REC_POS.

************************************************************************************************

     PERFORM BDC_DYNPRO   USING  'SAPMQCPA' '0100'.

     PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '=ENT1'.

     PERFORM BDC_FIELD    USING  'QCVKEA-VORLNR' IT_INFILE_TMP-VORLNR.

     PERFORM BDC_FIELD    USING  'QCVKEA-CTYP'   IT_INFILE_TMP-CTYP.

************************************************************************************************

     PERFORM BDC_DYNPRO   USING  'SAPMQCPA' '0110'.

     PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '=FREI'.

     PERFORM BDC_FIELD    USING  'USE_SAPSCRIPT' 'X'.

     PERFORM BDC_FIELD    USING  'QCVKEA-TDFORM' IT_INFILE_TMP-TDFORM.

     PERFORM BDC_FIELD    USING  'QCVKEA-NOT_EXIST_SPRAS' 'E'.

************************************************************************************************

     PERFORM BDC_DYNPRO   USING  'SAPMQCPA' '0110'.

     PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '=MKUE'.

     PERFORM BDC_FIELD    USING  'USE_SAPSCRIPT' 'X'.

     PERFORM BDC_FIELD    USING  'QCVKEA-TDFORM' IT_INFILE_TMP-TDFORM.

     PERFORM BDC_FIELD    USING  'QCVKEA-NOT_EXIST_SPRAS' 'E'.

************************************************************************************************

     PERFORM BDC_DYNPRO   USING  'SAPMQCPA'    '0120'.

     PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '/00'.

************************************************************************************************

     CLEAR:GV_BDC_REC_POS.

     LOOP AT IT_INFILE WHERE  VORLNR EQ IT_INFILE_TMP-VORLNR AND CTYP EQ  IT_INFILE_TMP-CTYP.

       CLEAR:GV_FIELDNAM.

************************************************************************************************

       IF GV_BDC_REC_POS GT 16.

         MOVE 'X' TO GV_PAGE_DOWN.

       ENDIF.

       IF GV_PAGE_DOWN EQ 'X'.

         PERFORM BDC_DYNPRO   USING  'SAPMQCPA'    '0120'.

         PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '=P+'.

         PERFORM BDC_DYNPRO   USING  'SAPMQCPA'    '0120'.

         PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '/00'.

         CLEAR:GV_PAGE_DOWN.

         MOVE 1 TO GV_BDC_REC_POS.

       ENDIF.

       GV_BDC_REC_POS = GV_BDC_REC_POS + 1.

************************************************************************************************

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-SORTNR' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-SORTNR.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-KATEGORIE' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-KATEGORIE.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-ATNAM' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-ATNAM.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-KZHERKWERT' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-KZHERKWERT.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-KZHERKTEXT' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-KZHERKTEXT.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-KZHERKVG' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-KZHERKVG.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-KZSTRSKIP' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-KZSTRSKIP.

       CLEAR:GV_FIELDNAM.

       CONCATENATE 'QCVMEA-TEXT_ELEM' '(' GV_BDC_REC_POS ')' INTO GV_FIELDNAM.

       PERFORM BDC_FIELD    USING  GV_FIELDNAM  IT_INFILE-TEXTELEM.

       CLEAR:GV_FIELDNAM.

     ENDLOOP.

************************************************************************************************

     PERFORM BDC_DYNPRO   USING  'SAPMQCPA'    '0120'.

     PERFORM BDC_FIELD    USING  'BDC_OKCODE'  '=SAVE'.

************************************************************************************************

*************Call the QCO1 for Creating the Certificate profile characteristic level************

     PERFORM CALL_QC01_TCODE_CREATE USING IT_INFILE_TMP-VORLNR IT_INFILE_TMP-CTYP.

************************************************************************************************

     CLEAR:IT_BDCDATA,IT_BDCDATA[],GV_BDC_REC_POS.

   ENDLOOP.

ENDFORM.                    " CALL_BDC_QC01

*****************************************************************************************

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

*&      Form bdc_dynpro

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

FORM BDC_DYNPRO USING    PROGRAM

                          SCREEN.

   CLEAR IT_BDCDATA.

   MOVE:PROGRAM TO IT_BDCDATA-PROGRAM,

        SCREEN  TO IT_BDCDATA-DYNPRO,

        'X'     TO IT_BDCDATA-DYNBEGIN.

   APPEND  IT_BDCDATA.

   CLEAR IT_BDCDATA.

ENDFORM.                    "bdc_dynpro

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

*&      Form bdc_field

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

FORM BDC_FIELD USING NAME VALUE.

   CLEAR IT_BDCDATA.

   MOVE:NAME  TO IT_BDCDATA-FNAM,

        VALUE TO IT_BDCDATA-FVAL.

   CONDENSE IT_BDCDATA-FVAL.

   APPEND IT_BDCDATA.

   CLEAR IT_BDCDATA.

ENDFORM.                    "bdc_field

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

*&      Form  CALL_QC01_TCODE_CREATE

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM CALL_QC01_TCODE_CREATE USING P_VORLNR TYPE QVORLNR P_CTYP TYPE QZGTYP.

   DATA:LS_QCVK TYPE QCVK.

   CLEAR:IT_MSGLOG,IT_MSGLOG[],IT_LOGMSG,LS_QCVK.

************************************************************************************************

   CALL TRANSACTION 'QC01' USING IT_BDCDATA

               MODE 'N'

             UPDATE 'A'

             MESSAGES INTO IT_MSGLOG.

   WAIT UP TO 2 SECONDS.

************************************************************************************************

   SELECT SINGLE * FROM QCVK INTO LS_QCVK WHERE CTYP EQ P_CTYP AND VORLNR EQ P_VORLNR.

   IF SY-SUBRC EQ 0.

     MOVE:P_CTYP   TO IT_LOGMSG-CTYP,

          P_VORLNR TO IT_LOGMSG-VORLNR,

          'Certificate profile characteristic level Data, Created Sucessfully.' TO  IT_LOGMSG-MESSAGE.

     APPEND IT_LOGMSG.

     CLEAR  IT_LOGMSG.

   ELSE.

     MOVE:P_CTYP   TO IT_LOGMSG-CTYP,

          P_VORLNR TO IT_LOGMSG-VORLNR,

          'Certificate profile characteristic level Data Not Created' TO  IT_LOGMSG-MESSAGE.

     APPEND IT_LOGMSG.

     CLEAR  IT_LOGMSG.

   ENDIF.

************************************************************************************************

ENDFORM.                    " CALL_QC01_TCODE_CREATE

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

*&      Form  CALL_DISPLAY_LOGDATA

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM CALL_DISPLAY_LOGDATA.

   WRITE:/2 'Certificate Profile', 23 'Certificate Type', 45 'Message'.

   SKIP.

   LOOP AT IT_LOGMSG.

     WRITE:/2 IT_LOGMSG-VORLNR,23 IT_LOGMSG-CTYP , 45 IT_LOGMSG-MESSAGE.

   ENDLOOP.

ENDFORM.                    " CALL_DISPLAY_LOGDATA

Former Member
0 Kudos

Query Resolved

former_member188831
Contributor
0 Kudos

did you worked created a bdc program ? find any bapis or function modules to upload qc01 with characteristics ?

Thanks,

Mahesh.

Former Member
0 Kudos

Hi Mahesh/Vivek, did you had any luck regarding this subject? Could you please provide me with some sample code? Thanks

Former Member
0 Kudos

Dear Vivek,

Sujit is absolutely correct. If your data is huge then go with BDC or LSMW to create Certificate profile.

One thing you can do to unify the data is , create same number of COA Profiles that equals to your inspection plans.

and then assign all the materials to the profile that are assigned to inspection plan.

By doing this you may have to create less profiles.

Regards,

Shyamal

Former Member
0 Kudos

Dear Vivek,

Sujit is absolutely correct. If your data is huge then go with BDC or LSMW to create Certificate profile.

One thing you can do to unify the data is , create same number of COA Profiles that equals to your inspection plans.

and then assign all the materials to the profile that are assigned to inspection plan.

By doing this you may have to create less profiles.

Regards,

Shyamal

Former Member
0 Kudos

Hi

If Cerificate Profiles are more then Better to use BDC as by using LSMW you will not able to uplad the charecteristic level.

or else enter it manually

Also remember that Quality certificatr profile are not master data which can be trnsfered from one client to other.

This is as per my knowledge

Regards

Sujit