标签: sharepoint-workflow

Sharepoint开箱即用的批准工作流程以批量修改方式批准/拒绝注释问题

我有一个可重复使用的开箱即用的sharepoint批准工作流程2010,我使用infopath formcode(2010)中的以下代码片段以编程方式批准/拒绝工作流程.

Hashtable ht = new Hashtable();
ht[SPBuiltInFieldId.Completed] = "TRUE";
ht["Completed"] = "TRUE";
ht[SPBuiltInFieldId.PercentComplete] = 1.0f;
ht["PercentComplete"] = 1.0f;
ht["Status"] = "Completed";
ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString
    (new CultureInfo((int)task.Web.Language, false),
    Strings.WorkflowStatusCompleted, new object[0]);
if (isApprove)
{
    ht[SPBuiltInFieldId.WorkflowOutcome] = "Approved";
    ht["TaskStatus"] = "Approved";
    ht[SPBuiltInFieldId.Comments] = "Approved by Manager";
    ht["Comments"] = "Approved by Manager";
}
else
{
    XPathNavigator navigatorRejectComments
        = this.MainDataSource.CreateNavigator().SelectSingleNode
           (XPATH_REJECT_COMMENTS, this.NamespaceManager);

    ht[SPBuiltInFieldId.WorkflowOutcome] = "Rejected";
    ht["TaskStatus"] = "Rejected";
    ht[SPBuiltInFieldId.Comments] = navigatorRejectComments.Value.Trim();
    ht["Comments"] = navigatorRejectComments.Value.Trim();
}
ht["FormData"] = SPWorkflowStatus.Completed;
web.AllowUnsafeUpdates = true;                                                            
isApproveReject = …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint-2010 sharepoint-workflow

19
推荐指数
1
解决办法
5518
查看次数

无法使用msbuild构建工作流项目(Sharepoint 2010)

我使用teamcity使用64位MSBuild构建Sharepoint项目.所有项目都可以正常工作而不是我的工作流项 使用Framework 4.0时,我收到错误消息

c:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Workflow.Targets(121,5):错误MSB4018:"CompileWorkflowTask"任务意外失败.[V:\ Workflows\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj] c:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Workflow.Targets(121,5):错误MSB4018:System.IO.DirectoryNotFoundException:找不到路径'C:\ Windows\system32\config\systemprofile\AppData\Local\Temp\vjwduioy.tmp'的一部分.[V:\工作流\ MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj]

我记得微软已经摆脱了旧的Workflow机制,所以我预计它可能只适用于旧的3.5框架并用它构建项目但是又出现了另一个错误:

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets(37,45):错误MSB4019:导入的项目"C:\ Windows\Microsoft.NET \找不到Framework64\v3.5\Workflow.Targets".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.

在Visual Studio 2010中,建筑工作正常.

msbuild teamcity sharepoint sharepoint-2010 sharepoint-workflow

8
推荐指数
1
解决办法
3513
查看次数

工作流程错误:工作流程无法更新项目,可能是因为项目的一个或多个列需要不同类型的信息

我们最近从MOSS 2007迁移到SP 2010平台.我们使用了大量使用的SharePoint Designer工作流程(每天500个以上的实例).(使用infopath提交数据)它基本上是一个涉及许多批准级别的系列批准工作流程.迁移后几乎90%的工作流以"发生错误"状态结束,并显示以下错误描述:工作流无法更新项目,可能是因为项目的一个或多个列需要不同类型的信息.

我搜索了很多网站和msdn,尝试了可能给出的所有解决方案,但似乎都没有工作.没有设置模式的工作流导致错误,重新启动工作流总是解决问题.

  1. 我们已匹配所有列/内容类型,并且MOSS 2007和新表单库没有区别

  2. 用户的权限级别不会更改

许多网站都提到在更新事件之前在工作流中引入暂停,但我对此持怀疑态度.可能的原因/解决方案是什么?在这90%失败的工作流程中,我们无法识别任何常见的东西或将我们引向根本原因.某些工作流实例也会导致错误,工作流无法在检出另一个用户时更新该项.

