互联网+企业内容管理

为中小企业提供基于云计算的企业内容管理平台

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
在WorkflowData对象中因为不像Custom Module那样可以使用Batch的XMLExport方法,很多时候只能用DOM结构变成,虽然这样的结构很烦琐,不过速度确实快。
我设计的一个脚本引擎(基于Workflow Agent)多数操作就是直接操作ACDataElement来完成的。

WorkflowData对象中有两个方法:
方法 参数 备注
ExtractSetupACDataElement

lHints as Long
Returns:ACDataElement

这个方法为批处理类返回
ACDataElement API 对象
ExtractRuntimeACDataElement

lHints as Long
Returns:ACDataElement

这个属性为批处理数据返回
ACDataElement API 对象。
属性是只读的,不过你可以自由修改
ACDataElement API 允许的任何数据
从上面可以看到,使用这两个方法可以访问批次设计时和运行时间的各种数据。
如下的例子:
遍历运行时的目录:
1foreach (ACDataElement folder in ACWorkflowData.ExtractRuntimeACDataElement(0).FindChildElementByName("Batch").FindChildElementByName("Folders").FindChildElementsByName("Folder"))
2{
3    if (folder["FolderClassName"].Contains("申请人资料文件夹"))
4        runtimeCount++;
5}
获取设计时批次类自定义字符串:
protected string GetSetupBatchClassCustomStorageString(string name)
{
    
try
    
{
        
return ACWorkflowData.ExtractSetupACDataElement(0).FindChildElementByName("BatchClasses").FindChildElementsByName("BatchClass")[1].FindChildElementByName("BatchClassCustomStorageStrings").FindChildElementByAttribute("BatchClassCustomStorageString""Name", name)["Value"];
    }

    
catch
    
{
        
return string.Empty;
    }

}
获取文件夹或者文档的索引字段的数据:
 1/// <summary>
 2/// 获取parent对象的索引字段数据,这里parent可能是Folder, Document等
 3/// </summary>
 4/// <param name="parent">父对象</param>
 5/// <param name="name">字段名字</param>
 6/// <returns></returns>

 7protected string GetRuntimeIndexField(ACDataElement parent, string name)
 8{
 9    try
10    {
11        return parent.FindChildElementByName("IndexFields").FindChildElementByAttribute("IndexField""Name", name)["Value"];
12    }

13    catch
14    {
15        return string.Empty;
16    }

17}

18/// <summary>
19/// 获取parent对象的索引字段数据,这里parent可能是Folder, Document等
20/// </summary>
21/// <param name="parent">父对象</param>
22/// <param name="index">索引</param>
23/// <returns></returns>

24protected string GetRuntimeIndexField(ACDataElement parent, int index)
25{
26    try
27    {
28        return parent.FindChildElementByName("IndexFields").FindChildElementsByName("IndexField")[index]["Value"];
29    }

30    catch
31    {
32        return string.Empty;
33    }

34}
posted on 2007-07-19 00:05  workjie  阅读(380)  评论(0编辑  收藏  举报