Answered by:
AutoStart Workflow: Microsoft.SharePoint.SPException: Recursive workflows are not permitted.

Question
-
I can't seem to figure out this one. Sometimes it works and then again not.
The setup is like this
A list with a workflow which creates a document in a document library and writes the List Item - ID in a field in the new item in the DL.
The DL has a workflow that starts whenever a new item is created. This workflow takes the value from the Item - ID field and writes it's Element - Url in a field (Multitext - Append) in the original List into the item that has the Item - ID.
ULS Viewer on the server shows this error Message
The document library has a workflow attached that fires up whenever AutoStart Workflow: Microsoft.SharePoint.SPException: Recursive workflows are not permitted. at Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.<>c__DisplayClass1.<AutoStartWorkflow>b__0(SPSite superUserSite, SPWeb superUserWeb)
Any idea appreciated
Answers
-
Maybe this helps someone else with the same requirements.
I have choosen this workaround.
The workflow in List A creates a document based on a customized template in document library B. The template is filled automatically with some of the values from the item in List A.
The Owner of the Document library B gets a notification and kicks of manually the workflow in DL B.
That's feasible as the arrival of a new document has to be confirmed anyways.The workflow fills a variable containing all the text of the field in List A wich holds the URL's for the documents in DL B - it then adds the new link to the existing text and writes the variable back to the field in List A.
I now have the connection from a document to the corresponding item in List A and I have 1:n entries in List A to the items in DL B.
Works well. I still have to find the limit of how much text a variable can hold.
- Marked as answer by Emir Liu Friday, December 2, 2011 5:34 AM
All replies
-
Hi
what you said is something like
LIST_A ------------> workflow1--->create a document in DL--->workflow2---->update LIST_A
and so on.....
If workflow1 start when an item in LIST_A is changed you will be the happy owner of a loop ! :)
Force workflow 1 to start only when an item is added in LIST_A ( or put an additional condition to start, if you want to start when an item is changed )
Let me know that help, and mark as an answer. Regards
Romeo Donca -
Hello Romeo
Thanks for your reply.
In List A I have a "triggerfield". When it is changed "Workflow of List - A" creates an item in the document library and fills the Field "ID of item in List - A".
It then sets the "triggerfield" in List A back to default.
In the document library there is a workflow that acts upon new items and takes the value of "ID of item in List - A" and stamps a Multitext field in List - A with the "ElementUrl" of the newly created document.
The idea is to have a connection between the two corresponding items in List A and the document library.
The workflow in the document library works well when kicked on manually from within the DL but still throws the error in the server log.
-
Hi
Why to re-write in LIST_A the URL for the new added document?
it's enough to save in doc libraryfills the Field "ID of item in List - A"., and letter if you need to select from LIST_A all documents fro an item it's enough to make a connection between
LIST_A:ID-----------------> DOC_LIB:"ID of item in List - A".
Romeo Donca -
No it is not enough.
List A is the master and users should have a link to the corresponding documents.
That's the requirement
And as the multitext field in List A is set to append changes there can be many documents pointing to the same item in list A.- Edited by Kurtbrae Monday, November 28, 2011 1:14 PM
-
Maybe this helps someone else with the same requirements.
I have choosen this workaround.
The workflow in List A creates a document based on a customized template in document library B. The template is filled automatically with some of the values from the item in List A.
The Owner of the Document library B gets a notification and kicks of manually the workflow in DL B.
That's feasible as the arrival of a new document has to be confirmed anyways.The workflow fills a variable containing all the text of the field in List A wich holds the URL's for the documents in DL B - it then adds the new link to the existing text and writes the variable back to the field in List A.
I now have the connection from a document to the corresponding item in List A and I have 1:n entries in List A to the items in DL B.
Works well. I still have to find the limit of how much text a variable can hold.
- Marked as answer by Emir Liu Friday, December 2, 2011 5:34 AM