任何帮助将受到高度赞赏.

sharepoint sharepoint-2010 sharepoint-workflow

7
推荐指数
1
解决办法
3万
查看次数

使用SharePoint Web服务/对象模型批准SharePoint工作流任务

我创建的工作流是SharePoint Designer,并将其与列表相关联.工作流创建批准过程,因此SharePoint在"任务"列表中创建任务,以便用户可以批准或拒绝.

我需要做的是在不打开任务列表中的任务的情况下批准或拒绝任务.经过一些研究后,我发现我可以使用SharePoint Web Services.但是我感到迷茫,因为我不知道哪个服务,例如Lists.asmx,以及调用哪个方法,例如UpdateListItems.

有人可以指导我完成以下任务:
1-批准工作流任务SharePoint Web Services是否可行?
2-你能告诉我一个如何批准任务的例子,例如调用哪种服务和方法以及参数应该是什么?

更新
我一直在使用以下XML来设置工作流程来完成:

 batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" // Also used Moderate
                + "<Field Name='ID'>115</Field>"
                + "<Field Name='Status'>Completed</Field>"
                + "<Field Name='FormData'>Completed</Field>" // Also used Approved
                + "<Field Name='WorkflowOutcome'>Approved</Field>"
                + "<Field Name='Completed'>True</Field>"
                + "<Field Name='PercentComplete'>1</Field>"
                + "<Field Name='_ModerationStatus'>0</Field>"
                + "</Method>";
Run Code Online (Sandbox Code Playgroud)

任务列表项已更新,但WorkflowOutcome仍为空,工作流不会移至下一步.
我还缺少什么?

更新#2
我怀疑任务列表项的ExtendedProperties.对于使用UI完成的项目,ExtendedProperties显示ws_TaskStatus ='已批准'.但是,对于使用代码批准的项目,ws_TaskStatus不存在.

更新#3
从MSDN帖子中,我被告知要使用Workflow.asmx而不是Lists.asmx.
我使用了以下代码:

WorkflowService.Workflow listProxy = new WorkflowService.Workflow();
listProxy.Url = "http://<server_name …
Run Code Online (Sandbox Code Playgroud)

sharepoint-2010 sharepoint-workflow

6
推荐指数
1
解决办法
2万
查看次数

使用PowerShell取消多个SharePoint Workflow

如何取消SharePoint(2010)列表中所有正在运行的工作流程?

我通过technet找到了这个脚本.

http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/d3913265-9712-4e61-9e38-1f9b78c8f718/

码:

