p.594 search help exit 를 수행하려고 하는데 할 수가 없습니다.
-----------------
(2)번 Changing 탭 입력
CALLCONTROL LIKE SEAHLPRES 입력부분
'LIKE as typing for parameters is obsolete!' 에러 발생
(3)번 Table 탭 입력
RECORD_TAB LIKE SEAHLPRES
'TABLES parameters are obsolete!' 에러 발생
------------------
그래서 더이상 진행할 수 없습니다.
'LIKE' 컬럼명이 책에는 'Type Spec.' 이지만 GUI 상에는 'Typing'으로 나와있고
F4를 눌러보니 'TYPE' 과 'TYPE REF TO' 밖에 없었습니다. 버전차이인거 같은데요.
SAP ECC 6.0 이고 SAP GUI 7.1 입니다.
댓글 11
-
e-abap
2008.11.28 20:55
-
e-abap
2008.11.28 20:58
Search Exit 함수를 생성하기 위해서는 먼저, 해당 함수가 존재하는 함수그룹의 INCLUDE <함수그룹이름>TOP 에 다음구문을 추가해야 한다.
TYPE-POOLS : SHLP.
-
초코
2008.11.28 21:18
Z_SFLIGHT 함수를 ZTEST function group에 생성했습니다.
ZTEST 를 더블클릭해서 찾아들어가니.. 다음 소스가 나타났습니다.
-------------------------
FucntionPool SAPLZTEST
-------------------------
*******************************************************************
* System-defined Include-files. *
*******************************************************************
INCLUDE LZTESTTOP. " Global Data
INCLUDE LZTESTUXX. " Function Modules
다시 LZTESTTOP을 더블클릭해서 들어가니 다음 소스가 나와서 말씀하신 내용을 삽입하고 active 시켰습니다.
-------------------
Include LZTESTTOP
-------------------
FUNCTION-POOL ZTEST. "MESSAGE-ID ..
TYPE-POOLS: SHLP. <-- 추가했음
그런데 여전히 질문에 언급했던 LIKE 는 같은 에러가 납니다. 다른 문제가 아닌지요?
LIKE가 맞는건가요?
-
e-abap
2008.11.28 21:28
TYPE으로 해보시겟어요?
-
초코
2008.11.28 22:27
<P>TYPE 으로 바꿀 경우 Changing 쪽에서는 문제없이 넘어가는 것 같습니다.</P>
<P>하지만 Tables 쪽에서는 여전히 같은 에러가 발생하는군요.</P>
<P> </P>
<P>하단 Status bar 를 더블 클릭하여 help 창을 띄워보니 다음과 같은 설명이 있습니다.</P>
<P>뭐래는건지.. --;;</P>
<P> </P>
<H3>TABLES parameters are obsolete!</H3>
<P>Message no. FL069</P>
<H3>Diagnosis</H3>
<P>TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as internal standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to such a formal parameter, an empty header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. In the case of formal parameters defined with TABLES, no value transmission is possible.</P>
<P>Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created in the function module for the internal table using the addition LIKE LINE OF itab of the DATA statement in the function module.</P>
<P> </P> -
e-abap
2008.11.28 22:50
예 해당 경고문은 ecc6.0 즉 유니코드 환경에서는 더이상 tables 파라미터를 사용하지 말고, CHANGING 파라미터에서 테이블 타입으로 사용하라는 겁니다. 사용해도 문제는 없더군요
에러가 아니라, 노란 경고메세지가 뜨는거 아닌가요? 그렇다면 무시하고 하시면 됩니다.
만약 이렇게 해도 에러가 발생한다면.
SE11에서 테이블 타입을 생성해서 하시면 됩니다.
데이터유형을 선택하고 : ZSEAHLPRES
생성 버튼을 클릭하세요
그리고 LINE TYPE에 : SEAHLPRES 를 입력하고 활성화 합니다.
함수에서
RECORD_TAB TYPE ZSEAHLPRES
입력하시면 활성이 될겁니다.
-
초코
2008.11.28 23:19
<P>노란 경고문은 맞습니다. 하지만 무시할 수가 없어요. 다른 셀들은 다 비활성화되고 TYPE SEAHLPRES 부분만 빨간색으로 나와</P>
<P>활성화는 커녕 다른 탭으로 이동할 수도 없습니다.</P>
<P> </P>
<P>SEAHLPRES 는 Structure 던데요.</P>
<P> </P>
<P>제가 알기로는 Function Module에서 Import, Export, Changing 에서는 기본형부터 Structure 까지 쓸 수 있고</P>
<P>Tables 탭에서는 Table type 밖에 쓸 수 없다고 알고 있습니다. 문제는 거기에 있는 듯 싶습니다.</P>
<P> </P>
<P>말씀하신대로 se11 에서 ZSEAHLPRES(Data Type)을 생성하고 Line Type 에 SEAHLPRES를 지정한 후 활성화했습니다.</P>
<P>Function Module > Tables 탭에서는 RECORD_TAB TYPE ZSEAHLPRES를 추가했고요.</P>
<P>여전히 같은 에러가 발생합니다.</P>
<P> </P>
<P>Tables 탭에 넣도록 되어 있는 다른 값인 SHLP_TAB TYPE SHLP_DESCR_TAB_T를 보면 (이건 에러 없음)</P>
<P>SHLP_DESCR_TAB_T는 Type Group SHLP 안에 'TYPES: SHLP_DESCR_TAB_T TYPE SHLP_DESCT'라고 선언되어 있습니다.</P>
<P>또한 SHLP_DESCT 는 딕셔너리 테이블 입니다. (제가 만든 ZSEAHLPRES와 같은..)</P>
<P> </P>
<P>아무래도 se11 에서 생성된 테이블을 바로 Assosiated Type 으로 사용할 수 없고 한번더 타입선언을</P>
<P>해줘야 하는 것 같은데 왜 그런걸까요. -_- 전에도 이런 것들이 헷갈렸는데 data type을 다시한번 봐야하나.. 에고..</P>
<P> </P>
<P>집히는게 있으시면 말씀해주세요.</P> -
e-abap
2008.11.28 23:27
changing 탭에다가 다음과 같이 하시면 될겁니다.
RECORD_TAB TYPE ZSEAHLPRES
-
초코
2008.11.28 23:57
Changing에 입력하면 됩니다만 소스쪽에서 또 문제가 발생합니다.
이 에제에 대한 지적이 없는 걸 보면 다른 분들은 아무 문제가 없는건지..
아무래도 책에 있는 예제는 실행할 수가 없어 보이는데요.
SAP에서 제공하는 Search Help Exit 에 대한 예제는 어디서 찾을 수 있나요?
학습용 패키지에 들어있는 Function Module 이라든지..
-
e-abap
2008.11.29 00:07
많은 분들이 실습을 안해보는 모양입니다. 아니면 에러나서 건너뛰었는가?
학습용으로 제공되는 함수는 찾아봐야 될것 같구요.
AIPH_SEARCH_HELP_EXIT
위 함수를 조회해서 표준에서 파리미터를 선언한 방법에 대해서 참고해 보세요.
search help exit 함수는 제가 다시 한번 검토해봐야겠습니다.
저희 쪽 ecc6.0으로 제가 테스트 해봤는데, 아무 문제가 없네요....
-
초코
2008.11.29 01:28
<P>말씀하신 AIPH_SEARCH_HELP_EXIT 함수를 복사하여(ZTEST function group) 책과 똑같이 고쳐서 해보니</P>
<P>잘 돌아가네요. 그래서 또 복사한 것과 똑같이 새로 생성해봤는데 역시 LIKE 에서 걸립니다. (changing 탭도 마찬가지)</P>
<P>도대체 뭐가 달라서 안되는지 도통 알 수가 없네요. (drag n drop 했는데도 불구하고..) 두손 두발 다 들었어요. -_-;;</P>
<P> </P>
<P>방금 복사한 함수에서 Changing 탭의 LIKE를 클릭한 후 엔터를 치니 아무 반응이 없군요(정상)</P>
<P>그런데 단순히 LIKE 글자를 backspace로 지우고 그대로 LIKE를 쳐넣고 엔터를 치니 똑같이 에러가 나네요(빨간 글씨로..ㄷㄷ)</P>
<P> </P>
<P>필요할때마다 복사해서 써야할까요.. 허허.. 이거야 원..</P>
<P>이문제는 이쯤에서 마감해야겠네요.</P>
<P>혹시 문득 떠오르는게 있으신 분이 있을까.. 종료는 몇일 뒤에 하렵니다. ^^;</P>
<P> </P>
TYPE-POOLS : SHLP. 구문을 추가해야 합니다.
바로 정리해서 올려들겠습니다.
불편을 드려 죄송합니다.