2012-03-07 2 views
2

근무중인 영업 주문 보고서입니다. 테이블 VBUK 및 VBELN 필드에서 데이터를 읽으려는 중 오류가 발생한 테이블 'VAPMA'에서 데이터를 가져 오려고합니다. 두 번째 select 문 다음에 다음 오류가 표시됩니다.클래스 re 및 언어 en의 객체가 존재하지 않습니까?

object of class re and language en does not exist 

프로그램 :

*&---------------------------------------------------------------------* 
*& Report ZRSD_DISPLAY_OPEN_SALESORDERS 
*& 
*&---------------------------------------------------------------------* 
*& 
*& 
*&---------------------------------------------------------------------* 

REPORT ZRSD_DISPLAY_OPEN_SALESORDERS. 

TABLES: VAPMA,LIKP. 

PARAMETERS: P_VKORG TYPE VAPMA-VKORG, 
      P_VTWEG TYPE VAPMA-VTWEG, 
      P_SPART TYPE VAPMA-SPART. 


SELECT-OPTIONS: 
      S_KUNNR FOR VAPMA-KUNNR, 
      S_VBELN FOR VAPMA-VBELN, 
      S_MATNR FOR VAPMA-MATNR, 
      S_AUART FOR VAPMA-AUART, 
      S_AUDAT FOR VAPMA-AUDAT, 
      S_LFDAT FOR LIKP-LFDAT. 


TYPES: BEGIN OF TY_VBELN, 
     VBELN TYPE VBUK-VBELN, 
     END OF TY_VBELN. 


DATA : IT_VBELN TYPE STANDARD TABLE OF TY_VBELN, 
     IT1_VBELN TYPE STANDARD TABLE OF TY_VBELN, 
     IT2_VBELN TYPE STANDARD TABLE OF TY_VBELN, 
     WA_VBELN TYPE TY_VBELN. 


SELECT VBELN INTO TABLE IT_VBELN FROM VBUK WHERE GBSTK NE 'C'. 

IF SY-SUBRC NE 0. 
    message E000(ZMSG) WITH 'SEL1'. 
ENDIF.  

SELECT VBELN INTO TABLE IT1_VBELN FROM VAPMA 
    FOR ALL ENTRIES IN IT_VBELN 
    WHERE VBELN = IT_VBELN-VBELN AND 
     VKORG = P_VKORG AND 
     VTWEG = P_VTWEG AND 
     SPART = P_SPART AND 
     KUNNR IN S_KUNNR AND 
     VBELN IN S_VBELN AND 
     MATNR IN S_MATNR AND 
     AUART IN S_AUART AND 
     AUDAT IN S_AUDAT. 

IF SY-SUBRC <> 0. 
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF. 

SELECT VBELN INTO TABLE IT2_VBELN FROM LIKP 
    FOR ALL ENTRIES IN IT1_VBELN 
    WHERE VBELN = IT1_VBELN-VBELN AND 
     LFDAT IN S_LFDAT. 

IF SY-SUBRC NE 0. 
    message E000(ZMSG) WITH 'SEL3'. 
ENDIF. 

LOOP AT IT2_VBELN INTO WA_VBELN. 
    WRITE:/1 WA_VBELN-VBELN. 
ENDLOOP. 

답변

3

당신이지고있는 오류 메시지가이 문제에 관련이없는 가능성이 높다 :

SY-SUBRC <> 0 만약이 select 문 후, 그 어떤을 의미 SELECT에있는 기준에 맞는 데이터가 발견되었습니다. 그러나 SELECT이 실패하면 SAP는 SY-MSG * 변수를 채우지 않습니다. 따라서 표시된 마지막 메시지에서 여전히 메모리에있는 것이 표시됩니다.

IF SY-SUBRC NE 0. 
    message E000(ZMSG) WITH 'SEL2'. 
ENDIF. 
:

SELECT VBELN INTO TABLE IT1_VBELN 
    FROM VAPMA 
    FOR ALL ENTRIES IN IT_VBELN 
    WHERE VBELN = IT_VBELN-VBELN AND 
    VKORG = P_VKORG AND 
    VTWEG = P_VTWEG AND 
    SPART = P_SPART AND 
    KUNNR IN S_KUNNR AND 
    VBELN IN S_VBELN AND 
    MATNR IN S_MATNR AND 
    AUART IN S_AUART AND 
    AUDAT IN AUDAT. 

IF SY-SUBRC <> 0. 
"From what you describing it sounds like you're triggering this error message 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF. 

난 당신이 대신에 다음과 같은 메시지를 사용할 것이라고 생각 당신이 다른 두 선택에서 수행 한 Mirrorring