using (SPSite oSite = new SPSite("<your url>"))
{
    foreach (SPWeb oWeb in oSite.AllWebs)
    {
        oWeb.AllowUnsafeUpdates = true;

        // stop list workflows
        foreach (SPList list in oWeb.Lists)
        {
            foreach (SPListItem oItem in list.Items)
            {
                foreach (SPWorkflow workflow in oItem.Workflows)
                {
                    SPWorkflowManager.CancelWorkflow(workflow);
                }
            }
        }

        // stop site workflows
        foreach (SPWorkflow workflow in oWeb.Workflows)
        {
            SPWorkflowManager.CancelWorkflow(workflow);
        }

        oWeb.AllowUnsafeUpdates = false;
        oWeb.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助.

powershell sharepoint sharepoint-workflow

6
推荐指数
1
解决办法
2万
查看次数

SharePoint 2010工作流突然不起作用

我一直有这个问题,一直在寻找一个无济于事的解决方案.

情况A:我们有一个SharePoint 2010网站,其中包含一个具有SharePoint Designer工作流程的列表.现在一切似乎工作正常,工作流程在项目创建等运行,然后经过一段时间没有人实际编辑任何东西,工作流程刚刚停止工作,工作流列中也没有状态,只是突然没有工作流程活动发生在该列表中,任何人遇到这个/知道解决方案吗?

情况B:我们有一个SharePoint 2010网站,与上面相同,我们有一个附加了SharePoint设计器工作流的列表.现在,此工作流间歇性地停止,突然在项目创建时不起作用,在工作流列中也没有状态.会发生什么是我们尝试编辑项目并在运行之前多次保存它.知道发生了什么事吗?

编辑:根据检查,我可以手动启动工作流程.

sharepoint sharepoint-designer sharepoint-2010 sharepoint-workflow

6
推荐指数
1
解决办法
1万
查看次数

工作流核心与 ElsaCore

我正在寻找 MS Flow/Power-Automate 的一些替代方案以节省资金。这两种解决方案有何不同?各自的优势?缺点?

https://elsa-workflows.github.io/elsa-core/

https://github.com/danielgerlag/workflow-core

我们主要是将一些较旧的 Lotus Notes 应用程序转换为 Sharepoint 和其他东西,并且需要在提交表单后触发工作流。有时需要 5 层深度批准等。我知道 Sharepoint 和 Workflow Foundation 也不再被积极开发。

workflow workflow-foundation sharepoint-workflow power-automate

6
推荐指数
0
解决办法
1698
查看次数

如何将Windows Workflow作为Web服务(.svc)托管?

我正在尝试将Windows工作流程作为Web服务托管,下面是我构建的示例工作流程,并希望作为Web服务(.svc)托管,是否可以建议所需的步骤?

using System;
using System.ServiceModel.Activities;
using System.Activities;
using System.ServiceModel;
using System.Activities.Statements;

namespace DemoWF
{
    public class _25_LeaveRequest
    {
        public WorkflowService GetInstance()
        {
            WorkflowService service;
            Variable<int> empID = new Variable<int> { Name = "empID" };
            Variable<int> requestID = new Variable<int> { Name = "requestID" };

        Receive receiveLeaveRequest = new Receive
        {
            ServiceContractName = "ILeaveRequestService",
            OperationName = "ApplyLeave",
            CanCreateInstance = true,
            Content = new ReceiveParametersContent
            {
                Parameters ={
                    {"empID",new OutArgument<int>(empID)}
                }
            }
        };

        SendReply replyLeaveRequestID = new SendReply
        {
            Request = receiveLeaveRequest, …
Run Code Online (Sandbox Code Playgroud)

workflow workflow-foundation workflow-foundation-4 sharepoint-workflow window-functions

5
推荐指数
1
解决办法
178
查看次数

如何在SharePoint Online中创建长度超过255个字符的动态超链接

我的设置:

  • SharePoint Online(Office 365的一部分)
  • 无法访问服务器编码(.NET)解决方案
  • 文档库使用文档集内容类型
  • 启用了新体验UI

使用案例:

我有一个SP2013工作流程,允许用户对库中的文档进行更改请求.工作流具有启动表单参数,为这些参数提供的数据以及对运行工​​作流的项目的引用将写入站点中的另一个列表.这一切都很好.

我要做的是在文档库中创建一个列,允许用户直接导航到工作流的Initiation Form,而不必右键单击该项,选择"Advanced",然后选择"Workflows".

工作流程的"启动表单"页面的链接(在手动导航到它时直接从浏览器的地址栏中取出)的链接如下所示(为了便于阅读,添加了换行符):

https://company.sharepoint.com/sites/ABC/wfsvc/e73969f753574a3bb30c8d3ce3ab9c56/WFInitForm.aspx

?List={f9b73015-1131-442d-95b8-9682149a27e6}

&ID=5

&ItemGuid={71AA92CE-2D37-4D43-B593-AB6004E9DCF0}

&TemplateID={64193686-AB59-4D44-B0EB-FBD8E2CB7A1F}

&WF4=1

&Source=https%3A%2F%2Fcompany%2Esharepoint%2Ecom%2Fsites%2FABC%2FCourseDocuments%2FForms%2FCourseDocuments%2Easpx%3FRootFolder%3D%252Fsites%252FDCU%252FCourseDocuments%252FBasic%2520Stuff%26FolderCTID%3D0x0120D52000E334520C326BA440BF6F86F3CA80AE2800E3DBD1BD3A1EA348A9D944A931464C4D
Run Code Online (Sandbox Code Playgroud)

IDItemGuid链接的部分将需要动态,因为它们将包含对特定的库文件,所述工作流将需要对运行的参考.其他一切都是静态的.

为了每个项目动态生成此URL,我创建了第二个工作流程,该工作流程在添加库中的新项目时运行,并且能够手动运行(对于库中已有的项目)并且工作流程正确生成每个项目所需的URL.

问题:

此URL超过"超链接或图片"列接受的255个字符,因此在尝试将此URL写入列时工作流出错.

我试过的:

我已经在这一段时间了,发现了几个已发布的解决方法,其中没有一个有效:

  • 我已经尝试通过使URL相对来缩短URL(因此可以删除完整的站点URL)并将其放在"超链接或图片"字段中,但这会导致"无效URL"的工作流错误,即使URL已生成复制并粘贴到地址栏时有效.
  • 我已经尝试通过使用Bitly对静态部分进行编码来缩短URL ,这次工作流程已完成并为字段编写了可点击的URL,但是当静态部分单独工作时,当它们与其他部分连接时,最终的URL引导在Bitly网站上发生404错误.
  • 我已经将"计算"列设置为"日期/时间"结果,并使计算成为URL部分到HTML超链接语法(即="<a href='"&[column1]&[column2]&[column3]&"'>Click</a>")的串联.虽然这确实成功地将整个事物生成并设置到库中,并且所有动态部分都正确,但该字段不会呈现为已解析的HTML,而是呈现完整的HTML标记,因此它不是可点击的链接.(下图显示了一个相对URL,但是使用这种方法,我使用了一个绝对URL.图片只是为了显示正在生成和未解析的标记的结果.)

    在此输入图像描述

  • 我已尝试将"具有格式和发布约束的完整HTML内容"字段添加到我的库中(启用了SharePoint Server发布基础结构网站功能),并显示与上面计算的列尝试一样的HTML标记.
  • 我尝试使用"多行"文本字段,并获得与上面相同的标记显示.
  • 根据这篇文章,编码的URL没有长度限制,所以我尝试编码整个URL并将其放入"超链接或图片"字段,但工作流错误出现在"无效URL"消息上.

因此,最重要的是我可以创建所需的URL,但无法找到一种方法将其放入每个项目的字段中,使其可以作为实际超链接进行单击.


更新:

为了回应下面的@LukášNešpor建议,我尝试了相应的变化,但按照您的指示再次尝试.我没有在列表本身中获得列格式化选项,但是在配置列表设置中的列时我确实得到了该选项,这就是我输入JSON的位置.

在此输入图像描述 在此输入图像描述

但是,当我尝试它时,JSON格式不起作用.

在此输入图像描述

sharepoint sharepoint-designer sharepoint-workflow sharepoint-online

5
推荐指数
1
解决办法
1060
查看次数

如何在SharePoint Workflow电子邮件中格式化托管元数据/术语?

我有一个SharePoint工作流程,它将发送一封电子邮件,其中包含我的列表项的详细信息.问题是某些细节包括使用该项目保存的数据,即托管元数据或自定义术语.所以电子邮件最终看起来像:

供应商:Doors Inc | 699003a8-ca2f-46a4-b3b9-9d958ba905fb

"门公司"这个词.我不想看到GUID.

这一切都是通过从当前项添加查找并选择适当的字段(例如供应商)来完成的.

所以最终的结果是:

供应商:Doors Inc.

没有GUID.我似乎找不到办法做到这一点.

sharepoint sharepoint-2010 sharepoint-workflow

4
推荐指数
1
解决办法
5525
查看次数