2009-08-27 16 views
2

저는 ABAP 코딩을 처음 사용하고 있으며 주석 처리 된 쿼리가 작동하지 않는 이유에 대해 혼란 스럽습니다. 어떤 도움을 주시면 감사하겠습니다필드 기호에 SELECT 결과를 지정하십시오.

Runtime Errors GETWA_NOT_ASSIGNED Date and Time
08/26/2009 19:54:19

Short text Field symbol has not yet been assigned.

: 나는 주석 쿼리를 실행하면


REPORT z_hello_world_local. 

TYPES: BEGIN OF bkpf_type, 
      xblnr   TYPE bkpf-xblnr, 
     END OF bkpf_type. 

DATA: t_bkpf     TYPE TABLE OF bkpf_type. 

FIELD-SYMBOLS: <bkpf>  TYPE bkpf_type. 


*This query does not work? 
*SELECT xblnr 
*  INTO CORRESPONDING FIELDS OF <bkpf> UP TO 1 ROWS 
*  FROM bkpf 
*  WHERE belnr = '1800001017'. 
* ENDSELECT. 
* 
DATA: t_xblnr TYPE bkpf-xblnr. 

*This query works and in my head it is roughly the same thing. 
SELECT SINGLE xblnr 
     INTO t_xblnr 
     FROM bkpf 
     WHERE belnr = '1800001017'. 


write 'Done'. 

가 나는 오류가 발생합니다.

답변

5

나는이 사이트가 <> 사이에있는 코드를 숨기고 있다고 생각합니다. 필드 심볼을 선언 한 것처럼 보이지만 실제로 이름을 볼 수는 없습니다.

필자는 실제로 볼 수없는 오류와 코드 조각을 기반으로 필드 기호에 직접 데이터를 선택하려고한다고 가정합니다. 너는 그렇게 할 수 없다. 필드 심볼은 메모리 영역이 아니며 기본적으로 포인터입니다.

당신은 다음 중 하나를 수행 할 수 :

data: wa_bkpf type bkpf_type. 

select xblnr 
    into corresponding fields of wa_xblnr 
    up to 1 rows 
    from bkpf 
    where xblnr = '1800001017'. 
endselect. 

또는이 경우

field-symbols: <bkpf> type bkpf_type. 
append initial line to t_bkpf assigning <bkpf>. 
select xlbnr 
    into corresponding fields <bkpf> 
    up to 1 rows 
    from bkpf 
    where xblnr = '1800001017'. 
endselect. 

, 당신은 당신이 내부 테이블에 추가 한 새로운 라인으로 필드 기호를 가리키는됩니다 .

또는이 경우

select xblnr 
    into corresponding fields of table t_bkpf 
    from bkpf 
    where xlbnr = '1800001017'. 

, 당신은 일치하는 모든 문서를 검색하고 내부 테이블에 직접 배치합니다.

+0

그걸 수정하면 이해가됩니다. 추가 초기 종류의 일부 메모리 할당량을 쿼리 결과를 넣을 것 같아요. 나는 그것을 지적하기 위해 코드 스 니펫 덕분에 모든 서식 문제를 해결할 것 같아요. 감사합니다. –

+0

필드 기호에 대해서도 조금 읽는 것이 좋습니다. 당신이 초보자 인 경우 나는 당신이해야 할 일의 대부분을 위해 필드 기호를 요구하지 않을 것이라고 확신합니다. 올바르게 사용하면 인생을 훨씬 쉽게 할 수 있지만, 잘못하면 디버깅에 공포감을 줄 수 있습니다. – Esti