Fórumok

Workflow Integration in Liferay

Philipp Tresp, módosítva 11 év-val korábban

Workflow Integration in Liferay

New Member Bejegyzések: 2 Csatlakozás dátuma: 2012.09.24. Legújabb bejegyzések
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
thumbnail
Christoph Rabel, módosítva 11 év-val korábban

RE: Workflow Integration in Liferay

Liferay Legend Bejegyzések: 1554 Csatlakozás dátuma: 2009.09.24. Legújabb bejegyzések
Hi!

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

		<condition>
		<name>review-or-approve</name>
		<script>
			<![CDATA[
				import com.liferay.portal.service.RoleLocalServiceUtil;
				import com.liferay.portal.kernel.util.GetterUtil;
				import com.liferay.portal.kernel.workflow.WorkflowConstants;

				returnValue = "Review";
				try {
					long userid = GetterUtil.getLong((String)workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
					long companyid = GetterUtil.getLong((String)workflowContext.get(WorkflowConstants.CONTEXT_COMPANY_ID));
					String[] roles={"Publisher","Administrator"};
					if (RoleLocalServiceUtil.hasUserRoles(userid, companyid, roles, true)) returnValue = "Approved";
				} catch (Exception e) {
				  e.printStackTrace();
				}
			]]>
		</script>
		<script-language>beanshell</script-language>
		<transitions>
			<transition>
				<name>Review</name>
				<target>review</target>
				<default>false</default>
			</transition>
			<transition>
				<name>Approved</name>
				<target>approved</target>
				<default>false</default>
			</transition>
		</transitions>
	</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.