Fórumok

Nyitólap » Liferay Portal » Deutsch

Kombinált nézet Egyszerű nézet Fa-nézet
Szálak [ Előző | Következő ]
toggle
Philipp Tresp
Workflow Integration in Liferay
2012. szeptember 24. 7:35
Válasz

Philipp Tresp

Rangsorolás: New Member

Hozzászólások: 2

Csatlakozás dátuma: 2012. szeptember 24.

Legújabb hozzászólások

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
2012. október 17. 2:01
Válasz

Christoph Rabel

Rangsorolás: Junior Member

Hozzászólások: 33

Csatlakozás dátuma: 2009. szeptember 24.

Legújabb hozzászólások

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.