RFC function을 만들어서 테스트 하는데...
아래 query에서 조건을 상수값으로 주면 data를 select 해 오는데
조건을 변수에 넣어서 비고하면 data를 가져오지 못하는 현상이 발생합니다.
(변수로 실행시킬경우 변수값이 정확히 들어오는 것은 확인하였습니다.)
어디가 잘못된건지 알수가 없어서 부탁드립니다.
원인을 아시는 분은 답변 좀 부탁드립니다.
참고로
wkym = '200803'
compcd = 'N100' 으로 값이 들어옵니다.
move sy-mandt to lv_rclnt. "clinet
move compcd to lv_rbukrs. "company code
move wkym(4) to lv_ryear. "년도
EXEC SQL performing append_data.
SELECT RYEAR, RFAREA, RACCT,
sum(decode(substr( :WKYM ,5,2), '01',HSL01,
'02',HSL02,
'03',HSL03,
'04',HSL04,
'05',HSL05,
'06',HSL06,
'07',HSL07,
'08',HSL08,
'09',HSL09,
'10',HSL10,
'11',HSL11,
'12',HSL12)) AMT
INTO :GT_ACC_AMT-RYEAR, :GT_ACC_AMT-RFAREA,
:GT_ACC_AMT-RACCT, :GT_ACC_AMT-AMT
FROM GLFUNCT
* WHERE RCLNT = :lv_rclnt
* AND RBUKRS = :lv_rbukrs
* AND RYEAR = :lv_ryear
WHERE RCLNT = '700'
AND RBUKRS = 'N100'
AND RYEAR = '2008'
GROUP BY RYEAR, RFAREA, RACCT
ENDEXEC.
댓글 4
-
아밥어렵네요
2008.08.26 20:15
-
SkyDream
2008.08.26 20:50
개발서버에서 동일한 function으로 테스트 합니다.
위에서
WHERE RCLNT = '700'
AND RBUKRS = 'N100'
AND RYEAR = '2008'
이 부분을 comment 처리하고
comment 되어 있는
* WHERE RCLNT = :lv_rclnt
* AND RBUKRS = :lv_rbukrs
* AND RYEAR = :lv_ryear
조회조건이 똑 같은데도 data를 가져오지 못합니다.
위에 comment 처리된 부분을 풀고 테스트 하면 data를 가져오지 못하네요.
-
아밥어렵네요
2008.08.26 21:20
저는 초보라서 잘 모르겠지만 개발 서버면 sy-mandt 가 700이 아니구 다른거 아닌가요?
개발 서버면 sy-mandt 가 200(저같은 경우) 인것 같은데
만약 700이 테스트 섭 client 라면 테스트섭에서 해보셔야 데이터가 나올것 같아요
WHERE RCLNT = :lv_rclnt
AND RBUKRS = :lv_rbukrs
AND RYEAR = :lv_ryear
move sy-mandt to lv_rclnt.
sy-mandt 은 로그인 섭 client 를 표시해주는 시스템 변수라서...
-
SkyDream
2008.08.27 00:22
해결책을 찾지 못해서 open SQL로 해결했습니다.
테스트 섭에서 테스트하시나요? 혹시 다른 섭에서 테스트 하시는거는 아니신지