*&---------------------------------------------------------------------*
*& Report  ZSAM_QDL2_BDC_TEST
*&
*&---------------------------------------------------------------------*
*& Note 86590 - Changing quality level via 'CALL TRANSACTION USING' 참조
*&
*& Changing the quality level in the call mode is now supported.
*& You can now call the transaction 'Change quality level' via the
*& ABAP/4 statement 'CALL TRANSACTION 'QDL2' USING itab.Data transfer
*& is carried out by means of the internal table ITAB,
*& which contains screens in the batch-input format.
*& In call mode, the quality level determines the missing key fields
*& and the control fields via SET/GET parameter.These must be supplied
*& before calling the change function via 'CALL TRANSACTION tcod
*& USING itab'. Read subroutine 'Q_LAGE_DATEN_LESEN_C' of
*& main program 'SAPMQDQL' for the parameters
*& which are available in detail.
*&
*& For every dynamic modification level you can record an example
*& BDC session with the batch input recorder.
*& For this purpose, you must choose a suitable quality level anf
*& before the recording you must set user parameter QLD to:
*&
*& value '0', for dynamic modification at inspection type level
*& value '1', for dynamic modification at lot level
*& value '3', for dynamic modification at characteristic level
*&---------------------------------------------------------------------*
REPORT ZSAM_QDL2_BDC_TEST.
DATA: BDCTAB LIKE TABLE OF BDCDATA WITH HEADER LINE,
      MSGTAB LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE.
DATA: GT_QDQL LIKE TABLE OF QDQL WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001."#EC
PARAMETERS: P_WERKS LIKE MARC-WERKS,
            P_MATNR LIKE MARC-MATNR,
            P_LEVEL LIKE QDQL-PRSTUFENAE.
SELECTION-SCREEN SKIP.
PARAMETERS:P_MODE(1)  DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK BLK1.                         "#EC
*----------------------------------------------------------------------*
*START-OF-SELECTION                                                    *
*----------------------------------------------------------------------*
START-OF-SELECTION.
  DATA: LS_QDQL LIKE QDQL.
CLEAR: BDCTAB, BDCTAB[], MSGTAB, MSGTAB[], GT_QDQL, GT_QDQL[].
  SELECT * INTO TABLE  GT_QDQL
           FROM QDQL
           WHERE WERKS EQ P_WERKS
             AND MATNR EQ P_MATNR.
  BREAK DABAPLSI.
  LOOP AT GT_QDQL.
    "(Batch Input으로 QDL2는 수행이 안되지만 Parameter를
    " 지정해주면 BDC수행이 가능해진다.
    SET PARAMETER ID 'QLD' FIELD '1'.
    PERFORM SET_PARAMETER USING GT_QDQL.
    PERFORM  : BDC_FORM   USING 'X'      'SAPMQDQL'      '0100',
               BDC_FORM   USING ' '      'BDC_OKCODE'    '=NEXT',
               BDC_FORM   USING ' '      'QDQL-WERKS'    P_WERKS,
               BDC_FORM   USING ' '      'QDQL-MATNR'    P_MATNR.
    PERFORM  : BDC_FORM   USING 'X'      'SAPMQDQL'         '0110',
               BDC_FORM   USING ' '      'BDC_OKCODE'       '=SAVE',
               BDC_FORM   USING ' '      'QDQL-PRSTUFENAE'  P_LEVEL,
               BDC_FORM   USING ' '      'QDQL-DELDATUM'    SY-DATUM.
    CALL TRANSACTION 'QDL2' USING BDCTAB
                            MODE P_MODE
                            UPDATE 'S'
                            MESSAGES INTO MSGTAB.
    "Parmeter Clear
    CLEAR: LS_QDQL.
    PERFORM SET_PARAMETER USING LS_QDQL.
    "Message 처리
    PERFORM WRITE_ERR_MESSAG.
  ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  BDC_FORM
*&---------------------------------------------------------------------*
FORM BDC_FORM USING    PARA1                                "  X
                       PARA2           " field  or program name
                       PARA3  .        " value  or screen
  CLEAR BDCTAB.
  IF PARA1 EQ 'X'.
    BDCTAB-DYNBEGIN = 'X'.
    BDCTAB-PROGRAM  = PARA2.
    BDCTAB-DYNPRO   = PARA3 .
  ELSE.
    BDCTAB-FNAM     = PARA2.
    BDCTAB-FVAL     = PARA3.
  ENDIF.
  APPEND BDCTAB.
