Skip to Content

Text infoobjects (Part 1)

In the BW forums quite often questions are popping up about errors while loading texts. Here some examples:

Re: Error when uplaoding data from R/3

Re: Invalid characters in Characterstics

Data load error

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.

Solution 1:
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.

Solution 2:
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.

Solution 3:
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)

You must be Logged on to comment or reply to a post.
  • Hi,

    Welcome to Blogging World ! Perhaps, I would not be in a very good position to comment about the blog, but nevertheless, a request would be to structure your weblog into bullets/links/headings. More easy to read that way. You need to use a few html tags. W3Schools is a great site for good resource on html.

    Subramanian V.

  • Its a really nice blog , I have few things to clearify,why is it that only while activation ODS identifies the invalid chararters, is there no other stage where it is checked before it enters the BW system? and suppose I am moving same text data directly to the cube will it pose any problem there?

    This has been a issue many times (invalid characters) cant SAP come up with a good solution for this.

    and Regards,

    • as long as the texts are not stored in the master data and sid table of the related infoobjects, there is no check for the content of the field. You can even load the texts into ods if it is not enabled for reporting. If a ods is enabled for reporting or you post the data to a cube, the system is assigning a sid for the text. This is exactly the moment, when the content of the field gets checked.