SharePoint workflow tasks list migration to SharePoint online

In our SharePoint 2013 on-premise environment, we have Approval workflows. Using SSRS reports, we display a report, who approved those tasks in a Grid view.

Now we are migrating our complete on-premise environment to SharePoint online, and two things i understood.

1) SharePoint online doesnt have SSRS reports. 2) When migrating content, Workflow history list, being a hidden list, will not be migrated.

I am hoping if there is any way at least to migrate the complete approval task list to SharePoint online list, we can use it a source to build reports from another system list power bi or tableau or is there any better solution?

This is only for existing data for reference purpose, no new records will be added to the workflow task list.

SharePoint workflow tasks list migration to SharePoint online

In our SharePoint 2013 on-premise environment, we have Approval workflows. Using SSRS reports, we display a report, who approved those tasks in a Grid view.

Now we are migrating our complete on-premise environment to SharePoint online, and two things i understood.

1) SharePoint online doesnt have SSRS reports. 2) When migrating content, Workflow history list, being a hidden list, will not be migrated.

I am hoping if there is any way at least to migrate the complete approval task list to SharePoint online list, we can use it a source to build reports from another system list power bi or tableau or is there any better solution?

This is only for existing data for reference purpose, no new records will be added to the workflow task list.

Sharepoint Designer 2013 crashes when I publish a workflow with a approval process action

From a few days I can no longer publish with the SharePoint Designer old and new Workflows that contain a simple approval process Action, like this

->    Start Approval (7) process on Current Item with Alessandro Cosi 

I am now receiving this error when attempting to publish:

An error occurred while trying to fetch data from your Sharepoint site.

SharePoint Designer 2013 Workflow HTTP Web Service on POST: Error – The given key was not present in the dictionary

Thank you for reading this. This is a bit long, but I’m trying to be as detailed as possible. Any help would be greatly appreciated. If more info is needed, please let me know. As info, I am not a (JavaScript) developer. I’ve been tasked to do as many things as possible OOTB.

Environment: SharePoint Online and SharePoint Designer 2013 (for workflows).

Scenario: Have a Team Site and a Subsite to it. When an item is added to a Custom List in the Subsite, the workflow is to find the matching task in the Task List on the Parent Site and mark the Task Status as “Completed”. (A variable is created in the workflow to match the item added to the list with the task.)

Success: Using the HTTP Web Service action to GET Task items via the Workflow. Evidenced by logging the response in a custom list using Create Item in List workflow action.

Issue: Using POST to add or update a Task to the task list. Continue to get the error {“error”:{“code”:”-1, System.Collections.Generic.KeyNotFoundException”,”message”:{“lang”:”en-US”,”value”:”The given key was not present in the dictionary.”}}}

Pre-conditions: Because we were going between site and subsite, we followed the articles to create elevated workflow permissions for use of the App Step. Did this on both the site and subsite. https://msdn.microsoft.com/en-us/library/office/jj822159.aspx, http://www.fabiangwilliams.com/2014/06/19/gotcha-on-sharepoint-designer-workflows-in-app-step/

Because this error seems to sometimes be illusive, decided to create the workflow on lists within the same Team Site to remove any possibility of authorization issue. Therefore the example shown below is not using APP Steps.

Trouble-shooting: Used Fiddler with Chrome to walk through and did not receive any errors. https://cann0nf0dder.wordpress.com/2016/09/12/getting-fiddler-to-work-with-sharepoint-online/. Viewed many, many articles also.

Workflow:

  1. Hard-coded a Variable = TempMatchString to match with a value in the Task List to bring back specific Task(s). Ignore first two lines of the workflow – will be used once the issue is resolved.

enter image description here

  1. Get Matching Task(s)

    • Build GET_RequestHeader Dictionary. Accept = application/json;odata=verbose as String and Content-Type = application/json;odata=verbose as String

    • Perform the GET HTTP Web Service request with URL: https://mycompany.sharepoint.com/HumanResourcesTS/_api/web/lists/getByTitle('ProgressReportTasks')/Items?$ filter=(Title eq [%Variable:TempMatchString%]

    • Create Item in the SPListGETContent list to view the response.

    • Store the array returned in Variable “ListDataSet”. Note: I am using Get valueinstead of d/results. If I do the GET Call from the subsite I get the JSON returned with d/results as seen in most all articles online, but value when used on the parent site. I am not sure why this differs.

    • Count to number of items returned. enter image description here
  2. Get FormDigestValue

