- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Generierungsauftrag - Setzen von Variable und Auslesen in den Projekteinstellungen
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:
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.
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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")))$
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In das Log des Generierungsauftrages.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Kannst du dir mal die Variable in einer Seite ausgeben? Ich vermute, im Kontext der Projekteinstellungsseite sind die Variablen noch nicht verfügbar.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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")))$
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Peter,
ist hier zu finden: Generierungsaktionsvariable in den Projekteinstellungen verwenden
Gruß
Christian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- //Abruf
- $CMS_SET(generationContextVars,{:})$
- $CMS_FOR(var,#global.scheduleContext().getTask().getVariables())$
- $CMS_SET(void,generationContextVars.put(var.getKey(),var.getValue()))$
- $CMS_END_FOR$
- //Zugriff
- $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é

