This is so awesome Nicole!!
Thanks for sharing out this great solution.
Vadim
Thanks for the Solution. Happy New Year in advance
Ironically, I did this the other week before reading this blog. Great Minds
Thanks for sharing this solution Nicole, I've been looking for one that will nicely work with multiple attachments.
I've tried few others but not working as I expected. I'll definitely give it a shout.. Thanks again
An Update: I applied the solution and it works like a charm.. Million Thanks Nicole
Great - glad to hear it worked for you!!
Extremely helpful Nicole! Thanks for sharing
Nintex WF 2013
sharePoint 2013
Windows 7, IE 11
Nicole - thank you for the great step-by-step detail. I'm getting a partial result as seen below - perhaps you could identify where my misstep is - also a couple of questions if I may:
1) This is the result I get after running the WF - Clearly I'm missing something when I get to one of the later action steps in the Loop
2) in the detail for Calling the Web Service, this is what I have, which seems to be working.
My question is, are there values that I can use other than my own Username and Password, as our passwords are changed frequently - perhaps I'm not reading your guidance correctly?
3) In your detail for the step for getting a sltCleanDocName, are the punctuations commas or periods? This is what I understood you to mean, using periods: .+[/Attachments/].+[/]
4) This is what I have for the last step in the Loop, adding rows to the table
5) Lastly, I chose to run the workflow as a Start WF action step at the start of the Request Approval WF. Is there a best practice where this WF should be initiated? I assumed as long as it was run before the Request Approval WF was acceptable.
Any assist you could provide would be appreciated.
Hi Mark Roadley - Happy to help!
1. Is this the screenshot of the data when placed on your task form? Are you writing the Multi Line Text variable to a Mutli Line Text list column? This has to happen in order for the data to display correctly. If you try to put the variable directly on the form you may end up with unexpected results.
2. Yes, you can use a Workflow Constant as an alternative for hard-coding your personal credentials into the WF. We typically recommend that our clients create an account to be used for admin activities with a password that never expires. Even if you aren't able to get access to an account which doesn't expire, putting your credentials into a WF Constant is a better practice becasue when your password changes, you only need to update it in one place (the WF Constant) and all actions in all WFs that are leveraging that WF Constant will get the latest password. Here is more information re: WF Constants: https://help.nintex.com/en-US/nintex2013/help/#Workflow/RootCategory/Designer/Nintex.Workflow.WFConstants.htm.
3. Yes, you are correct. Periods, not commas.
4. Looks good to me.
5. Yes, as long as you run these actions before the task is assigned, it should work.
Let me know if this gets you anywhere.
Nicole - thank you for your prompt response.
As to your 1st question.
- I created a Multi-Line Text column on the list. This is the screen shot of the value in the list table view, after running your WF.
- When modifying the Task Form, I added the new MLT column (control) to the form in 2 different ways:
- Simply chose the column from the list columns - for the setting Connected to I connected the defined list column
- Dropped in an unconnected MLT Box - for the setting Connected to I left it as "Not Connected", then for Default Value I grabbed the Column name from the Insert Reference.
- This is the screen shot of the value as it appears in the Task Form - rendered the same in both of the above form controls
Clearly, I have missed something.
I went back and double/triple checked all the action steps in the WF.0
Other ideas on what to check for?
As to your response #2, I am a SP Site Owner/Administrator - however, I do not have access to Central Administration or any of the familiar SP development tools such as SPD. All my work has to be accomplished using the tools contained within the purview of a typical site owner.
Having said that:
- You were correct in presuming I cannot create an Administrative Account with a non-expiring PW. I will look into that possibility with our IT Security team, but not hopeful. Our credentials are managed through an AD.
- Aside from the maintenance task of having to update the credential's Password on a regular basis (as mandated by Corp Security) the 2 scenarios I am envisioning are inevitable:
- I forget to update the WF when my own corp credentials need to be updated
- I have moved on to other roles or left the firm, and am not available to update the credential, or my credentials have been deleted.
- In my mind, ideally, the WF should be able to use the credentials of the user who initiated the approval task.
Is there a solution taking into account my use case scenarios?
Thank you
Mark
This is a great alternative to other solutions to this problem I have seen but it also has some of the same drawbacks. What if the task is not expected to be completed in a short time frame and additional attachments are added after the task is created? I recently came up with the following solution to this and I'd love to get some feedback to see what problems it might have. I simply added a calculated field to the task form and gave it a CSS class of attachmentField. I then added the following to the custom JavaScript of the form.
NWF$(document).ready(function(){
var requestUri = "Site URL/_api/lists/getbytitle('Project Planning Worksheet')/items(ID)?$expand=AttachmentFiles";
var attachmentsHTML = '<div>';
$.ajax({
url: requestUri,
type: "GET",
headers: { "ACCEPT": "application/json;odata=verbose" },
success: function (data) {
$.each(data.d.AttachmentFiles.results, function (i, item){
var x = item;
var attachmentUrl = item.ServerRelativeUrl;
var fileName = item.FileName;
attachmentsHTML += '<a href="' + attachmentUrl + '" target="_blank" >' + fileName + '</a>' + '<faketag>';
attachmentsHTML = attachmentsHTML.replace("faketag","br /");
});
attachmentsHTML += '</div>';
NWF$(".attachmentField").html(attachmentsHTML);
},
error: function () {
alert("Error getting the Item Attachments");
}
});
});
In the requestUrl the Site URL and ID are references. You may notice a weird "<faketag>" that was my workaround to Nintex replacing my <br /> tag with an end of line even though it was in quotes in a string. Obviously this is just some very simple formatting to add the links to the attachments to the task form and it could be expanded upon.
Thanks,
Brian
When I add to my Nintex Form an html link tag (<a>) from Nintex Workflow proccess in a control Enhanced Rich Text (in Nintex form) my link appears on the form without http.
For example: I try to add a control <a href="google.com">google</a> in Nintex workflow, but when this control is added to Enhanced Rich Text it appears as <a>google</a>
Does anybody have an idea why this is happening?
Hello @bzebarth , your solution sounds very simple. I tried to implement it, but the claculated field always shows "#Value!". Can you please go more into detail?
The steps I've taken:
- Place a calculated field on the task form and give it a CSS class of "attachmentField"
- Copy/Paste your JavaScript in the task forms JavaScript-section. If I manually paste the requestUri in the browser with an existing ID, I get long lines of text with the content of the list item, so I assume it is correct.
- Save and populate the workflow
However, the field is only showing "#Value!". Is there something I have missed?
Thank you
Kind regards
Fabian
@nprestby
i have recently came over your solution and this is exactly what i am looking for in my approval flow, for one attachement to be move to another approver via nintex workflow using nintex forms. I have followed the steps precisely but i am not getting any results, i am getting stuck at the loop action for each. Specifically it seems to be skipping the two steps of getting document name and adding row to the table. Is there something i am doing wrong? could you please advise on what to look at i am out of ideas and literally no one knows how to fix this. would really appreciate your help!
I have attached the workflow where it seems to be breaking as well as the settings for the actions
Hi @nvesser,
That's a great post, thanks! I just wanted to add that another option to displaying the links is by using a "Rich text" control instead of the "Multi line of text" control. Then you don't need to create a new column or update the item during workflow execution. Just something that may help other users 🙂
Regards,
Nicolas