代码之家  ›  专栏  ›  技术社区  ›  Daniel Revell

工作流启动时在sharepoint中签出的文档

  •  3
  • Daniel Revell  · 技术社区  · 17 年前

    在文档库上运行工作流时,我发现有一点问题。单击“新建文档”将在本例中打开Microsoft Word。你在文件里写些东西然后保存到图书馆。与库关联的工作流,在本例中是一个自产的审批工作流,该工作流在创建列表项后即开始运行。但问题是文档仍然处于打开状态,因此在用户关闭word之前会被签出。如果工作流所做的第一件事是设置此列表项上的某些其他字段,例如将审批状态设置为“挂起”,则这将出错。因为文档已签出而出错。

    我试图让工作流等待文档签入,但这是我失败的地方。我正在尝试onworkflowitemchanged活动,并在代码中检查所做的更改是否是签入的文档,因此在此之后,我可以继续我的工作流的其余部分。问题是,此活动似乎没有将签入事件作为更改来接收。这样做是有意义的,因为关闭自动签入的文档实际上不会更改任何项字段。

    因此,我需要在我的工作流中找到某种方法来检测签入事件,但在此之前,请等待我的位置。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Junx    17 年前

    解决方法是让工作流签出文档,进行任何更改,然后将其签回。

    在代码中,您可以使用自定义事件处理程序来执行此操作。有关对象模型的信息,请查看sharepoint sdk或msdn。

    在sharepoint designer中,将工作流设置为如下所示:

    选中“创建新项目时自动启动此工作流”或“创建新项目时自动启动此工作流”或同时选择这两个选项。

    点击下一步。

    在下一页中,将“条件”部分留空。

    在“操作设置”中,将工作流设置为如下所示:

    Check out item in <Current Item>
         then Wait for <Whatever fields you need to be set or actions you need>
         then Check in item in <Current Item> with comment: <Comment>
    

    你也可以把这个分解成步骤。例如:

    Step One - Check out current item
    Step Two - Custom stuff you need to do
    Step Three - Check in current item 
    推荐文章