Forums

Home » Liferay Portal » Deutsch

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Philipp Tresp
Workflow Integration in Liferay
September 24, 2012 7:35 AM
Answer

Philipp Tresp

Rank: New Member

Posts: 2

Join Date: September 24, 2012

Recent Posts

Hey all!!!

Ich mache derzeit ein Praktikum und beschäftige mich zum ersten Mal mit Liferay und Workflow Engines. Bitte verzeit mir, wenn nicht alles hunderprozentig konform ausgedrückt ist, ich hab davor noch nie etwas damit zu tun gehabt. Daher bin ich auch um jede Hilfe dankbar!

Ich habe eine Frage zu Liferay und den Möglichkeiten in der Zusammenarbeit mit einer Workflow Engine. Wenn ich zum Beispiel Kaleo in Liferay integriert habe, habe ich die Möglichkeit den Workflow auf verscheidenen Ressourcen anzuwenden. Zum Beispiel Web Content, Wiki etc. Der Workflow greift, sobald ich einen neuen Eintrag erstellen oder updaten möchte. Nun meine Frage, wenn ich einen Eintrag / Content löschen möchte, greift der Workflow nicht. Gibt es eine Möglichkeit auch für diese Aktivität den Workflow zu integrieren? Weil so kann ja jeder Nutzer einfach etwas entfernen, obwohl dies vielleicht gar nicht gewünscht ist.

Die 2. Frage bezieht sich auf das Gestalten eines Workflows. Wenn ich hier zum Beispiel einem Manager ermöglichen möchte, dass er Inhalte direkt einstellen kann, aber einen "normalen Nutzer" nur über die Genehmigung durch den Manager, wie kann ich dies in meinem Workflow geltend machen? Kann ich das mithilfe eines Gateways machen und dann die "Rolle" der betreffenden Person abfragen? Nach dieser Quelle: http://www.liferay.com/web/igor.beslic/blog/-/blogs/14359753
wird jedem User eine ID zugeordnet, die könnte ich doch dann an dem gateway durch eine Bedingung abfragen oder?!

Ich bin für jede Hilfe von euch dankbar und ich hoffe ihr könnt mein Problem / Frage nachvollziehen. :-)

Vielen Dank und viele Grüße,

Philipp
Christoph Rabel
RE: Workflow Integration in Liferay
October 17, 2012 2:01 AM
Answer

Christoph Rabel

Rank: Regular Member

Posts: 106

Join Date: September 24, 2009

Recent Posts

Hi!

Zur ersten Frage kann ich nichts sagen, weiß ich nicht aus dem Stand.
Zweiteres ist relativ einfach. Man muss nur eine Condition einbauen:

 1        <condition>
 2        <name>review-or-approve</name>
 3        <script>
 4            <![CDATA[
 5                import com.liferay.portal.service.RoleLocalServiceUtil;
 6                import com.liferay.portal.kernel.util.GetterUtil;
 7                import com.liferay.portal.kernel.workflow.WorkflowConstants;
 8
 9                returnValue = "Review";
10                try {
11                    long userid = GetterUtil.getLong((String)workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
12                    long companyid = GetterUtil.getLong((String)workflowContext.get(WorkflowConstants.CONTEXT_COMPANY_ID));
13                    String[] roles={"Publisher","Administrator"};
14                    if (RoleLocalServiceUtil.hasUserRoles(userid, companyid, roles, true)) returnValue = "Approved";
15                } catch (Exception e) {
16                  e.printStackTrace();
17                }
18            ]]>
19        </script>
20        <script-language>beanshell</script-language>
21        <transitions>
22            <transition>
23                <name>Review</name>
24                <target>review</target>
25                <default>false</default>
26            </transition>
27            <transition>
28                <name>Approved</name>
29                <target>approved</target>
30                <default>false</default>
31            </transition>
32        </transitions>
33    </condition>


Wenn der Benutzer in der Rolle Publisher oder Administrator ist, geht man direkt zum State Approved. Wenn nicht, schickt man ihn durch den normalen Workflow.