Loading

Maintenance of Characteristic contains invalid data (Special Character or Hexadecimal Character)

It happens many times that data load to BI objects got failed due bad data issue. We can resolved it temporarily by modifying the data at PSA and upload the same upward. But it is not a good practice and we can not have the authorization in production system to modify PSA so here are some permanent fix to overcome this issue.
Problem Statement:
When checking valid characters while loading data in BI objects, the system does not determine whether characters HEX00 to HEX1F are contained after you specify string ALL_CAPITAL as the valid character, while Data loading processes may terminate if the invalid characters HEX00 to HEX1F are used in the loaded keys. The system issues error messages BRAIN 060 "Value '&1' (hex.’&3') of characteristic &2 contains invalid characters" or BRAIN 290 "Error while writing master record "&1" of characteristic &2".
Solution: 
1. Enter string ALL_CAPITAL_PLUS_HEX in the maintenance of allowed supplementary
characters.

2. If above solution does not resolve the problem
Enter the special character in RSKC

3. If both of the above solutions do not resolve the problem write a cleansing routine in the
transformation for these characteristics.

Sample cleansing routine:

DATA : l_allow_char TYPE rsallowedchar-allowchar.
data: l_length type I,
l_act type i.
data l_txz01(40) type c.
if l_allow_char is initial.
CALL FUNCTION 'RSKC_ALLOWED_CHAR_GET'
IMPORTING
e_allowed_char = l_allow_char
EXCEPTIONS
OTHERS = 1.
endif.
l_txz01 = SOURCE_FIELDS-text. “In place of text use the Source Field from which object is mapping

TRANSLATE l_txz01 TO UPPER CASE.
if l_txz01 co l_allow_char.
RESULT = l_txz01.
Condense RESULT.
else.
l_length = strlen( l_txz01 ).
l_act = 0.
do l_length times.
if l_txz01+l_act(1) na l_allow_char.
l_txz01+l_act(1) = space.
endif.
l_act = l_act + 1.
enddo.
RESULT = l_txz01.
condense RESULT.
endif.

This code will capture all the Special Character maintained into RSKC. It will check whether the
character is available into RSKC if it not matched then it will replace all special or invalid
character with space.

Your comments and experiences about the contents are very welcome.