【问题标题】:Sharepoint 2013 Workflow - How to build String[] from a dynamic valueSharepoint 2013 工作流程 - 如何从动态值构建字符串 []
【发布时间】:2014-08-08 22:50:04
【问题描述】:

如何从动态值构建 String[]?

我有一个启动表单,我收集电子邮件信息并作为字符串类型的参数传递给我的工作流程

function StartWorkflow() {
 var wfParams = new Object(); 
 //build array of objects
 var emailUsers = new Array();
 //cycle through viewmodel emails
 for (var i = 0; i < viewModel.SelectedEmails().length; i++)
       {
                    var a = new Object();
                    a["emails"] = viewModel.SelectedEmails()[i];
                    emailUsers.push(a);
        }
  wfParams['strSelectedEmailsHMgr'] = JSON.stringify(emailUsers);


**This all works fine!**

然后,在我的 SharePoint 2013 工作流程中,我创建了一个名为 dvJSON 的动态值变量。 接下来,我添加一个 ParseDynamicValue 活动并将我的变量 dvJSON 设置为我的传入参数 wfParams['strSelectedEmailsHMgr']。

接下来,我添加了一个 WirteToHistory 活动。 结果如下: dvJSON 的值为 [{"emails":"tom.daria@fhlbcin.com"},{"emails":"tom.daria@fhlbcin.com"},{"emails":"tomdaria@yahoo.com" },{"emails":"tomdaria@yahoo.com"},{"emails":"tom.daria@fhlbcin.com"}]

接下来,我添加 GetDynamicValueProperty 并将 ProperyName 设置为“电子邮件”源 dvJSONa 结果收件人(字符串数组变量)。

然后我部署我的解决方案。 当我开始我的工作流程时,我会看到我的自定义启动表单。 我选择我的电子邮件用户并单击“开始”按钮以启动工作流程。

GetDynamicValueProperty 失败。

这是下面的错误。

RequestorId: d8a1f1c4-4b83-da9c-0000-000000000000. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.InvalidOperationException: Looking up a value using a key is not supported on an instance of 'Microsoft.Activities.Dynamic.DynamicJsonArray'. at Microsoft.Activities.Dynamic.DynamicItem.TryGetValue(String key, DynamicItem& value) at Microsoft.Activities.Dynamic.DynamicValueBuilder.PathSegmentFactory.ObjectPathSegment.Get(DynamicItem obj) at Microsoft.Activities.GetDynamicValueProperty`1.Execute(CodeActivityContext context) at System.Activities.CodeActivity`1.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

谢谢 汤姆

【问题讨论】:

    标签: sharepoint


    【解决方案1】:

    我不知道为什么你需要准确地输入字符串 [],但如果你只需要对每个电子邮件值做一些事情,你可以尝试使用循环遍历每个项目,并在循环内使用带有参数的 GetDynamicValue ' (iterator)/emails',其中 'iterator' 是当前索引值,您需要在每次迭代时手动增加。 作为每次迭代的结果,您将获得包含电子邮件的新字符串值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2015-02-05
      • 2013-10-25
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多