In the BW forums quite often questions are popping up about errors while loading texts. Here some examples:
There are a lot more and this is not really representative, but I think it already shows the issue.
As you can see, basically there are two standard solutions to get these fixed.
add the not allowed characters to table rsallowedchar using transaction RSKC.
This works very often but still it is limited, because it not possible to add more than 72 characters.
in the maintenance screnn of the infoobject in question, click the checkbox for lower case letters.
This is also very helpful and in combination with solution 1 you will be able to load almost every kind of texts to BW.
Now I will introduce another solution which might be of some interest for some implementations.
For this I will take the text as a description. Here now the step by step explanation.
a) identify the object, the source field e.g. from R/3 vbak-bstnk which is the order number customer in SD.
b) create a infoObject for it e.g. ZBSTNK of type numc, length 10 with long text, without master data. In the Bex settings set it to display as text.
c) create a table in BW with the following fields: zzbstnk_num of type numc and length 10, zzbstnk_txt of type char and lenght 60.
d) create a number range object in transaction SNRO
e) add your new infoobject ZBSTNK to your infosource
f) create a routine for your new infoobject in your transfer rules doing the following:
– check your coming text (bstnk) against your table
– if the text already exists in the table take the number and assign it to your result field.
– if the text doesn’t exsit in the table get a new number from your number range object, post that number into your result field and insert this number together with the text into your table.
g) add your new infoobject (ZBSTNK) to your datatargets.
h) always post the new assigned number to this object.
i) create a generic extractor on your table
j) replicate the datasource
k) add your infoobject as infosource and assign the new datasource to it.
l) map field zzbstnk_num to ZBSTNK and zzbstnk_txt to 0txtlg
m) create a infopackage and load the data
As you are now just dealing with a new object and a loaded text, you can assign whatever text you like to it without any issues.
Another tricky thing with this solutions is that you will be able to do some checks on the data. vbak-bstnk can contain lots of different informations. As it is a free data entry in R/3 without a check table behind, sometimes it is filled with the order number with or without leading zeroes or it is filled with some other information. Now you enhance step f) by adding leading zeroes to a number or by translating the information differently by changing abrieviations to their long text and other possible translations. Doing this might also keep your amount of data small and additionally the dimensions.
to be continued…
(with long texts)