System-Skriptsprache: Allgemeine Funktionen, NLS-Funktionen (NLS functions)

Mithilfe der NLS-Funktionen lassen sich Business Objects in weiteren Inhaltssprachen öffnen. Zu den NLS-Funktionen gehören:

Grundlegende Informationen zu den allgemeinen Funktionen der System-Skriptsprache erhalten Sie im Dokument System-Skriptsprache: Allgemeine Funktionen.

getNLSContentLanguage

Name getNLSContentLanguage
Beschreibung getNLSContentLanguage gibt den ISO-Code der aktuellen Inhaltssprache zurück.
Signaturen String getNLSContentLanguage()
Parameter Keine
Ergebnis Der ISO-Code der aktuellen Inhaltssprache als eine Zeichenkette.
Fehlerquellen Keine.
Beispiele getNLSContentLanguage() gibt die aktuelle Inhaltssprache zurück.
Kontext ALL
Hinweise Die Inhaltssprache bestimmt u. a., in welcher Sprache mehrsprachige Attribute von Objekten in einer OLTP-Datenbank geöffnet werden.
Siehe auch getNLSDisplayLanguage

Folgendes Beispiel aus der Aktivitätsdefinition help.getNLSContentLanguage zeigt den ISO-Code der aktuellen Inhaltssprache an:

function create()
{
var r_contentLanguage := getNLSContentLanguage();

result.CONTENT_LANGUAGE := r_contentLanguage;
}

 

getNLSDisplayLanguage

Name getNLSDisplayLanguage
Beschreibung getNLSDisplayLanguage gibt den ISO-Code der aktuellen Anzeigesprache zurück.
Signaturen String getNLSDisplayLanguage()
Parameter Keine.
Ergebnis Der ISO-Code der aktuellen Anzeigesprache als eine Zeichenkette.
Fehlerquellen Keine.
Beispiele getNLSDisplayLanguage() gibt die aktuelle Anzeigesprache zurück.
Kontext ALL
Hinweise Die Anzeigesprache bestimmt u. a., in welcher Sprache mehrsprachige Attribute von Objekten in der Repository-Datenbank geöffnet werden.
Siehe auch getNLSContentLanguage

Folgendes Beispiel aus der Aktivitätsdefinition help.getNLSDisplayLanguage zeigt den ISO-Code der aktuellen Anzeigesprache an:

function create()
{
var r_displayLanguage := getNLSDisplayLanguage();

result.DISPLAY_LANGUAGE := r_displayLanguage;
}

 

setNLSContentLanguage

Name setNLSContentLanguage
Beschreibung setNLSContentLanguage setzt die aktuelle Inhaltssprache.
Signaturen setNLSContentLanguage(String language)
Parameter language ist der ISO-Code der neuen Inhaltssprache.
Ergebnis Nach dem Aufruf wird die Inhaltssprache geändert. Anschließend werden die mehrsprachigen Attribute aller Objekte aus einer OLTP-Datenbank in der geänderten Inhaltssprache geöffnet. Objekte, die vor dem Aufruf der Funktion geöffnet wurden, werden nicht verändert.
Fehlerquellen Keine.
Beispiele setNLSContentLanguage("en") setzt die aktuelle Inhaltssprache zu Englisch.
Kontext ALL
Hinweise Wenn ein Benutzer einen Prozess startet, wird der Prozess im Kontext der in den Benutzereinstellungen hinterlegten Inhalts- und Anzeigesprachen ausgeführt.
Siehe auch setNLSDisplayLanguage, setNLSLanguages

Folgendes Beispiel aus der Aktivitätsdefinition help.setNLSContentLanguage zeigt die Bezeichnung eines Artikels in allen aktiven Inhaltssprachen:

function create()
{
var p_item := parameters.ITEM;
var r_descriptions := "";

var item := loadItem(p_item);

if (not isNull(item)) {

/* get system and database names */
var systemName := cast(String, call("help.js.getSystemName", hashMap()).NAME);
var databaseName := cast(String, call("help.js.getDatabaseName", hashMap()).NAME);

/* get system and database Guid */
var system := getByBusinessKey("CONFIGURATION", CisObject(com.cisag.sys.configuration.obj.System), systemName, 1);
var database := getByBusinessKey("CONFIGURATION", CisObject(com.cisag.sys.configuration.obj.Database), system:guid, databaseName, 1);

/* query configuration database for active content languages */
var params as Unknown[];
add(params, database:guid);
add(params, 1); /* active version */
var activeLanguages := getCisObjectList("CONFIGURATION", "SELECT FROM com.cisag.sys.configuration.obj.DatabaseLanguage o WHERE o:databaseGuid = ? AND o:version = ?", params, 99);

/* get item description in all active content lanaguges */
for (l as CisObject(com.cisag.sys.configuration.obj.DatabaseLanguage) : activeLanguages) {
r_descriptions := r_descriptions + " [" + l:language + "] ";
setNLSContentLanguage(l:language);
item := loadItem(p_item);
r_descriptions := r_descriptions + item:description;
}
}
result.DESCRIPTIONS := trim(r_descriptions);
}

 

