Questions & Answers

SOLVED
Wellmer
I'm new here

Generierungsauftrag - Setzen von Variable und Auslesen in den Projekteinstellungen

Jump to solution

Hallo zusammen,

ich bin wie in Zugriff auf Variablen in der Auftragsplanung vorgegangen.

ich habe รผber den Variablen-Tab in der Generierungsaktion eine Variable gesetzt:

Auftragsvariable.png

Auf diese greife ich wie folgt in den Projekteinstellungen zu:

$CMS_SET(void,#global.logWarning("job_isDebugEnabled: " + job_isDebugEnabled))$

Im Log bekomme ich dann folgende Meldung:

WARN  16.04.2018 09:15:34.773 (de.espirit.firstspirit.generate.SiteProduction): job_isDebugEnabled: null

Wir nutzen folgende Version:

FirstSpirit SiteArchitect 5.2.905.76007

Version Server: 5.2.905.76007

Java Version: 1.8.0_121 32bit Oracle Corporation

Betriebssystem: Windows 10 10.0 x86

Hat hier jemand noch eine Idee?

GruรŸ

Christian

PS

In der Dokumentation zu dieser Version findet man im Kapitel "9.6.4 Konfiguration des Generierungsauftrags" (immernoch) keinen Hinweis zur Verwendung der Variablen.

0 Kudos
1 Solution

Accepted Solutions

Deine Vermutung ist korrekt. Im Seitentemplate ist die Variable sichtbar.

Was aber dieses Feature irgendwie absurd macht, da es dann ja nicht fรผr "Einmal-Einstellungen" in den Projekteinstellungen zu verwenden ist.

Gelรถst habe ich das wie folgt:

Zusรคtzliche Aktion "Script ausfรผhren" vor der Aktion "Generierung ausfรผhren" mit folgendem Code eingefรผgt:

context.setProperty("context_isDebugEnabled", true);

Und Folgender Schnipsel in die Projekteinstellungsseite:

$-- please overrite this value by using script task and set context variable "context_isDebugEnabled", example: context.setProperty("context_isDebugEnabled", true); --$

$CMS_SET(set_isDebugEnabled, if(#global.scheduleContext.getProperty("context_isDebugEnabled").isEmpty, false, #global.scheduleContext.getProperty("context_isDebugEnabled")))$

$CMS_SET(#global.debugMode, set_isDebugEnabled)$

$CMS_SET(void,

    if(set_isDebugEnabled,

    #global.logWarning("debug mode ON - do not use this in production"),

    #global.logInfo("debug mode OFF")))$

View solution in original post

0 Kudos
9 Replies
witt
I'm new here

Hallo Christian,

an welcher Stelle schaust du Dir aktuell die Log-Meldung an? In der Vorschau oder ist das eine Logausgabe wรคhrend der Generierung/der Ausfรผhrung des Auftrages?

GruรŸ,

Daniel

0 Kudos

In das Log des Generierungsauftrages.

0 Kudos

Kannst du dir mal die Variable in einer Seite ausgeben? Ich vermute, im Kontext der Projekteinstellungsseite sind die Variablen noch nicht verfรผgbar.

Peter
0 Kudos

Deine Vermutung ist korrekt. Im Seitentemplate ist die Variable sichtbar.

Was aber dieses Feature irgendwie absurd macht, da es dann ja nicht fรผr "Einmal-Einstellungen" in den Projekteinstellungen zu verwenden ist.

Gelรถst habe ich das wie folgt:

Zusรคtzliche Aktion "Script ausfรผhren" vor der Aktion "Generierung ausfรผhren" mit folgendem Code eingefรผgt:

context.setProperty("context_isDebugEnabled", true);

Und Folgender Schnipsel in die Projekteinstellungsseite:

$-- please overrite this value by using script task and set context variable "context_isDebugEnabled", example: context.setProperty("context_isDebugEnabled", true); --$

$CMS_SET(set_isDebugEnabled, if(#global.scheduleContext.getProperty("context_isDebugEnabled").isEmpty, false, #global.scheduleContext.getProperty("context_isDebugEnabled")))$

$CMS_SET(#global.debugMode, set_isDebugEnabled)$

$CMS_SET(void,

    if(set_isDebugEnabled,

    #global.logWarning("debug mode ON - do not use this in production"),

    #global.logInfo("debug mode OFF")))$

0 Kudos

Was aber dieses Feature irgendwie absurd macht, da es dann ja nicht fรผr "Einmal-Einstellungen" in den Projekteinstellungen zu verwenden ist.

Der Einsatz-Zweck ist Variablen zu รผberschrieben, die im Struktur-Root-Knoten gesetzt sind.

Peter
0 Kudos

Hallo Peter,

dann bitte das in eurer Dokumentation auch genauso beschreiben.

Eine weitere Ergรคnzung, dass die Variablen nicht in den Projekteinstellungen zur Verfรผgung stehen, wรคre sicherlich ebenfalls hilfreich.

Oder ihr denkt ggf. darรผber nach sie auch dort verfรผgbar zu machen.

Meine Stimme habt ihr! ^^

GruรŸ

Christian

0 Kudos

Hallo Christian,

Meine Stimme habt ihr! ^^

Das ist ja ein valider Einsatzzweck, da kann ich mir gut vorstellen, dass da noch mehr Stimmen fรผr einsammeln kannst.
Wichtig ist halt, das beide Einsatzzwecke funktionieren.
Stell doch bitte einen Feature-Request dafรผr ein. Du kannst dabei auf diese Diskussion verweisen und das Ticket CORE-7867 referenzieren.

Den Hinweis fรผr die Dokumentation nehme ich davon unabhรคngig gerne auf.

Danke und GruรŸ,

Peter

Peter
0 Kudos

Hallo Peter,

ist hier zu finden: Generierungsaktionsvariable in den Projekteinstellungen verwenden

GruรŸ

Christian

0 Kudos
seegers
Returning Observer

Auch wenn es schon eine Weile her ist, ich hatte dies fรผr mich einmal so lรถsen kรถnnen, um in den Projekteinstellungen an die entsprechenden Variabeln zu kommen:

  1. //Abruf
  2. $CMS_SET(generationContextVars,{:})$ 
  3. $CMS_FOR(var,#global.scheduleContext().getTask().getVariables())$ 
  4.     $CMS_SET(void,generationContextVars.put(var.getKey(),var.getValue()))$ 
  5. $CMS_END_FOR$ 
  6. //Zugriff
  7. $CMS_VALUE(generationContextVars.dv_varName)$ 

Funktioniert natรผrlich nur, wenn eine Generierung lรคuft; fรผr die Vorschau sollte mit $CMS_IF(#global.preview)$ noch eine Alternative eingebaut werden.

GruรŸ,

Renรฉ

0 Kudos

Type a product name