mostafa
I'm new here

Formular-Felder / Metadaten bei der Generierung setzen und neu auslesen

Hallo,

Case-Beschreibung

ich habe ein Problem bei einem Veröffentlichung-Ablauf. Der Prozess besteht aus mehreren Aktionen. Hierbei sind zwei Aufgaben am Anfang dieses Prozesses von Bedeutung:

  1. 1- Aktion1: Hier wird eine Executable Klasse innerhalb eines Moduls aufgerufen, welche Metadaten für freigegebene Medien im Medienstore setzt, falls diese bis zum Zeitpunkt der Veröffentlichung nicht definiert sind.
  2. 2- Aktion2: Ist eine klassische Generierungsaufgabe des im CMS gepflegten Inhalts über die entsprechenden Templates.

Problem-Beschreibung:

In einer Template greife ich auf diese Metadaten. Obwohl für bestimmte Medien die Metadaten in der ersten Aktion gesetzt wurden, bekomme ich beim Auslesen diese in der Template bzw. im generierten Inhalt null-Werte.

Wenn ich jetzt das Veröffentlichen noch mal ausführe, werden die gesetzten Metadaten, die in der ersten Veröffentlichung gesetzt wurden, richtig ausgelesen.

Ich habe mit media.refresch() bzw. project.save() und project.refresh() nachdem Setzen der Metadaten in der entsprechenden Klassen oder in extra dafür definierte Skript innerhalb einer zwischen Aktion im Generierungsprozess probiert. Leider nix.

Fragen:

  1. 1- Darf man bei einem Generierung-Prozess keine Formular-Felder in einer ersten Aktion setzen, die dann während der Ausleitung in der nachfolgenden Aktion frisch ausgelesen werden?
  2. 2- Wenn es gestattet ist, wo konnte der Fehler sein?

Danke

Mostafa

0 Kudos
7 Replies
mostafa
I'm new here

Hallo zusammen,

ich habe das Problem gelöst, im dem ich den Auftrag in zwei Aufträge aufgeteilt hab.

jetzt aber die nächste Frage dies bgzl.:

kann man die Log-Messages des zweiten Aufrags in der Log-Meldung des ersten integrieren bzw. einbetten? Wenn ja wie?

Grüße

Mostafa

0 Kudos

Hallo Mostafa,

in dem Skript welches das Projekt verändert muss der Zeitpunkt, der generiert werden soll auf einen Zeitpunkt _nach_ dieser Änderung gesetzt werden. Dazu zum Beispiel am Ende des Scripts folgende Zeile hinzufügen, so dass der aktuelle Stand nach Ausführung des Script für die Generierung benutzt wird:

context.setStartTime(new Date());

Viele Grüße

Jörg

0 Kudos

Danke Jörg für die Hilfe Smiley Happy

Deine Lösung habe selber am Anfang probiert, jedoch ohne Erfolg. Damit es funktioniert, braucht man eine Methode wie setRevision(Date, [Project]) im ScheduleContext.

wie ich oben beschrieben hab, habe ich den Generierungsprozess in zwei Aufträge geteilt (erster Auftrag macht die Änderung und anschließend ruft/führt den zweiten (Generierungs-)Auftrag). Somit läuft, wie ich es gewünscht habe. Der Hacken dabei ist, dass man die Logs des zweiten Auftrags (welcher innerhalb des ersten Auftrags aufgerufen bzw. ausgeführt) nicht sehen und sie deshalb in den Logs der ersten Phase integrieren.

Ich kann auf alle Logs-Infos (TaskResults) der Aktionen im zweiten Auftrag über ScheduleEntryControl zugreifen. Meine Frage ist, wie kann ich diese TaskResults in den Logfiles-Fenster des ersten Auftrags einbetten.

Grüße

Mostafa

0 Kudos

Hallo Mostafa,

folgender Aufruf sollte dann eigentlich funktionieren, so dass man die Prozesse nicht aufteilen muss und auch das Problem mit den Logs nicht auftritt:

context.getProject().createTaggedRevision("Generation","needed for external database content");

context.setStartTime(new Date());

Viele Grüße

Jörg

0 Kudos

Halllo Jörg

Danke noch mal für die Hilfe. Ich glaube aber, dass nur mit einem Auftrag nicht funktionieren würde. Deswegen haben den Auftrag in zwei Entries gesplittet. Mein Problem ist, wie kriege ich, die Logs des zweiten Auftrag (welcher im ersten gestartet wird) im Logifiles-Gui des ersten Auftrag: Siehe Screenshots Unten

original Auftrag1-Logfiles

auftrag1.png

gewünschtes Ergebniss: Auftrag2-Logfiles in Auftrag1-Logfiles

auftrag2_in_1.png

Grüße

Mostafa

0 Kudos

Hallo Mostafa,

um das zu erreichen was du vor hast würde ich folgendes empfehlen.

Ein schönes Wochenende Smiley Wink

Jörg

0 Kudos

Hallo Jörg,

ich habe gedacht, wir entwickeln hier mit Java und nicht mit Assembler. Selbst mit Assembler würde ich sowas nicht auschließen ;-). Deine Botschaft ist aber angekommen!

Mostafa

0 Kudos