2012-03-07 13 views
2

這是我正在開發的Open Sales Order Report。 即時嘗試從表VBUK讀取數據和VBELN字段 即時嘗試從錯誤發生的表'VAPMA'獲取數據。 第二條select語句後出現以下錯誤。class re和language 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 *變量。因爲這樣的內容從最後顯示的消息中將顯示出來。

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您已經在其他兩個選擇做了什麼,我覺得,你想在代替使用以下消息:

IF SY-SUBRC NE 0. 
    message E000(ZMSG) WITH 'SEL2'. 
ENDIF. 
相關問題