importPackage(Packages.de.elo.ix.client); //@include lib_Class.js //@include lib_sol.common.SordUtils.js //@include lib_sol.common.AclUtils.js //@include lib_sol.common.AsyncUtils.js //@include lib_sol.common.Map.js //@include lib_sol.common.ix.DynAdHocFlowUtils.js //@include lib_sol.common.ix.FunctionBase.js var logger = sol.create("sol.Logger", { scope: "sol.common.ix.functions.CheckDynAdHocFlowStart" }); /** * Checks whether a dynamic ad-hoc workflow should be started. * It checks if there is an appropriate user entry in the workflow map. * * This function module can only be used as an end script in a workflow decision node. * * @author MW, ELO Digital Office GmbH * @version 1.1 * * @eloix * @requires sol.common.WfUtils * @requires sol.common.WfMap * @requires sol.common.MapTable * @requires sol.common.ix.FunctionBase * @requires sol.common.ix.DynAdHocFlowUtils * */ sol.define("sol.common.ix.functions.CheckDynAdHocFlowStart", { extend: "sol.common.ix.FunctionBase", requiredConfig: ["wfDiagram"], /** * @cfg {de.elo.ix.client.WFDiagram} wfDiagram (required) * The WFDiagram to which the changes should me applied to */ /** * @cfg {de.elo.ix.client.String} [cycleStartStatus=CYCLE_START] * Workflow status if the cycle should be started */ initialize: function (config) { var me = this; me.params = config; me.$super("sol.common.ix.FunctionBase", "initialize", [config]); }, /** * Checks the dynacmic ad hoc workflow start */ process: function () { var me = this, wfStatus = "", hasNextUser, hasCurrentUser; hasNextUser = sol.common.ix.DynAdHocFlowUtils.hasNextUser(me.wfDiagram.id, me.wfDiagram.objId, me.params); hasCurrentUser = sol.common.ix.DynAdHocFlowUtils.hasCurrentUser(me.wfDiagram.id, me.wfDiagram.objId, me.params); if (hasNextUser || hasCurrentUser) { wfStatus = me.cycleStartStatus || "CYCLE_START"; } sol.common.WfUtils.setWorkflowStatus(me.wfDiagram, wfStatus); } }); /** * @member sol.common.ix.functions.CheckDynAdHocFlowStart * @static * @inheritdoc sol.common.ix.FunctionBase#onExitNode */ function onExitNode(clInfo, userId, wfDiagram, nodeId) { logger.enter("onExitNode_CheckDynAdHocFlowStart", { flowId: wfDiagram.id, nodeId: nodeId }); var params = sol.common.WfUtils.parseAndCheckParams(wfDiagram, nodeId), module, result; params.wfDiagram = wfDiagram; module = sol.create("sol.common.ix.functions.CheckDynAdHocFlowStart", params); result = module.process(); logger.exit("onExitNode_CheckDynAdHocFlowStart"); return result; } /* ____ * ___ .-~ '. * `-._~-. / / ~@\ ) * \ \ | / \~\. `\ * ] | / | |< ~\(..) * / ! _.--~T \ \< .,, * / / ____.--~ . _ /~\ \< / * / / .-~~' /| /o\ /-~\ \_| * / / / ) |o| / /|o/_ '--' * / / .-'( l__ _j \_/ / /\|~ . * / l / \ ~~~| `/ / / \.__/l_ * | \ _.-' ~-\__ l /_/~-.___.--~ * | ~---~ / ~~'---\_ __[o, * l . _. ___ _>-/~ * \ \ . .-~ .-~ ~>--' / * \ ~---' / _.-' * '-.,_____.,_ _.--~\ _.-~ * ~~ ( _} * `. ~( * ) \ DYNADHOC SAURUS, the * /,`--'~\--'~\ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * */