안녕하세요^^?
클라이언트 사정상 RFC로 데이터를 테이블에 담아서 보내지 못하고
STRING변수 하나에 자릿수만큼 붙여서 보내는 작업중에, 한글정보가
담긴 필드를 보내니깐 처음엔 한글이 깨진다고 해서 아래와 같이 함수를
사용했구요.
이번에는 한글을 1바이트씩 줄여서 그런지 뒤쪽에 붙는 자릿수가 안맞더라구요.
그래서, 수소문 끝에 HR_KR_STRING_ADJUST 함수를 써보라고 하는데요.
이함수를 쓸 때 궁금한 점은 필드하나하나를 STRING에 담을때 써야 하는것 같은데
어떻게 써야 하는지 알려주시면 좋겠습니다.
----------------------------생략-------------------------------------------
LS_DATA-REALDATA+1879(9) = OTAB2-ST_MAX_RT.
LS_DATA-REALDATA+1888(9) = OTAB2-FU_MAX_RT.
LS_DATA-REALDATA+1897(9) = OTAB2-OP_MAX_RT.
LS_DATA-REALDATA+1906(9) = OTAB2-FI_MAX_RT.
LS_DATA-REALDATA+1915(1) = OTAB2-EAI_LINK_CPL_YN.
LS_DATA-REALDATA+1916(1) = OTAB2-PUSE_YN.
LS_DATA-REALDATA+1917(20) = OTAB2-DAL_DT.
LS_DATA-REALDATA+1937(7) = '1234567'. "otab-DEAL_OGNZ_NO. " EAI만 있음
LS_DATA-REALDATA+1944(8) = '12345678'. "otab-DEAL_PRAF_NO. " EAI만 있음
LS_DATA-REALDATA+1952(20) = '12345678901234567890'. "otab-DA
*한글 1byte로 바꾸는 함수==========================================
* data: CONV type ref to CL_NLS_STRUC_CONTAINER.
* data: LV_BUFFER(200) type C.
* data: LV_DATA like ZSCFMIF_INFO_HEADER_RFC.
* data: L_STRING type Z_CHAR1988.
LV_DATA = LS_DATA(2572).
CONV = CL_NLS_STRUC_CONTAINER=>CREATE_FOR_FIXED_CODEPAGE( CODEPAGE = '8500' ).
* conv->cont_to_struc( exporting cont = lv_buffer
* langu = '3'
* importing struc = lv_data ).
CONV->STRUC_TO_CONT( exporting STRUC = LV_DATA
LANGU = '3'
importing CONT = L_STRING(2572) ).
*한글 1byte로 바꾸는 함수==========================================