【问题标题】:How to get the Approval Status from the workflow history?如何从工作流历史中获取审批状态?
【发布时间】:2012-08-04 12:08:34
【问题描述】:

我正在尝试获取工作流过程历史记录项的每个活动的批准状态,如下所示。

var status = csClient.Read(activitiydetails.Id, readoption) as ApprovalStatusData;
logdetails("Activity Approval Status--->" + status.Title.ToString());

我收到“对象引用错误”

【问题讨论】:

  • 你认为你为什么会收到这个错误?
  • 知道了。 var activityHistory = activitiydetails as ActivityHistoryData; logdetails("活动审批状态--->" +activityHistory.ApprovalStatus.Title.ToString());
  • 很高兴听到你想通了。在未来,我建议按照多米尼克的建议做,不再使用“as cast”结构。既然他明确了选角风格,你能接受他的回答吗?
  • 谢谢弗兰克 - 不想问自己! :-)

标签: c# tridion tridion-2011


【解决方案1】:

当您使用As 运算符强制转换为ApprovalStatusData 时,您应该期望如果从csClient.Read() 返回的对象不是ApprovalStatusData,则其值为空。当你尝试在下一行使用它时,你会得到一个对象引用错误。

您的变量被称为activitiydetails [原文如此],您不应该期望返回ApprovalStatusData

如果您使用正确的 Cast 运算符编写代码,则在尝试强制转换时代码将失败,并抛出 InvalidCastException。

var status = (ApprovalStatusData)csClient.Read(activitiydetails.Id, readoption);
logdetails("Activity Approval Status--->" + status.Title.ToString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多