제목이 좀 어색하긴 하지만 지금은 딱히 붙힐 제목이 없어서 일단 저렇게 합니다. ^^.
1. PSA 에서 DSO 로 CHARACTERISTICS 을 반영 하면서 아래와 같은 메시지가 나오는 경우가 있습니다.
ABAP 에서는 표현되지 않는 문자로 화면상에는 # 으로 표시 되지만 실제로 아스키 코드값은 # 에 해당하는 코드 값이 아니라
'00' ~ '1F' 에 해당하는 값이라고 합니다.
Message no. BRAIN290 Diagnosis Characters that have a hexadecimal display between HEX00 and HEX1F are not permitted in characteristic values. The character at position 17 is one of these characters. The value is therefore not permitted. Note that these characters cannot be displayed and are therefore displayed as '#'. The actual character '#' has the hexadecimal display HEX23. |
문제가 되는 문자는 사용하지 않을 문자라 ' ' 으로 아래와 같이 변환했습니다.
DATA : REX TYPE X,
HEX_START TYPE X VALUE '00',
HEX_END TYPE X VALUE '1F'.
CALL METHOD cl_abap_conv_out_ce=>uccpi
EXPORTING
CHAR = INPUT_CHAR
RECEIVING
UCCP = res.
IF res >= HEX_START AND RES <= HEX_END.
INPUT_CHAR = ' '.
ENDIF.
2. 유사하게 DSO 에서 CUBE 로 데이터 넣을 때의 문제도 있습니다.
Diagnosis
Only the following standard characters are valid in characteristic values by default:
!"%&''()*+,-./:;<=>?_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Furthermore, characteristic values that only consist of the character # or that begin with ! are not valid. |
DATA: N TYPE I,
POS TYPE I,
RES TYPE X,
HEX_CHAR TYPE X VALUE '5F', "_"
HEX_START1 TYPE X VALUE '21', "!"
HEX_END1 TYPE X VALUE '3F', "?
HEX_START2 TYPE X VALUE '41', "A
HEX_END2 TYPE X VALUE '5A', "Z
HEX_START3 TYPE X VALUE '61', "a
HEX_END3 TYPE X VALUE '7A'. "z
소문자 a ~ z 를 제외하면 일단 안내 메시지 부분에 해당하는 hex code 값 입니다.
소문자는 혹시나 해서 추가 해 봤는데, cube 에 올리는 InfoObject 에 설정이 대문자로 입력하도록 되어 있는 경우는 사용할 일이 없을 듯 합니다.
스페이스가 HEX CODE 로 20 인듯 한데 이것도 DSO 에서 CUBE 로 넣을 때 오류로 걸리는 경우가 있는듯 합니다.
IF NOT ( RES = HEX_CHAR OR
( RES >= HEX_START1 AND RES <= HEX_END1 ) OR
( RES >= HEX_START2 AND RES <= HEX_END2 ) OR
( RES >= HEX_START3 AND RES <= HEX_END3 ) ).
INPUT_CHAR = ' '.
ENDIF.
와우! 좋은 정보 감사드립니다^^