ENDFORM.                               " BDC_FORM
*&---------------------------------------------------------------------*
*&      Form  WRITE_ERR_MESSAG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM WRITE_ERR_MESSAG .
  DATA : L_LINE TYPE I,
        L_MSG(100),
        L_MSGV(20),
        SUCCESS_CNT TYPE I.
  DESCRIBE TABLE MSGTAB LINES L_LINE.
  READ TABLE MSGTAB INDEX L_LINE.
  SELECT SINGLE TEXT INTO L_MSG FROM T100
         WHERE SPRSL = SY-LANGU
           AND ARBGB = MSGTAB-MSGID
           AND MSGNR = MSGTAB-MSGNR.
  L_MSGV = MSGTAB-MSGV1. REPLACE '&' WITH L_MSGV INTO L_MSG.
  L_MSGV = MSGTAB-MSGV2. REPLACE '&' WITH L_MSGV INTO L_MSG.
  L_MSGV = MSGTAB-MSGV3. REPLACE '&' WITH L_MSGV INTO L_MSG.
  L_MSGV = MSGTAB-MSGV4. REPLACE '&' WITH L_MSGV INTO L_MSG.
  L_MSGV = MSGTAB-MSGV4. REPLACE '&' WITH L_MSGV INTO L_MSG.
  CONDENSE L_MSG.
  IF MSGTAB-MSGTYP = 'E'.              "ERROR
    FORMAT COLOR 6 INTENSIFIED OFF.
  ELSE.                                " 'S' 성공
    FORMAT COLOR 3 INTENSIFIED OFF.
  ENDIF.
  WRITE :/1 SY-VLINE,  2(1)    MSGTAB-MSGTYP,
          3 SY-VLINE,  4(18)   P_MATNR,
          22 SY-VLINE, 23(100) L_MSG,
          123 SY-VLINE.
  FORMAT RESET.
ENDFORM.                    " WRITE_ERR_MESSAG
*&---------------------------------------------------------------------*
*&      Form  SET_PARAMETER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_QDQL  text
*----------------------------------------------------------------------*
FORM SET_PARAMETER  USING    PS_QDQL STRUCTURE QDQL.
  SET PARAMETER ID 'WRK' FIELD PS_QDQL-WERKS.
  SET PARAMETER ID 'QLM' FIELD PS_QDQL-MATNR.
  SET PARAMETER ID 'QLT' FIELD PS_QDQL-PLNTY.
  SET PARAMETER ID 'QLN' FIELD PS_QDQL-PLNNR.
  SET PARAMETER ID 'QLZ' FIELD PS_QDQL-PLNAL.
  SET PARAMETER ID 'QLF' FIELD PS_QDQL-PLNFL.
  SET PARAMETER ID 'QLV' FIELD PS_QDQL-PLNKN.
  SET PARAMETER ID 'QLL' FIELD PS_QDQL-LIFNR.
  SET PARAMETER ID 'QLK' FIELD PS_QDQL-KUNNR.
  SET PARAMETER ID 'QLH' FIELD PS_QDQL-HERSTELLER.
  SET PARAMETER ID 'QLP' FIELD PS_QDQL-PRUEFART.
ENDFORM. " SET_PARAMETER
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 | 
|---|---|---|---|---|
| 30 | Serial Number관리 메뉴얼
					[5]   | 양키 | 2012.12.04 | 4741 | 
| 29 | SAP 의 기능중 조기 경보 시스템(EWS) 질문입니다. [5] | 궁그미 | 2012.07.18 | 4492 | 
| 28 | PM 모듈 자료 입니다.
					[11]   | 아밥천사 | 2012.04.13 | 6995 | 
| 27 | PM 시험관련 자료 구합니다. [2] | 펭귄 | 2011.11.02 | 5541 | 
| 26 | 8D 레포트 | 천재No.1 | 2011.10.13 | 7274 | 
| 25 | [QM] Usage Decision code의 Follow-Up Action 연계 방법
					[3]   | 고담 | 2011.06.20 | 10084 | 
| » | QDL2(검사레벨변경) BDC되게 하는 방법 | deepbluesea | 2011.04.05 | 6792 | 
| 23 | PM관련 - PLM300-handbook입니다. SAP ECC 6.0_PM GMC.pdf
					[26]   | 밥~~ | 2010.12.08 | 8169 | 
| 22 | SAP QM 테이블 영문 자료
					[2]   | 열공아밥 | 2010.07.15 | 6128 | 
| 21 | [re] SAP QM 테이블 영문 자료 | 키맨 | 2010.10.27 | 5936 | 
| 20 | SAP Account Administration 관련 자료 입니다.
					[1]   | 촌놈악마 | 2010.05.29 | 5166 | 
| 19 | QM 용어 및 개요
					[8]   | 서키트 | 2009.06.17 | 5666 | 
| 18 | sapshow
					[5]   | 나도한방 | 2009.04.11 | 6248 | 
| 17 | pm 관계도
					[27]   | 말리꽃 | 2008.10.01 | 5846 | 
| 16 | QM 용어집 자료입니다.
					[10]   | 나이키 | 2008.04.15 | 4871 | 
| 15 | 관리도의 개념
					[7]   | 스스 | 2008.03.28 | 4525 | 
| 14 | PM 테이블 관계도
					[27]   | activeman | 2008.02.05 | 6803 | 
| 13 | QM관련 테이블
					[21]   | 진창환 | 2008.02.05 | 5096 | 
| 12 | 조달 품질 관리
					[5]   | 하얀천군 | 2007.11.06 | 3614 | 
| 11 | [re] 조달 품질 관리 | 바보사랑 | 2010.12.30 | 3736 | 

 
