使workbox显示sitecore/system/workflows之外的工作流

使workbox显示sitecore/system/workflows之外的工作流,sitecore,Sitecore,Sitecore的工作框似乎只能显示Sitecore/system/workflows中工作流中的项目。有没有办法让它在树的其他部分显示工作流?我已经能够通过将工作流移出该位置来解决几个问题,但这是当前的症结所在 我们的网站为不同的客户分为几个部分(在“客户”这个词的意义上)。每个客户端都需要自己的工作流,我们希望他们能够导航到工作流,而不必离开树的内容部分进入系统部分。理想情况下,我们还希望尽可能多地将每个客户端的自定义内容(如布局、渲染等)移动到内容区域,以便我们或他们可以发布一个节点和子项

Sitecore的工作框似乎只能显示Sitecore/system/workflows中工作流中的项目。有没有办法让它在树的其他部分显示工作流?我已经能够通过将工作流移出该位置来解决几个问题,但这是当前的症结所在


我们的网站为不同的客户分为几个部分(在“客户”这个词的意义上)。每个客户端都需要自己的工作流,我们希望他们能够导航到工作流,而不必离开树的内容部分进入系统部分。理想情况下,我们还希望尽可能多地将每个客户端的自定义内容(如布局、渲染等)移动到内容区域,以便我们或他们可以发布一个节点和子项,并使与该客户端相关的所有内容生效,就像我猜大多数人使用“发布站点”功能所做的那样

我很好奇你到目前为止做了什么来缓解这种情况。我使用reflector搜索工作流根项的GUID,
{05592656-56D7-4D85-AACF-30919EE494F9}
。它存储在
Sitecore.ItemIDs.WorkflowRoot
中,该文件依次由
Sitecore.Workflows.Simple.WorkflowProvider.GetWorkflows()
使用。除其他地方外,
Sitecore.Shell.Applications.Workbox.WorkboxForm
调用此方法。但是,可以通过
Context.ContentDatabase.WorkflowProvider
访问它,它是位于
/sitecore/databases/database/WorkflowProvider
的配置元素

长话短说,如果您还没有,您应该尝试实现自己的
IWorkflowProvider
,它扩展了
Sitecore.Workflows.Simple.WorkflowProvider
,并在Web.config中配置它。覆盖
GetWorkflows()
,从您要查找的位置查找工作流。使用reflector或ILSpy之类的工具查看此方法当前的功能,并进行必要的更改


请反馈(如果可以,请写博客!)。我认为很多人通常不会扩展/增强Sitecore的这一领域。

很有趣。。。你为什么要把一个工作流程移出那里?我编辑来解释原因。回答得很好!默认workflowprovider易于子类化和重写,并使扩展简单工作流变得非常简单。