오늘도 쌩기초를 정리하고 있는데..
문득 이런 생각이 들었다. Number field 를 Character 로 바꾸어야만 하나?
혹은 Character를 number field에 넣을때 변환해야 하나?
그래서 실험해본다.
This is test Source!!!
(24년에 이글을 보고 깨달은 점... 아.... 개념이 틀렸구나..ㅎㅎㅎ )
24.02 간단 추가설명함...
type N 으로 선언된 것들은 numeric character
즉 숫자형 문자로.... 문자필드가 아니다...
이걸로 선언하면 어찌되냐면 자릿수대로 0이 찬다.
즉, 숫자필드6자리 10을 N타입 6자리로 보내면
000010 이 되는것이다....
그래서 진짜 문자로 선언된 필드의 숫자를 숫자필드에
넣으려면 안전하게 아래 펑션을 이용해라...
N 타입선언은 NUM TO CHAR
CHAR TO NUM 개념은 아니란 생각이 들고
Num to num 개념에 가깝다는 생각이 든다...
N이란게 결국 숫자형 문자니까.. 숫자만 들간다.
실제 코딩시 char 필드를 숫자필드에 넣고싶으면
펑션쓰는게 안전한게 char 에 숫자 뿐만아니라
문자도 올 수 있기에 덤프 우려가 있어서 그렇다..
data : lv_char1 type char6,
lv_num1(6) type n value '20' ,
LV_CHAR2 TYPE CHAR6 VALUE '30',
LV_NUM2(6) TYPE N.
lv_char1 = lv_num1. "NUM TO CHAR
lv_num2 = lv_char2. "char to num 이다
write:/ lv_char1, lv_num1. case 1
WRITE:/ lv_char2, lv_num2. case 2
이것에 대한 결과는
Char num
000020 000020 case1 num to char
30 000030 case 2 char to num
으로 나온다.
결국. number to char 는 딱히 펑션을 쓸 필요가 없다.. 그대로 들어가는거고 (0까지 input 된다)
char to num 은 자동으로 뒤부터 30이 들어가니 특별한 경우가 아니면 쓸 필요가 없다.
이러한 일은 Interface 시에 자주 일어나는데,
Interface 받을때는 거의 char 로 넘어오고 해당 char 를 sap 에 맞게 num 필드에 넣어주는 경우가 생긴다...
자릿수가 똑같다면 그냥 때려 박아도 상관 없다.......
덤프나 오류는 전혀 안나니까 걱정말고...
이정도는.... 실험하면서 알아가면 까먹지 않을것이당..
난 그래도 펑션을 쓰고 싶다... 라면
CALL FUNCTION 'MOVE_CHAR_TO_NUM'
EXPORTING
chr = gt_h601d-zvsnr
IMPORTING
num = lv_num
EXCEPTIONS
convt_no_number = 1
convt_overflow = 2
OTHERS = 3.
이 펑션을 참조해라
'ERP-SAP > ABAP' 카테고리의 다른 글
<ABAP> SALV 02. Normal Display (0) | 2012.08.29 |
---|---|
<ABAP> SALV 01. Hierarchical List (0) | 2012.08.29 |
<ABAP> Dictionary (테이블) 데이터 강제 수정, 강제 입력 방법 (0) | 2012.08.23 |
<ABAP> Domain text 읽어오는 perform 만들기 (0) | 2012.08.22 |
<ABAP> SAP MEMORY, ABAP MEMORY 사용법 및 강좌 (0) | 2012.08.16 |