Solved

new Nintex Forms Designer - Signature control


Badge +8

I see now there is a new version of Nintex Forms Designer.  I could not access it initially because of the new sites being blocked by our firewall, but after I got that resolved I saw the new designer.

 

It has a new Signature control, which I am glad to see, but the question is, "How do I use it?"  I cannot find much documentation.  There is 1 overview video I found (https://www.youtube.com/watch?v=ZTm07OFxhpE ) but it only mentions it briefly saying it will be stored in the list or in an image library, but how?  When I open the control properties, under "Connected to" it does not allow me to connect it to anything.  I tried the "Help" button but that only opens a generic help website with no obvious way to find anything.

 

Has anyone out there figured out how to get the signature control to save you image somewhere?

 

icon

Best answer by plamping 23 December 2019, 23:18

View original

15 replies

Badge +1

I am trying to find a way to use it today but failed. Adding a hyperlink or image column does not help. 

Badge +7
Please provide detail on how to actually capture the image in the item.
Badge +17

The signature is captured and stored as image attached to the item directly. To get access to the image, you would need to use the web service call via workflow to retrieve the attachments. 


 


I've seen this request quite a few times and will work to update documentation with an example soon.

Badge +8

Aha, now I see the attachment!  I had to modify the view and tell it to display "Attachments."


 


"Attachments" was always displayed by default on my old on-prem version of SharePoint, but not on SharePoint Online.


 


I should now be able to build a Nintex Workflow and use action Generate Document to get access to that signature.

Badge +8
I was able to build everything I need except for that web service call to retrieve the attachment. That step seems complicated. Hopefully you can soon provide us a documented example.

No pressure. Take your time.

But hurry up. 🙂
Badge +8
I am still working on this, using instructions I found for getting the list item attachment created by the Signature control,

https://community.nintex.com/t5/Community-Blogs/Get-List-Item-Attachments-using-Web-Services/ba-p/82415

Using those steps, I get the correct URL to the attachment file and then I insert it as an image tag in the document, but the workflow throws an error, “file not found for image tag.”

Any ideas how to resolve? I opened a call with Nintex but they have not offered a fix yet.
Badge +8
Updates - I made a lot of progress on this, using hours and hours of trial & error testing and other feedback. Nintext Support suggested I use "Office 365 Upload File" action to save the image to an image library. I got that to work using the relative URL to the list attachment image.

The image of the signature is too large and will not fit on same page as the text of the 1-page document. I am looking for ways to resize it.
Badge +8
Good news! Everything is working now! I used 1 more trick to resize the image in the document. I had to insert a picture into the document first, then I select the picture and resize it. Then select "Picture Tools" -> Selection Pane and insert the image tag into the field in that selection pane.

I discovered that trick from this new video, "Show a Nintex New Responsive Signature in DocGen (Office365)" around the 13th minute part.
https://www.youtube.com/watch?v=EFAaXSnhkww

The entire video did not exactly match the method I used. I plan on cleaning up the process and documenting it for myself and posting the steps here for everyone's benefit, but I am simply glad I finally have a working demo to show the team.
Userlevel 5
Badge +13

Hi @plamping,


 


Sorry for the delay in getting onto this post. I am glad to see you found my videos helpful.


 


Cheers,


Euan

Badge +8
Hi @EuanGamble,

Regarding your video. I mentioned I used a different method to get the list attachment with the image of the signature. I now want to try your method because it looks a lot simpler.

In your video, your workflow has 2 actions - a Web Request and a Query XML. I configure the Web Request and enter my username & password and save the response and use it for the Query XML. The Query XML returns nothing, so I checked the response and it shows this:

<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code>-2147024891, System.UnauthorizedAccessException</m:code><m:message xml:lang="en-US">Access denied. You do n

(the last part is truncated when it displays in Log to History)

I know my path to the API is valid, but for some reason the user does not have permission to access it. How do I resolve that?
Badge +8
UPDATE - I asked Nintex Support about this and they responded that the problem could be the account has multi-factor authentication involved and the HTTP Get call cannot properly generate the authentication token.

In that case, I decided to return to the previous method that I used to get the list attachment. It requeres 10 or more actions, including Call HTTP Web Service, but I know it works.

Here are instructions -
https://community.nintex.com/t5/Community-Blogs/Get-List-Item-Attachments-using-Web-Services/ba-p/82415

Badge +8

I promised a while ago that I would compile all these steps into 1 document for easier reference, rather than watch the 3 videos that I watched and 2 other blog posts... actually, I recommend you watch all those for full understanding.


 


I finally had some downtime so here is your Christmas gift -


 


Background - this is how you would manually find the URL to the list item attachment by using the API:


/_api/web/lists/getbytitle('listname')/items(id)/AttachmentFiles

Example:
https://tenantname.sharepoint.com/sites/sitename/_api/web/lists/getbytitle('inbox')/items(9)/AttachmentFiles


This returns XML output.


If you examine the XML output, you will see the XML node for ServerRelativeUrl.


<d:ServerRelativeUrl>
/sites/sitename/Lists/inbox/Attachments/9/sig__b140684065aa3ab8fa0c307c708d8889.png
</d:ServerRelativeUrl>

NOTE* for some reason it is turning the text into an emoticon.  The text should be a tag angle bracket followed by letter d then colon.


Now you have the URL to the image and can insert this image into your document template for the Generate Document action in Nintex Workflow.


https://tenantname.sharepoint.com/sites/sitename/Lists/inbox/Attachments/9/sig__b140684065aa3ab8fa0c307c708d8889.png

This is how to do it in Workflow.


Steps in Nintex Workflow for Office 365 for capturing signature and inserting into Word,



Insert Action “Set Workflow Variable”
Variable = var_Title
Value = whatever you want your document title to be (I often concatenate details from the document like first name & last name plus others).


(if you are doing a lot of other actions in your workflow, then insert an Action Set and keep all these new actions in that Action Set for better readability of your workflow)


 


Insert Action ‘Build Dictionary’


Add 2 items, “Content-type” and “Accept.”
For Key = “Content-type” set Type = Text and Value = application/json;odata=verbose
For Key = “Accept” set Type = Text Value = application/json;odata=verbose


Send Output to variable var_RequestHeader (a Dictionary)


 


Insert Action “Build String”
String = {Workflow Context:Current site URL}_api/web/lists/getbytitle('{Workflow Context:List Name}')/items({Current Item:ID})/attachmentFiles

Send Output to variable var_WebServiceURL (a text string)


 


Insert Action “Call HTTP Web Service”
Address = {Variable:var_WebServiceUrl}
Request Type = HTTP Get
Request Headers = select variable var_RequestHeader
Request Content = (blank)
Response Content = create variable var_ResponseContent (Dictionary)
Response Headers = select variable var_RequestHeader (or var_ResponseHeader) (Dictionary)
Response Status Code = create variable var_ResponseCode (Text)



Insert Action “Get an Item from a Dictionary”
Dictionary = var_ResponseContent
Item name or path = d/results
Output = create variable var_ResultsOutputDict (Dictionary)

Insert Action “Count Items In A Dictionary”
Dictionary = var_ResultsOutputDict
Output = create variable var_ResponseCount (Integer)


Insert Action “Run If”
Configure it to run When Workflow Variables “var_ResponseCount” is greater than 1.


 


Inside this If branch, Insert Action “Set Workflow Variable”
Configure it to set var_ResponseCount to 1 (this ensures it runs either 0 times or 1 time, not multiple times if somehow there are multiple responses.


(done with If branch)


 


Insert Action “Set Workflow Variable”
Set var_LoopCounter = 0


 


Insert Action “Loop N Times”
Repeat Count = var_ResponseCount


 


Inside loop, Insert Action “Get An Item From A Dictionary”
Dictionary = var_ResponseContent
Item name or path = d/results({Variable:var_LoopCounter})/FileName
Output = create variable var_AttachmentTitle (Text)


 


Still inside loop, insert Action “Do Calculation”
Set Workflow variable var_LoopCounter = var_LoopCounter + 1


 


Still inside loop, insert Action “Set Workflow Variable”
Variable = var_AttachmentURLrelative (Text)
Value = /Lists/{Workflow Context:List Name}/Attachments/{Current Item:ID}/{Variable:var_AttachmentTitle}


 


Still inside loop, insert Action “Set Workflow Variable”
Variable = var_AttachmentURL (Text)
Value = {Workflow Context:Current site URL}{Variable:var_AttachmentURLrelative}
(done with loop)
(done with Action Set for getting the image URL)


 


Next, upload the file into an Image Library (create one if necessary) – tip* do not include spaces when you name the image library, because you will be using the name to generate the URL later.


 


Insert Action “Office 365 upload file”
File to upload = “Existing SharePoint content”
set relative URL to {Variable:var_AttachmentURLrelative}
Destination site URL = {Workflow Context:Current site URL}
Connection = (create a new connection)
Folder path = (name of your image library)
File name = {Variable:var_Title}.png
Overwrite existing file = Yes
Fields = Builder
Link to uploaded file = create variable var_UploadedFileURL (text)
List item ID = select variable var_ListItemID
Upload successful = create variable var_UploadSuccessful (Boolean)


 


Next, generate the document (PDF) using a template built in Word. If necessary, create a document library that will store only the Word template (.docx). Create another document library to store your signed PDFs – tip* do not use spaces when naming.


 


Insert Action “Document Generation”
Generation type = Single PDF file (50 template limit)
Select the tab “Images” and select “Add image”
Image name = varUploadedSignatureImage
Image URL = {Variable:var_UploadedFileURL}


Select the button “Add document template”
This will open Microsoft Word to edit your template (when done with Word editing, save and close word and it will return to this page, then you can later use “Tag document” to open it again in Word for editing.


You now can populate and format your document in Word. On the right under window “Nintex Document Tagger” is all the variables you might want from your workflow – tip* it is more efficient to store everything you want in a workflow variable prior to this Document Generation step, rather than try to do list lookups within this step. It also shows your Image variable.


 


In the spot where you want the signature image to go, insert a “dummy” image that is about the right shape & size you want your signature image to be. Resize in Word if necessary. Then select the image, which will cause “Picture Tools” to appear at the top of Word. Select Picture Tools. Select “Selection Pane” and in that open slot insert your image variable <<Image_varUploadedSignatureImage>>
Finish your Word changes, Save file and close Word. Return to Workflow.


 


Back in Document Generation action,
In the Document Template section, set Output file name = {Variable:var_Title}
Output location = Document Library, select name of your library for signed PDFs.
Store output file URL in = create variable var_fileURL (Text)
Select “Save” to close the Document Generation action. Now you are done!


 


Save & Publish your workflow.


 


Other tips: set permissions appropriately so that users see only their items and their signatures, while admins can see all items. Set views appropriately to see only your own items or all items for admins.


 


Merry Christmas to all and to all a good night!

Badge +8
A while ago I wrote "I plan on cleaning up the process and documenting it for myself and posting the steps here" ...

and I did post the steps here, right before Christmas, but I checked today and they did not appear...

I will try again later.
Userlevel 5
Badge +13

@eharris04 - could @plamping post be awaiting moderation?

Badge +6
Wow, all that to save and output a signature? I guess you could save it as a site workflow and call it from your other workflows so as not to have to do that for every one that you want it in, yikes.

Reply