Configuring Siebel Business Applications > Localizing Siebel Business Applications > Localizing a Multilingual List of Values >

Searching a Multilingual List of Values


Searching a multilingual list of values (MLOV) can consume significant resources because this search requires a join to the S_LST_OF_VAL list of values in the SQL code. To improve performance if many records and multiple languages exist, you can use the Fieldname.TransCode function in the Search Specification property of the business component. This function gets the untranslated language-independent code (LIC) from a column in the base table instead of getting the display value in the current language. It uses the following format:

[Fieldname.TransCode] = 'lang_ind_code'

where:

  • TransCode is case-sensitive. You cannot use the following formats:

    Fieldname.Transcode

    Fieldname.transcode

Example of Searching a Multilingual List of Values

For example, the Status field in the Service Request business component references the SR_STAT_ID column. This column stores the language-independent code for the Open value. A query on the Status field with a multilingual list of value always returns the display value for Open in the current language. For example, if the language is DEU, then it returns Offen. The Language Parameter sets this language.

Assume you must set a language-independent search specification and you use the following code:

[Status] = LookupValue('Open')

In this situation, to find the DEU display value for the Open value for the language-independent code, and to compare this value to the language-independent code in the SR_STAT_ID column, the DEU object manager adds a join to the S_LST_OF_VAL list of values in the SQL. This configuration makes the query more complex and difficult to support with an index.

To simplify the SQL command, you can use the following search specification:

[Status.TransCode] = 'Open'

The Status.TransCode function in the SQL query can get the value for the value directly from the database column. Siebel CRM does not translate the value for the language-independent code into the display value.

The Fieldname.TransCode function improves the performance of a query on an MLOV column, particularly if the query or search specification includes other columns from the same base table. This improvement occurs because Siebel CRM can use a combined index that includes the MLOV column. It cannot do this if it uses the LookupValue function or if it queries directly on the MLOV.

Using a Calculated Field or Script to Search a Multilingual List of Values

You can use the Fieldname.TransCode function with a calculated field or the GetFieldValue business component method. For example, you can:

  • Create a calculated field that uses the Priority.TransCode calculated value in the Service Request business component.
  • Use the this.GetFieldValue("Priority.TransCode") statement in a script.

This configuration only works if you use an MLOV field, such as the Translation Table Name property of the column that this field references.

Configuring Siebel Business Applications Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices.