Workflow error in Sharepoint Online - sharepoint-2013

I am having this error in Sharepoint Online when I run a workflow to create an Enterprise Project from a list
The details of the error was
Retrying last request. Next attempt scheduled in less than one minute.
Details of last request: HTTP Forbidden to
https://xxxxxxxxxxxxxx/sites/pwa/_api/ProjectServer/WorkflowActivities/CreateProjectFromListItem(webId='923e34ac-7127-4707-b6e1-83ac3235ef67',listId='a352ed9d-3b99-4405-b2a3-2fc3c2678335',itemId='2',eptId='09fa52b4-059b-4527-926e-99f9be96437a')
Correlation Id: f9d2736f-8a66-4425-a5cc-cb30adf980ff Instance Id:
3e7695ad-5913-4bb0-b6c8-cbf29e4e877a
PJClientCallableException: GeneralSecurityAccessDenied
GeneralSecurityAccessDenied
I tried changing my workflow to just send an email to check whether there is something wrong with the workflow but emailing work
I suspect it has something to do with the workflow engine service user (if there is such a thing) trying to create and Enterprise Project.
I and the admin so I have the full access but for some reason the workflow is running as a different user on my behalf.
It is a simple workflow and it looks like this
And the list looks like this with its mapping with the Project Web App Fields
Any reasons why this is happening?
How do I resolve the issue?
If its a workflow service user what is the user that I can give full access to creating Enterprise Projects

Since this is SharePoint Online we are talking about it leverages Azure Workflows. Impersonation is discontinued in SharePoint Designer so you will have to use the App Step, to do that you will need to first to activate Allow workflow to use app permissions feature, then create App Step action where you will place your create project action.
You can find more information on how to add App Step as well as how to setup permissions here:
App step in SharePoint Designer
(MSDN) Create a workflow with elevated permissions by using the SharePoint 2013 Workflow platform

Do you have schedule template associated with your EPT?
if yes, then you have to include that template to that group's category within selected projects section.
Go to the category of that user's group, select the project template and include it into selected projects.
You can find steps and details in this blog by my colleague: http://www.epmpartners.com.au/blog/sharepoint-list-workflow-failing-when-creating-project-from-list-item/
hope this helps.

Related

What's next: after successful token created for django all-auth; how to sync google calendars?

Ok, I hope I don't get too beat up here for this question as it is kind of complex. At least in my view, with what I know so far. So the details first:
I built a nice app with django that brings in event data for users, utilizes that data for many things (not relevant to this question) but one of the things is that it syncs these events to the users Google calendar. I made the google app within the developer console, and it uses the provided credentials.json file to allow users to authenticate the app, thus creating individual user token.json files per user, then I have another script (not within django, just a custom python file) that runs from a cron job to automatically sync/ update the calendar info from the database to the google calendars.
Now, the new problem is having this work without my help. IE: a new user logs in and creates a profile, then if they should choose to sync to their Google calendars I have to be there, running the authentication process from my personal server. So I did that, by moving the whole app to a hosted platform and brought it up to speed in production mode.
Users can create a profile, using django-allauth it works to make an initial user account where they can fill in the rest of the profile. It does populate the token string for their account, but here is where I'm stuck.
What process is there to make the token.json file OR use the existing token string (the one it saves now on the server version) to allow the system to sync the calendars? Once the token files are created, the rest of this works. I just can't get the right answers to how django-allauth will handshake with Google and do this?
Thanks for any help!
Update: ultimately wound up using a service account with google api, and directing my users to combine the service account email (adding it as a shared user to the specific calendar) and they copy/paste the shared calendar ID in their profile on my app. All the logic now just uses this share function to sync the calendars, and it works great.

Count SharePoint Documents Dynamics CRM

I have SharePoint Online enabled for my Dynamics CRM Online. I have a documents subgrid showing on my account form. Everytime a document is uploaded to Sharepoint from within CRM, an email should be fired to the owner of the record.
I tried using this with Flow but it is difficult as the SharePoint Folder structure is as follows: Account > AccountI_GUID
AccountII_GUID
and so on
I could have alerts in SharePoint enabled. However, I would have to do this each time a new account is created in CRM. There is 13000 accounts in CRM already. So, I would have to go into each of the folders and enable alerts.
Would you have any other solutions?
I was thinking of maybe getting a count of all the documents in SP and showing the count in CRM. If the count has changed then trigger a workflow. But I am not sure how to go about that. Please help.
I would probably go about this by creating a Powershell script to iterate through all of the account document libraries to set up an alert on each one. You could then run this at the end of each day to pick up any new accounts.
After a quick google I came up with this which may be of use Create Alerts using CSOM
I know there are also ways in Dyanamics to remove the GUID from the library but I'm no Dynamics expert so not sure what functionality this may effect.

