Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
HorstSchaude
Product and Topic Expert
Product and Topic Expert

With 1605 the Business Object Definition Language (BODL) will support a new type of nodes which can be used to display text in different languages dependent on the logon language (see Delta Highlights for 1605).

Imagine you have master data with some text maintained in the languages of your customers and want to display theses text in the individual logon language of each customer.

Currently you need a transient element, some ABSL coding to fill this element and an association based on a valuation with this transient field. :shock:

With the new annotation [Description] you need nothing of that stuff. :cool:

Precondition

The node with the text or descriptions has to have at least one element which is typed by a GDT with a language code component, so the resp. language can be determined (see example).

Of course this makes only sense if the node has a multiplicity to many.

This feature will work for identifiers at the Root node level as well as in other nodes.

Example

We will take this BODL for our example:

import AP.Common.GDT as apCommonGDT;

businessobject SomeBusinessObject {

    [AlternativeKey] [Label("Identifier")] element Id : ID;

    [Label("Quantity")] element Quantity : Quantity;

    [Label("Amount")]   element Amount   : Amount;

    [Label("Date")]     element Date     : Date;

    [Description] node SomeText [0,n] {

        [Label("Description")]         element Description     : LONG_Description;

        [Label("More Description")]    element MoreDescription : LONG_Description;

        [Label("Another Description")] element AnotherDescript : LONG_Description;

    }

    node ThisProduct {

        element ProductId : ID;

        [Description] node ProductDescription [0,n] {

            [Label("Description")] element Description  : LONG_Description;

        }

    }

}

The first task of this example is to use the language dependent content of the element Description of the node SomeText for the element Id of the Root node.

To show that this works not only at the Root node level we do the same for the identifier ProductId of the node ThisProduct.

User Interface

After activation this BODL you generate the UIs and define in the resp. UI model from which node the description has to be taken.

Just open the UI Designer for the resp. UI model: First we work on the OWL.

In the DataModel section we choose here the SAP_UUID and define in the “Design” tag the “IdentifierDescription”.

Here we choose from the Business Object model the element “Description” from the “SomeText” node. This means that this element even does not need to be part of the data model itself, but is taken from the Business Object model direct.

Finally we define in the Designer section for the same SAP_UUID element in the tag “CCTS Information” that the “Presentation Mode” will be “DescriptionOnly”.

We do the similar thing for the ProductID (as described above) in the ThingInspector UI, but here we choose “IDAndDescription” as “Presentation Mode”.

Runtime

After maintaining the resp. data in the several languages, let’s see what we get.

Of course the user needs to be assigned to the resp. work center. :wink:

  1. First we logon into the system with logon language “English”


  2. The OWL is showing us the English description for the identifier


  3. In the ThingInspector we verify the maintained language dependent descriptions


    and the ProductID


  4. So we try this for German


    and get this for the identifier


    and this for the ProductID


  5. The same for French


    will return


    as well as


That’s all, folks.

Horst

PS: Please excuse my French. :oops:

20 Comments