Read several articles stating need to set the X-RequestDigest to the FormDigestValue to POST.

  • Build ContextHeaders Dictionary. Accept = application/json;odata=verbose as String and Content-Type = application/json;odata=verbose as String
  • Perform the POST HTTP Web Service request with URL: https://mycompany.sharepoint.com/HumanResourcesTS/_api/contextinfo
  • Create Item in the SPListGETContent list to view the response
  • Get the FormDigestValue and store it as a Variable = digestValue enter image description here

    1. Add Task (ERROR occurs here)
  • Build ADD_Request Header dictionary. Accept = application/json;odata=verbose as String and Content-Type = application/json;odata=verbose as String and X-RequestDigest = [%Variable: digestValue%] as String
  • Build ADD_Metadata dictionary. Type = SP.Data.ProgresReportTasksListItem as String where “ProgressReportTasks” is the list name.
  • Build ADD_Parameters dictionary. __metadata = [%Variable: ADD_Metadata%] as String and Title = Created by WF on Parent Site as String
  • Perform the POST HTTP Web Service request with URL: https://mycompany.sharepoint.com/HumanResourcesTS/_api/web/lists/getByTitle('ProgressReportTasks')/Items

    Set the Properties to ensure the RequestHeaders, ResponseContent, and ResponseStatus Code were set to the correct Variables.

  • Write the responseContent to the SPListGETContent list. Get: {“error”:{“code”:”-1, System.Collections.Generic.KeyNotFoundException”,”message”:{“lang”:”en-US”,”value”:”The given key was not present in the dictionary.”}}}
  • Write the ResponseStatusCode to the SPListGetConent list. Get: InternalServerError enter image description here

    1. Update Task (ERROR occurs here)
  • Build POST_Request Header dictionary. All set as String. Accept = application/json;odata=verbose and Content-Type = application/json;odata=verbose and X-RequestDigest = [%Variable: digestValue%] X-HTTP-Method = MERGE (NOTE: Also tried PATCH) IF-MATCH = * Content-Length = 0
  • Build POST_Metadata dictionary. Type = SP.Data.ProgresReportTasksListItem as String where “ProgressReportTasks” is the list name.
  • Build POST_Parameters dictionary. __metadata = [%Variable: ADD_Metadata%] as String and Title = Updated by WF on Parent Site as String
  • Perform the POST HTTP Web Service request with URL: https://mycompany.sharepoint.com/HumanResourcesTS/_api/web/lists/getByTitle(‘ProgressReportTasks’) /Items(22). Hardcoded the Item ID for this first round of testing.

    Set the Properties to ensure the RequestHeaders, ResponseContent, and ResponseStatus Code were set to the correct Variables.

  • Write the responseContent to the SPListGETContent list. Get: {“error”:{“code”:”-1, System.Collections.Generic.KeyNotFoundException”,”message”:{“lang”:”en-US”,”value”:”The given key was not present in the dictionary.”}}}
  • Write the ResponseStatusCode to the SPListGetConent list. Get: InternalServerError InternalServerError enter image description here

Thank you!!

Trying to send email to all people in a list in a SharePoint workflow 2010

I am trying to send a email to each person in a SharePoint list in a workflow. The list includes a column for the email. It doesn’t matter if I send one email to all the people in the list or a email to each member, but I need everyone to receive a email. The site is using 2010 workflows. Is there a way to do this in designer 2010?

How can I get item’s workflow details/workflow history where workflow association has been deleted?

We have lots of list items where workflow instance is not showing on workflow details page. After researching i found that in sharepoint 2013, completed/suspended/terminated workflow instances will be automatically removed by auto clean up timer job and workflow manager after 30 days.

Due to this we can’t able to get log history/error details of that items. So my question is, Can we get item’s workflow details/history where workflow association has been deleted?

Any help will be appreciated. Thanks

Set Task to Approved or Rejected from workflow

I have a Task that was created by a 2013 workflow, through either the Assign a task command or Start a task process command. I have a second workflow that wants to use Update List Item to approve or reject that Task when a specific condition occurs.

First, how do I find the appropriate task? By selecting the Tasks list, the lookup allows me to find it by ID, but I don’t have the ID of the task.

Second, the field/value combination only allows me to set the Status to Completed. I don’t see anything that allows me to set it to Approved or Rejected. Is that possible?

Can I copy individual stages of a SharePoint 2013 list-based workflow?

I have a SP 2013 list with a list-based workflow. Next release, I create a new list with the same content type. I want to re-use the list-based workflow but must implement a work-around to do this. I want to simply copy the stages in the first workflow into a new workflow and then associate the new workflow to the new list. It seems to work. Do you know of any issues doing this?

I cannot work with a reusable workflow because that does not recognize the content type fields and in 2013 you cannot successfully base a workflow on a content type.

Thanks, Linda