2016-04-27 3 views
0

Ich möchte wissen, ob der Workflow-Prozess abgeschlossen ist oder nicht.Sitecore Wissen, ob der Workflow-Prozess abgeschlossen ist (Genehmigter Status und veröffentlicht)

Was ich tun wollte, ist: ich eine Baugruppe erstellt und einmal Workflow-Prozess wird Endzustand oder Auto-Publish Arbeit getan ist, wobei das Verfahren in der Baugruppe auszuführen.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
     <events> 
      <!-- Once Workflow autoPublish is done, do this for CDN --> 
      <event name="publish:complete:remote"> 
       <handler type="My.Class.Name, Assembly.Name" method="MethodName"> 
       </handler> 
      </event> 
     </events> 
    </sitecore> 
</configuration> 

Wie kann ich das tun ??

+0

Jeder Workflowbefehl könnte Aktionen enthalten. Ist es eine Option für Sie, dem Befehl, der das Element zum endgültigen Workflow-Schritt bewegt, eine Aktion hinzuzufügen? – Anton

+0

@Anton Nr. Die Versammlung ist über mein kundengebundenes Ereignis, das über Zwischenspeicher ist. Wenn ich mehrere Assemblies im Aktionsfeld hinzufügen kann. Es wäre toll. – Jay

+0

können Sie viele Aktionen unter einem Befehl hinzufügen. Einer von ihnen könnte Ihre Methode und Ihre Assembly enthalten. – Anton

Antwort

3

Alle Aktionen, die Sie unter Arbeitsablaufbefehl ausführen, funktionieren auf ähnliche Weise wie normale Pipelines und Prozessoren in Ihren Konfigurationsdateien. Aber in diesem Fall ist der Befehl Pipeline und Aktion ist Prozessor.

Um also etwas nach dem Auto-Publish-Befehl auszuführen, sollten Sie nach dem Auto-Publish-Befehl einen weiteren Befehl hinzufügen. Dieser neue Befehl sollte eine Verknüpfung zu der von Ihnen auszuführenden Methode enthalten.

+0

erfordert dies manuelle Intervention? Das heißt, nach der automatischen Veröffentlichung auf den Befehl zu klicken? –

+0

ja, es erfordert. Aber ohne Befehlsknopf (wenn Sie den Workflow-Status direkt ändern) wird Auto-Publish auch nicht aufgerufen. Wenn es sich um Fragen zu Workflows handelt, sollte dies über zusätzliche Aktionen geschehen. Wenn es sich um eine Veröffentlichung handelt, sollten Sie Ereignisse verwenden. P.S. Auch ohne manuelles Eingreifen können Sie den Workflow-Befehl programmgesteuert aufrufen. Dann werden alle Befehlsaktionen ausgeführt. – Anton

0

Es hängt davon ab, was Sie wirklich wollen. Möchten Sie wissen, dass das bestimmte Element den Workflow bestanden hat, oder möchten Sie auch wissen, dass die asynchrone Veröffentlichungsaktion abgeschlossen wurde? Das Definieren einer zusätzlichen Aktion nach der automatischen Veröffentlichung ist definitiv der einfachste Weg. Das Hinzufügen eines Ereignishandlers ist ebenfalls möglich, aber komplexer, da der Ereignishandler für jede Veröffentlichung von Elementen/Websites ausgelöst wird. Wie werden Sie unterscheiden?

Ich sehe Sie verwenden die Veröffentlichung: komplett: remote-Ereignis, aber ich frage mich, ob Sitecore sogar verwendet wird. HtmlCacheClearing zum Beispiel wird im publish: Ende: Remote-Ereignis ausgeführt.

+1

publish: complete: remote wird aufgerufen, aber nur in den neuesten Versionen. Nach der Einführung des Ereignisses gab es einen Fehler, der den Aufruf verhinderte. – Gatogordo

+0

Wusste das nicht, danke! –

Verwandte Themen