- Description of the problem: Data load failure due to hexadecimal character
- Symptoms: Activation fails in Standard DSO
- Root Cause/Investigation (Indicate Steps of Investigation and Replication):
BW / BI system have multiple source system. So if while maintaining data in source system user might enter special character to highlight particular field or local language word so which will be interpreted as special / non recognised or hexadecimal character in SAP
- Workaround (If Any):
- Maintain correct data in Source system
Myth About Hexadecimal Characters –
Usually consultants working on such ETL thinks # is hexadecimal character. But fact is hexadecimal character is not permitted local language/ special character. Such characters are visible in PSA in format of #. Please note # & hexadecimal character both are different.
# have Hex value 23 but other special character in local language will have different hex value. Now if you are writing code to overcome this issue then please note you have to consider Hex values not ‘#’. I have seen many consultants are writing code to eliminate # and results failure of solution to overcome scenario.
1. Correcting the data in the source system
We can share list of permitted character with user & request them to use listed characters while maintaining description or master data. Also we can change source data so correct version of data can be extracted in BW.
2. Change the data in PSA
Alternate way to repair activation failure is to remove special character from flow. Special characters are not allowed while DSO activation. SID for such records will be not assigned. Data get loaded with below 3 steps in DSO –
- IP – IP will load data from source system to PSA
- DTP – DTP will load data from PSA to DSO (New Table)
- Activation – Data get activate & records are inserted into Active table of DSO.
PSA – Persistent Staging area is temporary storage which contains copy of source data. I have mentioned copy of source data as this is 1st level storage in BI and no ETL actions are performed yet in BW for this data. PSA permits to edit every individual record before we load further.
- Go to PSA
- Select request and check data from PSA
- Select Edit option & edit required field
- Save changes.
- Resume data load once changes are saved.
3. Field routine
Write a field routine in transformation to exclude special or hexadecimal characters from flow
a. Go to Transformation
b. Select Field routine
Write a routine to replace special character.
Logic to write a code –
- Copy field value to temp variable
- Compare available character with permitted character in RSKC
If STRLEN times CN ‘list of characters’ #Condition to find non permitted characters
Replace character with space.
#loop counter will be based on length of string
- Replace non permitted/hex characters with space
4. Maintain Special character in RSKC Tcode
We can maintain all required characters in RSKC tcode after proper business approval.
Please note – We can maintain only special character in RSKC, it is not possible to maintain hex character in RSKC as Hex character can not be entered via standard QUERTY keyboard.
If you are maintaining # in RSKC that doesn’t mean you have maintained hex character value. Hex character is only interpreted as ‘#’ in PSA.
Depends on individual to select the method to overcome special char issue in BW ETL.