TFS 2015 not able to queue build using TFS2010 controller

we have upgraded from TFS2010 to TFS2015.
And connected the TFS2010 XAML build controller to TFS2015.
when we try to queue the build , we are not able to see the build controller in the drop down of build controller.
we could see that the Build controller registered and in running state.
I am getting error "TF900560: Could not start build: Object reference not set to an instance of an object.
"
This issue was caused because we have used the TFS controller which is cloned from the current production. Therefore, it is always suggested to reconfigure the build controller rather than using a cloned one.
Please check below items to narrow down the issue:
Check your TFS server an agent server to make sure the machines are
not running out of disk space. In this case, you can try clearing up some space on the servers.
Change the agent service account as another user account which has
admin privileges.
Restart the TFS and Agent servers.
UPDATE1:
Seems it should be the permission issue, just try to compare the permissions of Contributors and Project Administrators groups , then set the correct permission for Contributors group.
You can also try to clean the caches for your IE or change another browser even client to check that again.
UPDATE2:
As you mentioned in below comments "few users from same contributors group are able to queue the build".
So you can compare the permission settings between the vaild and invalid users in Contributors group. Then debug accrodingly. (Switch to Users tab in below screenshot --> Select the specific user to check the permission settings)

adding custom workflow extensions to Wso2 API manager

I have recently started working on WSO2 API manager and I have added a user signup workflow to it by following on this link :
https://docs.wso2.com/display/AM180/Adding+a+User+Signup+Workflow
It was pretty simple and straightforward, but the thing is, in my case I am the admin as well as the user. So Once I send a signup request, I manually log on to workflow-admin console and approve the request and once i approve the request I can login to the API Store. But in a typical production environment, the admin as well as the user must get some kind of email notification so that they can approve/reject as well as login once request is approved. How do I achieve this kind of scenario wherein the user will get an email notification once his/ her request has been approved as well as the admin will get a notification once a request is sent?
I have checked the adding a workflow-extension module in the documentation:
https://docs.wso2.com/display/AM180/Adding+Workflow+Extensions
But i'm still trying to figure it out.
Looking forward to some help.
As far as I know the current release of the Business Process Server doesnt have support for email notifications for HumanTasks. But this will be available from the next release of the Business Process Server (v3.5). As a work around what you can do is create a service in the ESB to send out emails and create a BPEL workflow (with humanTasks) which will trigger this email service in the ESB. But if you can wait till the next release (which should be available by end of Aug), then this feature would be available with the new Business Process Server.
Ok I finally got it working.
Write a class in java similar to UserSignUpWSWorkflowExecutor.java, make sure it extends the UserSignUpWorkflowExecutor class in the org.wso2.carbon.apimgt.impl.workflow package. And now in the complete method of your class, check for the signup status and write the logic for sending mail here. After this step make a jar of the particular package/component and add it to the patches directory in binary file of wso2 API Manager, while doing so make sure the name of the jar is similar to the one in the plugins directory. After this Step start your API Manager and in the admin console there is a workflow-extensions.xml file. Edit that file and add give the name of jar that you just created along with its package name. save it and restart the API Manager.
Note : Enable the user sign up worflow executor by following this link first
https://docs.wso2.com/display/AM180/Adding+a+User+Signup+Workflow

creating web service for querying TFS

I have been tasked with creating a web service(usingVS2010) to query TFS (2010) by the workitem number. The user would access the web service, then type in the workitem number and project name and hit a go button. This would call the web service, retrieve the title, and description and display it for the user on a seperate application. So starting this process I thought I would create a simple console application that does the same thing. I was able to connect to the server and I am able to see the collection of project that exists. What I am looking for is some help in querying the Server so that I can type in a number and get a response in my console. Does anyone have any examples, or direction or websites? While I wait for an answer I will be searching the web. Thanks in advance.
You'll want to use the TFS SDK to query work items programmatically.
Ewald Hoffman has posted an excellent example of how to get a work item by ID:
Part One discusses how to get connected to your server
Part Two shows how to query for a work item by ID.