文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>脚本环节、参与者、条件使用示例

脚本环节、参与者、条件使用示例

时间:2010-10-12  来源:Brian.KFC

下面通过一个具体的例子示范如何使用脚本环节、脚本参与者和脚本条件。这个例子如下图所示:

这个例子所使用的是一张由InfoPath设计的请假单,如下图所示:

 

 

流程定义中的“脚本参与者审批”环节所使用的是“审批人”字段所设置的参与者,所以其脚本如下:

import clr;
clr.AddReference(
'mscorlib','System.Xml');
from System import String;
from System.Xml import XmlDocument,XmlNamespaceManager;

mdom
= XmlDocument();
mdom.LoadXml(DataItems.ApplicationData.FormData.ToString());

nsmgr
= XmlNamespaceManager(mdom.NameTable);
prefix
= mdom.DocumentElement.Prefix;
nsmgr.AddNamespace(prefix, mdom.DocumentElement.GetNamespaceOfPrefix(prefix));
users
= mdom.SelectSingleNode(String.Format("//{0}:审批人", prefix), nsmgr);
userData
= users.InnerText.Split(";");
Result
= [];
for user in userData:
loginID
= user[user.index("(")+1 : -1];
Result.append(OrganizationProvider.DefaultProvider.GetUserByLoginID(loginID));

从脚本中可看到是通过调用XML的相关方法,在表单数据DataItems.ApplicationData.FormData中提取相关数据来获取审批人的,最后的结果存放到变量Result中,对应于脚本参与者设置的结果参数属性。

 

下面来看看脚本条件是如何实现对请假天数的比较的(以“大于5天”这个条件为例):

import clr;
clr.AddReference(
'mscorlib','System.Xml');
from System import String, Int32;
from System.Xml import XmlDocument,XmlNamespaceManager;

mdom
= XmlDocument();
mdom.LoadXml(DataItems.ApplicationData.FormData.ToString());

nsmgr
= XmlNamespaceManager(mdom.NameTable);
prefix
= mdom.DocumentElement.Prefix;
nsmgr.AddNamespace(prefix, mdom.DocumentElement.GetNamespaceOfPrefix(prefix));
days
= mdom.SelectSingleNode(String.Format("//{0}:天数", prefix), nsmgr);
data
= Int32.Parse(days.InnerText);
if data > 5:
Result
= True;
else:
Result
= False;

当中的原理跟脚本参与者雷同,也是把结果存到变量Result中,注意这里的Result只能是True或False代表条件是否成立。

 

“设置参数”这个环节是个脚本环节,使用它可以执行一段脚本,例如设置参数等,如下:

import sys, clr;
clr.AddReferenceToFile(
'Bingosoft.Workflow.WFAPI.dll');
from Bingosoft.Workflow.WFAPI import WorkflowHelper;

#设置参数
flowHelper = WorkflowHelper(OrganizationProvider.GetUserByID(DataItems.CurrentUser.ID));
caseID
= DataItems.FlowInstance.ProcID;
taskID
= DataItems["CurrentTask"];
flowHelper.OpenWorkflow(caseID, taskID);
flowHelper.SetParameter(
"opt", 200);
flowHelper.Save();

 

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载