cancel
Showing results for 
Search instead for 
Did you mean: 

! and # symbold using RSKC

former_member627490
Participant
0 Kudos
453

Hi SDN Experts,

I'm going through hard time fixing this special chars in BW load. I know we can use ALL_CAPITAL to allow all special character except ! and # as these are not allowed in BW as first character. Also I have gone through the blogs and followed the steps:

/people/sap.user72/blog/2006/07/08/invalid-characters-in-sap-bw-3x-myths-and-reality-part-1

But I forgot to add the code in my update routine:

  • Exclamation mark is not permitted as a first symbol of the field

*content

result = TRAN_STRUCTURE-/BIC/ZMSEGNAME.

if RESULT(1) = '!'.

RESULT(1) = ' '.

endif.

  • Hash is not permitted at all

result = TRAN_STRUCTURE-/BIC/ZMSEGNAME.

while RESULT ca '#'.

RESULT+sy-fdpos(1) = ' '.

endwhile.

So now I have my data loaded in P (about 30 mill records) and there is only one row with value ! /4 as first letter. So I'm wondering without deleting the data from ODS (It took almost 20 hours to load) to update PSA / withoug updating the code and transport do we have any solution to this problem? Please advice

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

former_member627490
Participant
0 Kudos

Fixed using ABAP coding in update rules

Answers (2)

Answers (2)

former_member182343
Active Contributor
0 Kudos

Hi Ganesh,

If you dont want to update rules with code and not to transport. You will get temporary solution.

- Edit data at PSA level and update it to target. This may equires to do again in futue if any special charectrs will come.

- For DSO error stact DTP doesnt work. To make it work need to follow other process.

- I suuggest you to udate rules with ABAP code and ransport it and fix it permanetly.

DATA A TYPE /BIC/OIA_ADDLINE.

DATA: L_LEN TYPE I,

      L_TIME TYPE I.

MOVE SOURCE_FIELDS-LOCAT TO A.

TRANSLATE A TO UPPER CASE.

L_LEN = STRLEN( A ).

DO L_LEN TIMES.

  IF  A+L_TIME(1) CN

    ',<>?/\:;"''ABCDEFGHI JKLMNOPQRSTUVWXYZ!%^&*()__+=1234567890'.

    A+L_TIME(1) = '~'.

    ENDIF.

     L_TIME =  L_TIME + 1.

     ENDDO.

     REPLACE ALL OCCURRENCES OF '~' IN A WITH SPACE.

     CONDENSE A.

     RESULT = A.

- rvc

Former Member
0 Kudos

Hi I tried below. code in Transformation.

if RESULT(1) = '!'.

RESULT(1) = ' '.

endif.

This code is working fine for any other characters than '!'.  For example below code is working fine.

if RESULT(1) = '#'.

RESULT(1) = ' '.

endif.

But The code is not working for '!' mark in Transformation for a text field.  Is there any reason.

0 Kudos

Hi Chinmay

did you solve your problem ?

I am on BW7.4

I tried some formula in transformation but the character ! is not recognized though other works fine.

Thanks to keep me update,

Regards