DATA : gs_where TYPE c LENGTH 72,
gv_carrname TYPE scarr-carrname,
gv_carrid TYPE scarr-carrid VALUE 'AC'.
CONCATENATE 'carrid = ''' gv_carrid '''' INTO gs_where.
SELECT SINGLE carrname
INTO gv_carrname
FROM scarr
WHERE (gs_where).
WRITE : / gv_carrname.
빨간부분 특히 ''' ''''
이게 무슨 의미인지 이해가 되질 않습니다.
먼저 ABAP 디버깅 하는 방법 찾으셔서 디버깅 걸고 한단계씩 내려가는 방법과
변수, 인터널테이블 값을 더블클릭해서 보시면 하시면 이해가 빠르실텐데요.
CONCATENATE 'carrid = ''' gv_carrid '''' INTO gs_where.
concatenate 라인지나서 gs_where 변수를 드블클릭해보시면 값이 어떻게 들어와있냐면
carrid = 'AC' 값이 저장됩니다.
'carrid = ''' gv_carrid '''' 이걸 풀어서본다면
'carrid = ' ===> 텍스트 carrid = 값을 받는다. 점위치 잘보셔야해요 carrid =
'' ===> 바로 윗줄 ' ' 안에 ' 점을 찍어준다. carrid = ' 이렇게 되죠
gv_carrid ==> 변수지정. 위 선언한것을 보니깐 value 값이 AC 네요. carrid = 'AC
'''' ==> ' 하나 찍어주기 위해서 carrid = 'AC'
결론적으로 WHERE (gs_where) 은 WHERE carrid = 'AC' 가 되는거죠.
위 디버깅이 어려우시면 WHERE (gs_where) 라인위에 write: / gs_where. << 추가해서 보셔도 좋읍니다.