STCD2 필드가 11자리 입니다.
'1234567890'이라는 사업자 번호를 파일 업로드 해서 불러왔습니다.
그런데 이놈을 LFA1에 select조건문에 걸으니 검색을 못하네요..
디버깅으로 찍어보니
첫번째 값은 STCD2+1(10) 을 해야 '1234567890' 이렇게 나오고
두번째 값은 STCD2+0(10) 을 해야 '3434234234' 이렇게 나오고
세번째 값도 두번째와 마찬가지..
궁금한것은...1) 왜 첫번째 값은 앞에 공백이 있는 걸까요?
2)값끝에 #이 붙는 이유는 뭔지요..
참고로 ECC6.0 unicode 적용 했습니다.
파일내용을 AL11 로 열어보니..
1234567890#
3434234234#
4234234423 이렇게 저장되어 있습니다. 감사합니다.
댓글 6
-
無念군
2010.03.02 18:16
-
진현태
2010.03.02 18:22
1) 같은 10자리인데 하나는 앞에 붙어있고 하나는 뒤에붙어있고라..
이건 저도 잘 이유가 짐작이 안가네요 ㅎ;
2) #이 붙은 이유는 정확한진 모르지만 경험상 sap에서 표기하지 못하는 문자값을 #으로 표시하더라구요
예를들면 캐리지리턴값이나 탭값 같은것들이요..
그냥 #을 replace 같은 걸로 치환하면 바뀝니다.
-
요요
2010.03.02 18:26
업로드 하실때 다른 문자가 딸려온 것 같네요. 탭이나 carriage return, line feed 같은 것들일 것 같네요.
이것을 먼저 제거하심이 좋을 것 같구요. 사업자 번호 같은 경우에는 alpha conversion 같은 것이
없기 때문에 조건값에 대하여 공백포함 문자를 정확히 주셔야 할 거예요. 확실하지 않으시면
like '%___%' 등등으로 조회하셔야 할 거예요. 좋은 결과 있으시길 바랍니다.
-
요요
2010.03.02 18:28
아.. 참고로 탭등 문자치환을 위한 문자 속성은 cl_abap_char_utilities 에 있습니다. -
msap
2010.03.02 21:47
최근에 저도 위와 비슷한 경우가 있었는데요
업로드하는 사업자번호가 10자리지만 STCD2 필드는 11자리여서 문제가 발생하는 듯 합니다.
제 경우에는 업로드파일의 내용을 해당 필드의 길이만큼 공백(space)를 넣어줘서 해결했습니다.
-
남산밑
2010.03.03 20:27
답변 주신 모든 분들께 감사 드립니다.
해결한 내용은..
우선 업로드 데이타 작성을 메모장에서 해서 올려서 그런 현상이 발생 했던 거네요..
아크로에딧을 이용하면 첫 데이타의 첫번째 자리가 공백이 안들어 갑니다.
뒤에 #은 처리하면 되구요..
감사합니다.
11자리를 모두 채웠을 경우와 그렇지 않을경우로 분리해서 처리하시면 될듯하네요..
QUERY 작업시나 if 문 작업시에 ..
data : lv_len type i.
clear lv_len.
STRLEN( STCD2 ) = lv_len.
if lv_len eq '10'.
STCD2+1(10)
else. "if lv_len eq '11'.
STCD2+0(10)
endif.
구분해서 처리 하시면 될듯 합니다...
이상 허접한 답변 이였습니다.. +_+..
새로운 달이 시작된만큼 힘내서셔 .. 하시길.. (__)m