<1>
form go_to_zqm014 using p_index.
data : g_x value 'X'.
read table itab index p_index.
set parameter id : 'MAT14' field itab-plnbez,
'AUF14' field itab-aufnr.
call transaction 'ZQM0141' and skip first screen. =>1)
free memory id 'M_014'. =>1-1)
endform.
<2>
initialization. =>2)
form call_trans_from_zqm016 .
data ibom like zsqm0007 occurs 0 with header line.
data : g_x.
import g_x from memory id 'M_0141'. =>2-1)
import ibom from memory id 'M_014'. =>2-2)
<1>의 프로그램에서 1)을 CALL하면 트랜잭션'ZQM0141'을 호출하여 <2>를 실행합니다.
1-1)과 2-1) 2-2)에서 'M_014','M_0141'가 나오는데 초보라 무슨 뜻인지
이해가 가지 않습니다. 경험있으신 분께서 설명하여 주시면 감사드리겠습니다.
sap메모리와 abap메모리에 대해 이해를 하셔야 겠습니다..
하나의 프로그램에서 다른 프로그램에 값을 넘겨줄때 메모리에 id를 부여하여 값을 저장하게 됩니다.
그때 사용하는 메모리가 sap 메모리와 abap 메모리 입니다.
sap 메모리는 set,get parameter 명령어를 사용하며, sap 메모리에 값을 저장합니다.(세션이 종료되어도 메모리에 값이 저장됨)
abap 메모리는 import, export명령어를 사용하며, abap메모리에 값을 저장합니다.(세션이 종료되면 메모리에서 값이 없어짐)
<1>
ZQM0141을 호출할때는 SET PARAMETER 명령어를 사용했으므로 SAP 메모리를 사용하게 됩니다.. 오더번호를 'AUF14'란 ID로
메모리에 저장하게 됩니다.(FREE MEMORY는 메모리에서 값을 지우겠다는 뜻이구요)
<2> 에서는 처음 프로그램 실행될때 ABAP메모리의 ID 'M_0141', 'M_014'의 값을 가져와서 변수에 넣어 주겠다는 뜻입니다.
초기값을 ABAP 메모리에 있는 값으로 하겠다는 뜻이죠.. 물론 다른 프로그램에서 EXPORT 해줘야 값이 들어오게 됩니다.
즐밥하세요..