Internationalize DesignStudio Applications by reusing RSBEXTEXTS table from BEx WAD
Hi community,
in my last DesignStudio customer training my participants were discussing about possibilities to internationalize a DesignStudio application. Here is a way that seems to be a good one even if it is still a workaround for a missing native functionality coming hopefully soon.
If you have used BEx Web Application Designer you know that there is a table in BW called RSBEXTEXTS with the following structure…
Step 1:
Create a generic datasource for that table in your BW system
Step 2:
Create a new characteristic having only the minimum elements key and language dependent text
Step 3:
Create a dataflow from your datasource to the text table with all needed elements using the following mapping. I don’t want to explain all the details which elements are involved, I think all BW people know that 🙂
Step 4:
In your Application create a new datasource directly on your new infoobject (step 2). No need for a query or something like that. Go to the “Initial View” editor so that your Initial View looks like that…
Step 5:
Add a dropdownbox to your application and make it not visible in the properties. This element will be used later on for getting the right text.
Step 6:
Fill the dropdownbox with the elements from your datasource e.g. in the Application OnStartup event with the code
DROPDOWN_1.SetItems(DS_1.getMemberList(<<name of your infoobject>>, MemberPresentation.INTERNAL_KEY, MemberDisplay.TEXT, <<maxnumber of elements in your infoobject>>));
Step 7:
Now you can fill your TextBoxes with the language dependend texts assigned to your TextKeys you know from BexWAD with code like that:
DROPDOWN_1.SetSelectedValue(“<<id of your element>>”);
TEXT_1.SetText(“DROPDOWN_1.GetSelectedText()”);
That’s all 🙂 Hope you like it.
Dirk
Very slick, I like this approach!
Nice & easy approach, we implemented this successfully. Do you know a way to influence the backend language without changing the user settings (e.g. in SU3 in BW system)? I'd like to set the language via Design Studio URL variable and to hand this over to the BW.
Best regards,
Michael
Hi Michael,
there is only one thing that might be a solution for that. I did not try, but might be worth to build a test case.
The idea is to build 2 OLAP connections with fixed languages lets say DE and EN. In the DS Application when you want to switch the language you can script to assign a new source to the existing datasource. You can use
DS_1.assignDataSource(dataSourceConnection, dataSourceType, dataSourceName) as command. If you then assign the same query using the other connection... that might work 😉
Dirk
Thanks. A quite comfortable workaraound.....
I wanted to share our long-term-experiences with this solution (all of our DS applications use this approach since 1.5 years):
Pro:
Con:
Best regards,
Michael
I found a reason/solution for our performance impact, so this is not such a big disadvantage any more: