Sitecore workbox“;不允许使用空字符串";错误

Sitecore workbox“;不允许使用空字符串";错误,sitecore,sitecore7,sitecore-workflow,Sitecore,Sitecore7,Sitecore Workflow,尝试使用户创建的工作流在workbox中可见时遇到此异常 Empty string is not allowed. Parameter name: value. Actual value was . 跟踪如下 [ArgumentOutOfRangeException: Empty string is not allowed. Parameter name: value. Actual value was .] Sitecore.Diagnostics.Error.AssertString

尝试使用户创建的工作流在workbox中可见时遇到此异常

Empty string is not allowed.
Parameter name: value.
Actual value was .
跟踪如下

[ArgumentOutOfRangeException: Empty string is not allowed.
Parameter name: value.
Actual value was .]
   Sitecore.Diagnostics.Error.AssertString(String argument, String name, Boolean allowEmpty) +136
   Sitecore.Shell.Framework.CommandBuilders.CommandBuilder.Add(String key, String value) +42
   Sitecore.Shell.Applications.Workbox.WorkboxForm.CreateCommand(IWorkflow workflow, WorkflowCommand command, Item item, XmlControl workboxItem) +280
   Sitecore.Shell.Applications.Workbox.WorkboxForm.CreateItem(IWorkflow workflow, Item item, Control control) +1758
   Sitecore.Shell.Applications.Workbox.WorkboxForm.DisplayState(IWorkflow workflow, WorkflowState state, DataUri[] items, Control control, Int32 offset, Int32 pageSize) +167
   Sitecore.Shell.Applications.Workbox.WorkboxForm.DisplayStates(IWorkflow workflow, XmlControl placeholder) +654
   Sitecore.Shell.Applications.Workbox.WorkboxForm.DisplayWorkflow(IWorkflow workflow) +439
   Sitecore.Shell.Applications.Workbox.WorkboxForm.Pane_Toggle(String id) +141
起初我以为工作流中的某些项没有设置状态值,所以我更正了它,问题仍然存在

Sitecore版本为7.0(版本130918)

这个工作流没有什么特别之处,只有标准的三个状态,带有电子邮件提醒和自动发布。我相信这只是用新名称直接复制了标准工作流程


在这个项目投入生产后,我进入项目的时间较晚,因此我可能仍然会发现有关设置的一些奇怪之处。

请参阅CreateCommand类的代码:

private void CreateCommand(IWorkflow工作流、WorkflowCommand命令、项项项、XmlControl workboxItem)
{
Assert.ArgumentNotNull(工作流,“工作流”);
Assert.ArgumentNotNull(command,“command”);
Assert.ArgumentNotNull(项目,“项目”);
Assert.ArgumentNotNull(workboxItem,“workboxItem”);
XmlControl webControl=Resource.GetWebControl(“WorkboxCommand”)作为XmlControl;
IsNotNull(webControl,“workboxCommand为null”);
webControl[“Header”]=command.DisplayName;
网络控制[“图标”]=命令图标;
CommandBuilder=新建CommandBuilder(“工作流:发送”);
builder.Add(“id”,item.id.ToString());
建筑商。添加(“la”,项目。语言。名称);
builder.Add(“vs”,item.Version.ToString());
builder.Add(“command”,command.CommandID);
builder.Add(“wf”,WorkflowID);
Add(“ui”,command.HasUI);
Add(“suppresscomment”,command.suppresscomment);
webControl[“Command”]=builder.ToString();
workboxItem.AddControl(网络控制);
}
添加到
builder.Add()
行的值之一为空。您的工作流命令中似乎存在一些错误配置


希望这能帮你找到正确的方向。

这不是一个真正的答案:我和@wardey在做同一个项目,这可能有助于说明问题所在? “不允许使用Workbox空字符串”错误仅在用户设置为管理员时出现。
我将“用户即管理员”设置设置为off,我可以看到工作流。

问题在于流程的
CreateItem
步骤。从本质上讲,它试图创建一个新项目,但对该项目的命名运行规则

“实际值为。”实际指的是针对提议的项名称运行的正则表达式是空字符串,而不是句号

解决方法是确认web.config中的以下设置具有这些(或类似)值,如果没有,则添加这些值

|[]”/>
通常,它们会被删除以上载包含这些字符的项目的包,但撤消更改的步骤会被忘记