2012-08-08 1 views
1

저는 ABAP를 처음 사용 했으므로 나와 함께하시기 바랍니다.표제가없는 표

"IT_COMBINE"오류가 발생합니다. 헤더 행이없는 테이블이므로 "EBELN"이라는 구성 요소가 없습니다.

"해당 필드에"사용하려고했는데 작동하지 않습니다. 당신은 헤더 행과 내부 테이블을 선언하지 않은 경우 직접 http://pastebin.com/y64T2nah

답변

2

당신은 내부 테이블에서 필드를 사용할 수 없습니다 : 여기 내 코드를 제공 한

.

코드를 변경하는 방법은 두 가지가 있습니다. 당신 호선 19 헤더 라인 it_combine를 선언하지 않았기 때문에

  1. 이 당신 호선 (35)의 필드 ebeln라고 한이 같은 it_combine - ebeln을 사용할 수 없습니다. 대신 당신은 작업 영역을

    Data wa_combine type ty_combine. 
    

을 선언하고 라인에서 작업 영역을 사용해야합니다 당신은 헤더 행으로 내부 테이블을 선언해야 35

Loop at it_combine into wa_combine . 
select ebeln lifnr ekorg bsart ekgrp 
    into table it_po 
    from ekko 
     where ebeln = wa_combine-ebeln. 
End Loop. 

2

으로 더

Data it_combine type standard table of ty_combine with header line. 

희망이 있으면 도움이 될 것입니다. 헤더 라인 및 작업 영역에 대한 간단한 설명은 Sap 도움말 문서를 참조하십시오.

감사

Dhivya

+1

SAP는 헤더 행을 사용하지 말 것을 권장합니다. 답의 루프 부분은 작동하지만 헤더 행을 제안하는 대신 모든 항목을 선택하는 것이 더 적합합니다. –

+0

모두 감사합니다! – Richard

4
또한 문에 대해 "SELECT" "의 모든 항목에 대한"추가를 사용할 수 있습니다

: 또는 추가 작업 영역 "헤더 라인"

SELECT DISTINCT ebeln netwr werks INTO TABLE it_combine 
    FROM ekpo 
    WHERE netwr IN s_netwr. "in is only for select options 

    CHECK it_combine[] IS NOT INITIAL. " not empty, obligatory 

SELECT ebeln lifnr ekorg bsart ekgrp 
    INTO TABLE it_po 
    FROM ekko FOR ALL ENTRIES IN it_combine 
    WHERE ebeln = it_combine-ebeln. 

금지 - 필요

또한 OOP 컨텍스트에서 "헤더 행 사용"을 사용할 수 없습니다.

+0

x에있는 모든 항목에 대해 언급 할만한 가치가있는 것은 아니며 x가 다소 작은 itab 일 때만 사용해야합니다 (행 수에 관한 것). 물론, 당신이 언급 한 것이 좋다. –

+0

첫 번째 선택을 다음과 같이 바꿀 것입니다 : 'SELECT ebeln netwr werks INTO TABLE it_combine FROM ekpo WHERE netwr IN s_netwr. SORT it_combine. it_combine에서 중복 중복 제거 모든 필드 비교. DB 엔진이 아닌 ABAP에 중복 제거를 남겨 둡니다. – bariz