setNLSDisplayLanguage

Name setNLSDisplayLanguage
Beschreibung setNLSDisplayLanguage setzt die aktuelle Anzeigesprache.
Signaturen setNLSDisplayLanguage(String language)
Parameter language ist der ISO-Code der neuen Anzeigesprache.
Ergebnis Nach dem Aufruf wird die Anzeigesprache geändert. Anschließend werden die mehrsprachigen Attribute aller Objekte aus der Repository-Datenbank in der geänderten Anzeigesprache geöffnet. Objekte, die vor dem Aufruf der Funktion geöffnet wurden, werden nicht verändert.
Fehlerquellen Keine.
Beispiele setNLSDisplayLanguage("en") setzt die aktuelle Anzeigesprache zu Englisch.
Kontext ALL
Hinweise Wenn ein Benutzer einen Prozess startet, wird der Prozess im Kontext der in den Benutzereinstellungen hinterlegten Inhalts- und Anzeigesprachen ausgeführt.
Siehe auch setNLSContentLanguage, setNLSLanguages

Folgendes Beispiel aus der Aktivitätsdefinition help.setNLSDisplayLanguage setzt die Anzeigesprache zu der Korrespondenzsprache eines Partners und gibt die Bezeichnung eines ValueSets aus:

const State as valueSet(com.cisag.sys.workflow.ActivityState);

function create()
{
var p_partner := parameters.PARTNER;
var r_description := "";
var partner := loadPartner(p_partner);

if (not isNull(partner)) {
setNLSDisplayLanguage(cast(String, first(partner->Language:isoCode, getNLSDisplayLanguage())));r_description := valueSetDescription(State, 10);

}
result.DESCRIPTION := r_description;
}

 

setNLSLanguages

Name setNLSLanguages
Beschreibung setNLSLanguages setzt sowohl die aktuelle Inhaltssprache als auch die aktuelle Anzeigesprache.
Signaturen setNLSLanguages(String language)
Parameter language ist der ISO-Code der neuen Inhalts- und Anzeigesprache.
Ergebnis Nach dem Aufruf werden die Inhalts- und Anzeigesprachen geändert. Anschließend werden die mehrsprachigen Attribute aller Objekte aus der Repository und der OLTP-Datenbank in der geänderten Sprache geöffnet. Objekte, die vor dem Aufruf der Funktion geöffnet wurden, werden nicht verändert.
Fehlerquellen Keine.
Beispiele setNLSLanguages("en") setzt die aktuelle Inhalts-und Anzeigesprache auf Englisch.

setNLSLanguages(getCustomizingValue("com.cisag.app.General")->InternationalLanguge:isoCode) setzt die Inhalts-und Anzeigesprache zu der in der Customizing-Funktion Basis für den Mandanten hinterlegten internationale Sprache.

setNLSLanguages(getCustomizingValue("com.cisag.app.General")->Company->AddressData->Country-> Language:isoCode) setzt die Inhalts-und Anzeigesprache zu der Landessprache den Mandanten.

setNLSLanguages(parameters.object-> DeliveryCustomerData->CustomerPartner-> Language:isoCode) setzt die Inhalts-und Anzeigesprache zu der Korrespondenzsprache des Lieferempfängers eines von parameters.object referenzierten Vertriebsauftrags.

Kontext ALL
Hinweise Wenn ein Benutzer einen Prozess startet, wird der Prozess im Kontext der in den Benutzereinstellungen hinterlegten Inhalts- und Anzeigesprachen ausgeführt.
Siehe auch setNLSContentLanguage, setNLSDisplayLanguage

Folgendes Beispiel aus der Aktivitätsdefinition help.setNLSLanguages setzt die Inhalts- und Anzeigesprache zu der Korrespondenzsprache des Arbeitsgebers eines Benutzers und zeigt die Bezeichnung eines ValueSet-Eintrags in dieser Sprache an:

function create()
{
var p_partner := parameters.PARTNER;
var r_description := "";
var partner := loadPartner(p_partner);

if (not isNull(partner)) {
var company := getCustomizingValue("com.cisag.app.General"):company;
var employers := loadTargetsOfPartnerRelations(partner:guid, company, "Employee");
setNLSDisplayLanguage(cast(String, first(employers[0]->Language:isoCode, getNLSDisplayLanguage())));
r_description := valueSetDescription("com.cisag.sys.workflow.ActivityState", 10);
}
result.DESCRIPTION := r_description;
}

Czy ten artykuł był pomocny?