Skip navigation
All Places > Getting Started > Blog > 2016 > August
2016

blueribbon4.pngIf you're cruising through the community, and you see a little blue ribbon next to someone's name, they're pretty special around here.

 

No, it doesn't mean they won a prize at a county fair or finished first in a local race.

The blue ribbon signified that person as a member of the Nintex Connect "Blue Ribbon Group."  It's a baker's dozen of active, trusted, experienced Connect members who will take on a few extra roles in the community.  If you see that person respond to a question, you know they're a trusted source of information, and they have a great deal of experience with Nintex products.

 

They've agreed to do a number of extra things in the community.  They'll be helping new members, answering questions, sharing their proven approaches, and providing feedback to Nintex on the community.

 

In an effort to make an immediate impact on the community, their first big job will be hunting down correct answers and marking them as correct. This helps the answers show up in search, and can help knock down the number of repeat questions asked.  That makes the community more useful for everyone. So, if you ask a question and forget to come back and mark an answer correct, don't be surprised if one of them does it for you after a few days.  It's in the name of closing the circle on questions so that people can find the solutions they need.

 

There'll be other initiatives. But for now, my heartfelt thanks to the following introductory members of the Blue Ribbon Group!

 

 

Look up their profiles. Check out their backgrounds. You can @-mention them in threads. And "follow" them in the community. I believe they're going to have a great impact!

There are some updates to the look of the content on the community coming September 1st! We will enable a feature on our community platform that we think makes content more visually appealing.  Below are what changes to expect for various types of content.

 

Blogs

blogpost.png

 

 

 

You  might first notice the big banner images on top of blog posts.  It's the primary photo that shows up as the post appears in news streams, and weekly digest emails. Here's an example to the left.Banner images aren't required in content, but we are encouraging our Technical Evangelists and other bloggers to use them.

Questions and Discussions - New Thread!

discussions2.png

 

 

 

 

 

Questions now appear as a separate type of content instead of an option when starting a discussion. This makes it easier to create and browse questions.

 

 

 

See that green star at the top? That's how you'll know it's an answered question, in addition to showing up as a green box with a check mark when you use search to look for answers.  You DO use the search function, first, right?  Good!  :-)

 

 

 

You'll see the ability to "like" and a link to add a comment at the top, too.

 

 

 

Correct answers, when selected, jump to the top, right under the question, with a highlight in green.  You don't have to hunt through a thread to find the answer, although the thread is still visible below.

 

 

 

And in a thread, the new looks makes it a little more clear when a reply is in response to a comment or the original question. So, sub-threads in the discussion don't get mixed up.

 

 

 

Discussions don't change much, but they do follow the new design pattern.

 

 

 

Breadcrumbs and actions move to the top of the content and related content moves below.

Videos

video.PNG

 

 

 

Videos we post have the same visual option, and if a banner image isn't selected a screengrab fills the void.

 

 

Below the video is the ability to like or click to comment And there's space below for information about the video the creator can submit.

 

 

Impact metrics are below that so you can see at a glance what sort of impact the video is having in terms of views and community reach.

 

New Editor!
toolbar.pngAll this work will take place in a new “Rich Text Editor.” When you first see the toolbar upon starting some type content, it will be collapsed. Click the three dots to expand to the full toolbar to see all your options.  All previous options remain, in a more modern approach. It should be a little easier to insert links, too.  You can also now use an inline link editor even when editing content.

 

 

We hope you like the changes! We think they'll improve the look and experience of the site!  It happens September 1st!

This is probably not news to many on here, but for those un-initiated in some of SharePoint quirks, I present the famous "Calculated Column" trick.

 

Do you want a really easy way to render a piece of HTML in a dataview on your SharePoint list or library?

 

Capture.PNG

Then here you go.

Create a Calculated column that looks a little something like this

Capture.PNG

 

Be sure to select anything OTHER THAN "Single line of text"

 

Your formula should look a little something like this

="<a href='www.google.co.uk'>Click Here to Approve</a>"

 

You can in fact use this for an number of other functions including Concatenates and IF's, for more details check out this link.

 

SharePoint will render this HTML as a clickable link for your users.

 

"What's the Nintex angle?" I hear you ask.

 

Well by creating a column called Approval URL or WorkflowMapURL and using the Nintex common properties to write to that column, you can then include that URL as your hyperlink, thus giving your users a link to the approval task straight from the item. Of course, only users who have had the task assigned to them can approve, but this is still a nice little trick. In fact you can use it for all sorts.

 

I created a Document library that contained 3 content types, Procedures, Forms and Deviations. The default view was set to Procedures, which would show all Procedures. Then as users began adding Forms and Deviations, they would be prompted for a piece of metadata called Proc Number, this was an identifier that linked a Procedure to a Form or a Deviation.

When an item was submitted, a workflow ran to identify whether a Procedure existed with that number, if it did it would build a URL of http://server/sites/sitename/libraryname/Forms.aspx?ProcNum=123456789

where the proc number is taken from item property. Write this to a column and then throw in an IF as well so that it only shows the hyperlink if a Form exists with the same Proc Number. It looks a little like this

 

=IF(
  ISBLANK
([FORMURL])
  
,""
  
,"<a href='SiteURL/Documents/Forms.aspx?ProcNum="
  
&[ProcNum]
  
&"'>Form(s)</a>"
  
)

 

I did the same with the Deviations and there it was, a library with Procedure documents and links to Forms and Deviations if they existed.

 

The power of the Calculated column

Capture.PNG

bburke

Date Stamp a Repeating Control

Posted by bburke Aug 23, 2016

I had a lot of difficulty placing a date stamp on a repeating section entry.

aditya gandhe presented a solution Repeating Conrol + Current user Name + Time that included Current User and Time but it was more than I needed.

 

With some help from my colleagues on our development team, I'll document how we date stamped multiple repeating section entries.

 

First, on our form we placed a repeating section, inside that control we place a date/time control.

 

https://community.nintex.com/servlet/JiveServlet/downloadImage/190226/pastedImage_0.png

 

In the properties of the date/time control we set the Default Value to "blank" and Date Only to "Yes".

 

https://community.nintex.com/servlet/JiveServlet/downloadImage/190227/pastedImage_1.png

 

In the properties of the Multiline Textbox nested in the Repeating Section  create a control named "control-class" (of course you can name it what you want).

Ensure you connect the repeating section to a list column.

 

https://community.nintex.com/servlet/JiveServlet/downloadImage/190228/pastedImage_2.png

 

In the form settings, insert the following in the Custom JavaScript section:

 

NWF$(document).ready(function(){ 

NWF$(".control-class").on('change', function(e) {

var timestamp = new Date();

NWF$(this).closest('.nf-repeater-row').find('.nf-date-picker').val(timestamp.format('MM/dd/yyyy'));

});

});

 

https://community.nintex.com/servlet/JiveServlet/downloadImage/190229/pastedImage_5.png

 

Publish your form. If you enter text in the repeating section multiline textbox, the date/time control will not update until the focus changes to somewhere outside the multiline textbox.

 

This includes: If the user enters text in the multiline textbox, leaves the focus there and selects "Save", the focus will change and the date stamp will be saved to the form.

 

Additionally, if the multiline textbox is modified, it will update the date/time control.

 

Hopefully this will be useful to you somewhere down the line.

Recently, I was asked to hide the "Cancel" button on a Nintex Form.

 

Using the Internet Explorer Development Tools (F12), I identified the Cancel button element.

 

1.png

 

It was necessary for me to use the element id (because the class is used multiple times in the form), so I inserted the following to CSS on the form.

 

#Nintex.Forms.SharePoint.Ribbon.Filler.d22208f1_d79c_450b_a0dc_aadff6857888-Large {

display:none;

}

 

Unfortunately this didn't work.

 

After some research I realized the periods in the element id name are not recognized by CSS and need to be escaped.
Adding a slash (\) in front of each period did the trick.

 

#Nintex\.Forms\.SharePoint\.Ribbon\.Filler\.d22208f1_d79c_450b_a0dc_aadff6857888-Large {

display:none;

}

 

2.png

This seems to be a common ask, and this is by no means the only way to do this! This is a simple approach using out-of-the-box functionality and can be setup in a few minutes in a site workflow or a list workflow.

 

The "ask":

Return all users from a SharePoint User Group in First Name Last Name format.

 

Setup and Overview:

First step is to get the User Group name that we need to interrogate. Once we have that, we can make a web service call and get a collection of all logins, loop through them and build a list of all users. Done.

 

Here are the variables that I will be using:

**Note that I am doing this as a SITE WORKFLOW and have my varGroupName required and on my start form.

If you want to make this in a list workflow, you will need to alter that piece and feed it in a different way.

 

The workflow:

1. Get Group Name - This is simple enough, just ask for the user to type it in. Be careful though; it will try to find exactly what you put in, so if it is misspelled, you are not going to get results. We do this in the workflow start form and then feed it into the web service call.

 

2. Call web service - Here we want to specify the web service (GetUserCollectionFromGroup) and feed it our group name variable. Be sure to test this with an actual group name to ensure you will get results. It will also be helpful when testing and setting up the next step as well. Also, if you want to alter this, it helps to know what XML you are getting back. Then we need to store the resulting XML in a variable and we are set!

3. Query XML - Now that we have our results, we can query the XML and pull out all the users logins. If you grabbed the actual XML from the previous step, you can paste it in the XPath Builder to get the exact XPath you will need. Again, testing with actual data is better so you can see what is going on before you publish and try it. Once setup, simply store the results into our collection variable.

4. Loop for each user in the collection -

Here is where the names get pulled out and first and last names are smashed together.

In our For each action, we want to look at the collUsers and store each one (one at a time) into varUserLogin.

Using Set variable actions, set varUserFirstName and varUserLastName by looking up first name and last name from User Profile details based on varUserLogin, like so:

At this point you have varUserFirstName and varUserLastName and can do whatever you need to with it. Perhaps you need to use it in an email, or write to a list. For this example, I am going to create a full list of all users in the group. I do this by using a Build string action and adding in varUserFirstName and varUserLastName along with the varGroupUsers to continue building on top of itself.

 

5. Email list of users - Now that I have a full list of users, I can email myself the results:

 

 

Again, this is not "the definitive" way to accomplishing this, simply how I did it. I would be interested to know how other accomplished something similar to this, or if someone created a UDA to plug into workflows would be even better. If I have some time, I may do that.

 

I added the .nwf file here in case anyone wants to grab it and use it. Do note that it is a SITE WORKFLOW, but you can always create the site workflow and then save it as a snippet.

 

Let me know your thoughts and comments! 

 

Until next time!

cazza162

All things Delegation

Posted by cazza162 Champion Aug 19, 2016

A question was posted about delegation the other day and it made me realise that there is quite a lot to know about delegation that can be picked up along the way, so thought I would blog about everything I have learnt to date!

Tasks that allow delegation:

Assign flexi task

In the configuration of this action the workflow developer has a few of options for delegation:

Action tab – Allow delegation

AFT-ActionTabDelegate.PNG

The help for this option states:

When this option is selected, the assignee at runtime can delegate the task to another user. Changing the 'Allow delegation' option on the 'Action' screen is the same as changing the 'Allow delegation' option for all assignees on the 'Task Notification' ribbon option.

This means that when the task assignee opens the task to respond, they will see a link to delegate the task to someone else.  They can choose this person on a task by task basis.  The link will look something like this:

DelegateTaskLink.PNG

Task Notification tab – Allow delegation

AFT-TaskNotificationTabDelegate.PNG

The help for this option states:

When this option is selected, the assignee at runtime can delegate the task to another user.

This means that when the task assignee opens the task to respond, they will see a link to delegate the task to someone else.  They can choose this person on a task by task basis.

 

Escalation tab – Escalation type = Delegate task

AFT-EscalationTabDelegate.PNG

The help for this option states:

Delegate task will re-assign all pending tasks to the nominated user after the specified time.  Escalation occurs after all reminders have been sent and the specified "Time to escalation" has elapsed.

 

Assign to-do task

In the configuration of this action the workflow developer has a few of options for delegation:

Action tab – Allow delegation

ATDT-ActionTabDelegate.PNG

The help for this option states:

When this option is selected, if the assignee field of the task is changed, Nintex Workflow will record the change as a task delegation and the new assignee will receive the Response Required Notification. If this option is not selected, Nintex Workflow will not track the change to the assignee and Nintex Workflow reports and web parts will not reflect the new assignee.

Task Notification tab – Delegate task when 'Assigned To' changes

ATDT-TaskNotificationTabDelegate.PNG

The help for this option states:

When this option is selected, if the assignee field of the task is changed, Nintex Workflow will record the change as a task delegation and the new assignee will receive the Response Required Notification. If this option is not selected, Nintex Workflow will not track the change to the assignee and Nintex Workflow reports and web parts will not reflect the new assignee.

Escalation tab = Escalation type = Delegate task

ATDT-EscalationTabDelegate.png

The help for this option states:

Delegate task will re-assign all pending tasks to the nominated user after the specified time.  Escalation occurs after all reminders have been sent and the specified "Time to escalation" has elapsed.

 

Request approval

Action tab – Allow delegation 

RA-ActionTabDelegate.PNG

The help for this option states:

When this option is selected the assigned approver at runtime can delegate the task to another user.

This means that when the task assignee opens the task to respond, they will see a link to delegate the task to someone else.  They can choose this person on a task by task basis.

Task Notification tab – Allow delegation

RA-TaskNotificationTabDelegate.PNG

The help for this option states:

When this option is selected the assigned approver at runtime can delegate the task to another user.

 

Request data

Action tab – Allow delegation

RD-ActionTabDelegate.PNG

The help for this option states:

When this option is selected, the user whom the task was assigned to will have the option to reassign it to another user.

This means that when the task assignee opens the task to respond, they will see a link to delegate the task to someone else.  They can choose this person on a task by task basis.

Escalation tab = Escalation type = Delegate task

RD-EscalationTabDelegate.png

The help for this option states:

Delegate task will re-assign all pending tasks to the nominated user after the specified time.  Escalation occurs after all reminders have been sent and the specified "Time to escalation" has elapsed.  

 

Request review

Action tab – Allow delegation

RR-ActionTabDelegate.PNG

The help for this option states:

When this option is selected the assignee at runtime can delegate the task to another user.

This means that when the task assignee opens the task to respond, they will see a link to delegate the task to someone else.  They can choose this person on a task by task basis.

Task Notification tab – Allow delegation

RR-TaskNotificationTabDelegate.PNG

The help for this option states:

When this option is selected the assignee at runtime can delegate the task to another user.

 

Delegate workflow task

This action is designed to work alongside “Request Approval”, “Request Data” and “Request Review” actions by delegating those tasks (using their Action ID) to a specific user.  As example where this might be used if after a specific delay an assigned user has not responded, the task can be delegated to another user such as their superior.

DelegateWorkflowTask.PNG

This delegation can applied to all pending tasks, or to the first pending task dependent on the requirement.

 

Delegate page:

DelegateTask.PNG

Delegate:  Use the address book or enter the name of the person you wish to delegate the task to.

Comments:  Required field.  Use this to add comments to be sent to the Delegate explaining why the task has been delegated to them.  This information is added to the notification sent to the delegated user.

The task will be updated to reflect the delegated assigned user.  I have noticed that this always changed the status of the task to “In progress”.  

 

Personal Delegation

A user can set up delegation for a period of time to be scoped at different levels.  This is accessible from the logged on user name dropdown, selecting Nintex Workflow 2013 and Task Delegation:

TaskDelegation.png

Choose "Delegate tasks to a user between specific dates":

 

PersonalAddDelegation.PNG

From this screen the user can select the dates for which the delegations should occur and who should be delegated the tasks during that period.  The scope can be changed to apply only to tasks from the current site, or the entire SharePoint farm.

NOTE:  If a task is delegated to a user, the long term delegation is ignored (so isn’t re-delegated).

This ability depends on the Global Setting “Long term delegation

Site administrators can set up long term delegation for other users if the Global Setting “Site administrators long term delegation” is enabled.

 

Call web service for Delegation

Using the workflow.asmx web service you can surface the DelegateTask method to delegate a task.

This is outlined in more detail by Dan Stoll here:

https://community.nintex.com/community/tech-blog/blog/2016/04/01/the-gentle-art-of-delegation

 

NWAdmin Operations for Delegation

Information taken from the PDF located here:

https://community.nintex.com/docs/DOC-1026

DelegateAllTasks

This operation is used to reassign all tasks from one user to another. It can be scoped to a single site, or the entire environment. Note that tasks can only be delegated to individual users, not groups.

Note: This operation uses the Nintex Workflow web service, and requires credentials to connect to the web service.

Usage

NWAdmin.exe -o DelegateAllTasks -currentUser domain\username -newUser domain\username [-siteUrl urlToSharePointSite] [-sendNotification] [-comments] [-username username] [-password password] [- domain domain]

Parameters

nwadmin.PNG

Site Owners and Delegation

Even if you have not selected delegation on your actions, site owners should still be able to see the link to delegate a task on behalf of another user.  This is especially handy if someone goes out on leave or sick and the workflow cannot continue without delegation, the site owner can just in there and delegate the task on a case-by-case basis.

 

So as you can see there are a lot of options for delegations in Nintex Workflows, and I am sure I haven't covered all of them!  Feel free to comment and let me know if I have missed anything! 

greenawayr

Pick up where you left off

Posted by greenawayr Champion Aug 18, 2016

We've all been there haven't we? You've got a multi-stage workflow, your director has approved it, your manager has approved it, and then **ERROR**

 

Something goes wrong. Maybe your next approver has left the company since the workflow was started, or there's an erroneous value in your variable that your SharePoint column won't accept.

 

Either way, you've got into a position where you've already had approval from a director (or anyone) once, you don't really want to have to ask them again.

 

On long running workflows this can be a real pain. So we introduced a setup that allowed us to "Pick up where we left off" (or were kicked off as the case might have been).

 

The State Machine is a brilliant action for for these staged workflows that transition through a number of different states and the Switch Action allows us leverage these states. Take the following example:

An item is created, to achieve approval it must go through 3 stages on a State Machine.

  1. Manager Approval
  2. Director Approval
  3. Task to be actioned by individual

Each of these stages is a branch in a State Machine, and after each task has been approved a Status column is updated to represent it's stage.

  1. Manager Approval - Status = "Approved by Manager"
  2. Director Approval - Status = "Approved by Director"
  3. Task to be actioned by individual - Status = "Ready for Action"

 

The status is updated immediately after the task completes and then the State Machine changes state to the next branch.

Item with ID = 101 is submitted and the approval workflow starts, the manager approves it immediately and then a month later the Director approves is, however, in that month, the user listed in the Item as the person to complete Stage 3 has left the company. So when Stage 3 goes to assign it's task, the workflow fails because the user does not exist in AD.

 

Enter the Switch!

 

When we designed our workflow, we created an additional branch on our State Machine called "Status Check" The state machine is set to go to this branch first. In this branch we have a Switch which will check the status column of our item and look for one of "Approved by Manager", "Approved by Director", "Ready for Action" or "Other". Each branch of the Switch has a Change State action that will send the workflow off to the required branch in the State Machine.

 

So when our item is updated with a new user to "action" and the workflow is restarted, in the case of Item 101, the status is "Approved by Director". The Switch identifies this status and the Change State action is set to send the workflow straight to the "Task to be Actioned by Individual" state. Thus the workflow "Picks up where it left off".

StateMachineSwitch.PNG

The main downside we have from this is that we are left with 2 workflow instances for an item in order to prove the audit trail of the item, however, the full story is there to see.

I recently had a requirement where I had two lookup fields on my Nintex Form where one had to be filtered by the other, and both had to allow multiple selection.

I thought that this was going to be really difficult to implement, and was using all sorts of disconnected controls in order to try and achieve the result, and then I discovered that Nintex Forms just works when you use list column types "Lookup".

Wanted to share with everyone how powerful this was, and hoped it may help with this thread:

https://community.nintex.com/message/45415?et=watches.email.thread#comment-45415

 

So I have the following lists:

Custom List:  luDivisions

Fields:  Title

luDivisions.PNG

Custom List:  luBusinessUnits

Fields:  Title, Parent Division

Parent Division = Lookup to luDivisions:Title

luBusinessUnits.PNG

 

Finally I have my main list, where I want to use the Nintex Form to capture data:

Custom List:  Demo Lookups

Fields:  Title, Division(s), Business Unit(s)

Division(s) = Lookup to luDivisions:Title, allow multiple

Business Unit(s) = Lookup to luBusinessUnits:Title, allow multiple

DemoLookups.PNG

 

Then in Demo Lookups I customise my form using Nintex Forms designer.

The out of the box form gives me this:

oobform.PNG

 

So I want the Business Unit(s) to be filtered by the Division(s) so I double click the control for Business Unit(s) and add the following configuration:

FilterControlSettings.PNG

 

Now when I add a new item, the Business Unit(s) list is dynamic based on the Division(s) list.  Seems so clever yet is so simple!

Form1.PNG

Form2.PNG

I jumped right in to building a form... I got this!

 

I plugged away adding items as fast as I could and before I knew it I had a decent size form put together.

 

Time to run it! Well. yeah my layout in the forms designer looked a whole lot better than in runtime.

Controls were overlapping, pushed to the left, pushed to the right........ When applying rules especially hiding and showing items would totally shift items at will.

 

I got some great support from Nintex after many hours of struggling to get the form to behave the way I wanted it to.

Bottom line: Panels

 

Avoid just dropping items on a form. Use panels to group your form elements into logical sections.

Here's an example of how Panels helped solve a problem:

 

I applied a rule that would hide the text seen below after a date was entered into the form. Just laying the controls on the form, when the rule executed, the remaining controls would shift and end up on top of each other. 

By adding a Panel to my form and I placed all of the controls inside the panel, the rule executed and the layout behaved as expected.

 

If you find yourself having issues with your layout shifting at runtime or after applying a rule, consider Panels.

bburke

Tips for Newbies (like me)

Posted by bburke Aug 13, 2016

I have always wanted Nintex Forms and Workflow for many years now. It's been about 3 months since I was able to purchase the Enterprise Edition and it has changed how I support my customers. Like anything else, learning new apps can be exciting and frustrating. As long as I can remember I said to myself "this would be a good lesson to share..." but I'm always just focusing on my work and always forget to follow through. This time I'll give it my best shot because 'm loving working with Nintex.

 

I want to share with other new users things I find along the way that will help either get over that obstacle they face or bring to light a different approach. I'll be adding items as I progress through my Nintex journey.

 

Nintex Workflow

Action Sets

 

Nintex Forms

Panels
Hide Individual Ribbon Elements

Date Stamp a Repeating Control (* recently added)

 

 

 

 

Links

Date and Time Format Strings - Quick Reference Guide - Andrew Glasser (* recently added)

Nintex Community Training Space - (must bookmark)

Need to Hide the Ribbon on your Form? - Daniel Stoll

Rules Examples for Nintex Forms - Nick Hurst

Nintex 60-second Solution Scenarios - (getting that idea started)

Nintex Forms for SharePoint How-to Videos

I started creating my workflows in a very linear fashion across or down, each action laid out on my canvas.

I quickly discovered the ability to "label" my action panels (do it!)

But as my workflow started to grow in size scrolling up and down and side-to-side was increasingly frustrating. The only way I could get a clear view of the entire workflow was to zoom out which then made my label very hard to read. Testing my workflow also became very time-consuming as I would have restart and run through 10 steps to get to the action I thought was causing the problem, you get the idea.

 

 

One day I discovered Nintex in a Minute, Nancy & Shelley, Forms Film Festival, Jeopardy and Secret Agent Ninja in the Training Blog. This is a must bookmark, especially if your just starting out.

 

Workflow actions for 2013: Action Set  by Kayla Marsden gave me my first exposure to Action Sets, enough to want more.

A Google search led me to a Nintex Tips and Tricks video by GigWerks.

 

These two references pointed out that I could group my actions into containers and achieve the following:

 

Below shows a workflow on the right without Action Sets. Each step laid out on my canvas. A similar workflow on the left using Action Sets.

 

 

With the Action Set, I am able group the actions into logical steps of the workflow and collapse the Action Set so I can easily visualize multiple steps in the workflow in one view, no scrolling or panning.

 

 

 

The Action Set allows you to expand or collapse the group of actions by selecting "Minimize" or "Maximize"

 

 

This made it much easier for me to lay out, label and visualize my workflow making development a more pleasurable experience.

 

As I said, as the workflow became larger in size it became increasingly difficult to pinpoint errors during testing.

Notice in the Action Set menu above, there is a selection named "Disable". This selection is a testing bonus!

 

Below I have disabled the first three Action Sets. When I publish and run the workflow, it disregards those actions and in this case starts with "CPO for Signature Action Set.

 

 

So if your workflow contains many, many actions, this could be an incredible time saver, relieving you of having to go through multiple steps to get to one specific step when testing.

 

I would encourage you to take a look at Action Sets now and utilize them as a routine in your development process.

A sandwich PDF is a scanned document that contains an invisible text layer exactly over the image text. Text layer is produced by OCR (optical character recognition) using open source software tesseract. So PDF ist searchable for text and text can copied and pasted in another document.

 

prerequisites

 

sharepoint lists

  • document library named e.g. tesseract for uploading (scanned) images in tiff format
  • list named tesseract-lang to select text language in list lookup control on start form

list workflow tif2pdf

  • startform

  • workflow

load up an image in tiff format and start item workflow for it. By powershell script text is recognized by tesseract from image and converted to a searchable PDF with image and text layer a so called sandwich pdf. It is also possible to select und copy text from new pdf.

 

Here is powershell script for PowerActivity action:

$VerbosePreference = "Continue"   # keine Ausgabe: "SilentlyContinue"

##############################################################################

Add-PsSnapin Microsoft.SharePoint.PowerShell

##############################################################################

$SiteURL  =  "{Common:WebUrl}"

$ItemURL =  "{Common:ItemUrl}"

 

$FromDoc = ($ItemURL).Replace($SiteURL + "/", "")

$DocLib = [System.IO.Path]::GetDirectoryName($FromDoc)  # tesseract

$PathName = "c:\temp\"

 

$ToPDF   = [System.IO.Path]::GetFileNameWithoutExtension($ItemURL)

$ToPDFFile = $PathName + $ToPDF                                                   

$PDFFile = $ToPDFFile  + '.pdf'

$TiffFile = $PathName + [System.IO.Path]::GetFileName($ItemURL)   

 

$web = Get-SPWeb $SiteURL

$file = $web.GetFile($FromDoc)

$filebytes = $file.OpenBinary()

$filestream = New-Object System.IO.FileStream($TiffFile, "Create")

$binarywriter = New-Object System.IO.BinaryWriter($filestream)

$binarywriter.write($filebytes)

$binarywriter.Close()

##############################################################################

$ErrorActionPreference="Continue"

tesseract -l {WorkflowVariable:Sprachkuerzel} "$TiffFile" "$ToPDFFile" pdf

##############################################################################

$FilePath = $ToPDFFile + '.pdf'                    

$overWriteExisting = $True #or add new version if versioning enabled

 

$Web = Get-SPWeb $SiteURL

$List = $Web.GetFolder($DocLib)

$Files = $List.Files

 

$File= Get-ChildItem $FilePath

$metadata = @{}

$Files.Add($DocLib +"/" + $ToPDF + ".pdf",$File.OpenRead(), $metadata, $overWriteExisting)

 

$web.Dispose()

 

del $PDFFile

del $TiffFile

The recent update to our community platform has changed one of the main ways you interact on the site: The "actions" tab.

As part of an ongoing simplification and modernization effort - the way you follow, navigate and select what actions to take are now combined into a single button bar.

 

Overview

This is the overall new look and feel of the button bar. Each section will be covered below in detail....

banner.PNG

 

 

Following

Follow has been moved into a more prominent, first position so users can easily find and click to follow a space, member or thread.

follow.PNG

 

 

Actions

Actions allows you to find the interactions you could easily do within that place - from creating content to sharing it.

actions.PNG

 

 

 

About

The about dialog now gives much easier way to lookup information about the group. It also allows you to easily get to the edit group functionality.

about.PNG

 

 

All existing functionality is there in a cleaner format.

I appear to come across the same scenario time and time again.  A request of some sort is made.  It goes through one or multiple lines of approval.  Whilst it is in the approval process the item is set to read only so that no amendments can be made while it is in review.  Upon final approval, the item/document is updated to reflect the approved/rejected status.  The permissions on the item at that point do not allow for this update.  Or upon approval an item is added to another list that the “initiator” does not have access to contribute to.  So I thought I would discuss the different options that can be used for dealing with permissions inside a workflow:

Set item permissions

This action allows you as the workflow designer to decide to inherit or create unique permissions on the current item on which the workflow is running.  This works well in state machine workflows where the permissions at each state need to change (i.e. the current approver needs the ability to update an item whilst everyone else only has read access).  You can choose to inherit the permissions from the parent or stop inheriting as well as choosing to keep or delete any current item permissions (i.e. when someone needs adding to the permissions at a certain point).

SetItemPermissions.PNG

Pros

I like this action because you can define exactly which roles/people/groups can have access to an item at any given time during the workflow process.

Cons

If a workflow fails for whatever reason the permissions stay at the most recent set item permissions action.

It is difficult to control permissions to lists when the items have item level permissions.

Run as Workflow Owner

The action set action allows us to choose a configuration option of “Run as workflow owner”.  This means that all actions inside the action set container will run under the permissions of the account which published the running workflow.  This is a great workaround when you know that you have God-like permissions to do everything on your farm and don’t want to give any users access to certain lists of libraries.

ActionSet.PNG

Pros

Saves using the Set item permissions action and doesn’t impact on the item level permissions of the item the workflow is running on

Cons

This doesn’t work inside a state machine workflow; only a sequential workflow.  So if you are running a large process that you have designed with a state machine where the final approval means an item update, you cannot access the “Run as workflow owner” checkbox inside action set when it is placed on a state machine branch.

Created By and Modified By are always the same person for all instances of the workflow.  When running as workflow owner the credentials of the person who published the workflow are used.  This means that any items created or updated are effectively done by that person so you cannot quickly see who ran the workflow in the first place (and if you work in a blame culture, you will find people quickly asking you why you updated or modified an item!!).

If the workflow publisher leaves then the credentials and permissions will no longer work.

 

 

Call web service

An alternative way to deal with inserting and updating items without giving the initiator access to do so is to use web service calls which can run as a specified account.  As long as the account the web service is using has the permissions to perform the actions you are asking of it then there are no worries around who the initiator is and what permissions they may have.

Call Web service.PNG

Pros

Do not have to worry about the permissions that the initiator may have to perform the insert or update required.

Cons

A lot trickier to configure to achieve the same result.  I find that the Call web service action quite tiresome (because I don’t use it very often) so have to read up on what services and methods to use and spend a lot of time testing.

Again, if the account that the web service is using becomes locked out or deleted then the workflow will fail.

 

There are a lot of options for dealing with permissions in workflow.  I lean more heavily to the Set item permissions action although it doesn’t sit comfortably with me.  I would be really interested to hear your approaches here so please leave some comments and I may well revisit and update this blog post with your best practices.  

Bingham Blalock posted a very useful blog about Some Common Misperceptions - Q & A

 

In this post he touched upon a principle around the design (or architecture, if you want to try and convince your boss that your should earn an extra 5k a year) or workflows when it comes to changing a workflow whilst it's running.

 

This prompted me to write about the idea of "micro-workflows" (I made that up, lets see if it sticks).

 

Micro-workflows (as defined by me ) are workflows that perform specific tasks within a process.

 

An example of this was an app I developed with an approval process which required a number of conditions to be queried before deciding which route the approval would take. There were a number of other tasks involved in the process as well, and the complexity led me to break the single workflow down into a number of smaller workflows. Not only does this mean I can make changes to a workflow whilst the "process" is running against the item, it makes making changes to the workflows easier and tidier. When you open a large complicated workflow map, especially one designed by someone else, it can be pretty daunting to try and understand where a change may need to be made. It also helps avoid any limitations around Nintex or SharePoint workflow, with regards to the number of nested conditions you may have in a workflow, or the size of the workflow.

 

So my workflow was broken into 8 smaller, more manageable workflows. We'll follow this example as if it were an expenses or hospitality claim.

 

1. Set Item Permissions - This workflow would run as soon as an item was created, it may not get submitted straight away, just saved, but the requirement was that only certain people would see and have access to items created in this list, so Item level permissions were required. Once permissions were set, it would pause and wait for a Status update from the form, which happened when the user hit "Submit" rather than "Save". A few other small actions were run before this workflow started the "Master Workflow".

 

2. Master Workflow - This workflow would run the first couple of major conditions to evaluate which direction the workflow would be sent next. Conditions could be something like the value of the request, or the expenses claim, or the type of client involved in the claim. Once the conditions were met it would start one of the 4 following workflows, but remember this could be any number of

 

3. Workflow Option 1 -  Obviously you would probably look to call your workflow something more obvious that describes the route taken to reach this workflow, such as "> than $50 with a sensitive client". These workflow might evaluate further to ascertain the nature of the submission, is it an expense for food or hosting a team building exercise at paintball? Whatever your business process dictates you need to evaluate before finally deciding who the approval may go to. So a small claim for $10 worth of lunch may go straight to your Line Manager, hosting a client for 3 course meal worth $50 may go to your department or business unit lead or taking the entire team to a conference for a week might go to your Directors. Once all the evaluaions are made, the workflow will start the final workflow to send the approval.

 

4. Workflow Option 2 - As with Option 1

 

5. Workflow Option 3 - As with Option 1

 

6. Workflow Option 4 - As with Option 1

 

7. Send Approval - So having decided who the workflow should be sent this final workflow will actually send the approval task. By passing variables from the previous workflows I can create a single task for all possible outcomes of the conditions that were evaluated in the previous workflow, no repetitive work, so if they decide they want to change the text in the email sent to the approver, I don't have to copy and paste it to all the different branches created in the previous workflow.

 

I found this modular approach to building workflows around complicated business processes, far more manageable than one large workflow. Using Action sets and snippets can also help deal with repetitive work across the numerous workflows.

 

I'd be interested to hear how different folks approach their workflow design before they start building.

In my dealing with customers, there are some questions and confusions that keep coming up. I thought I'd share them to help others who may have the same query's.

 

Why is Nintex Different?

Fully Leverage SP

Nintex Workflow is built natively on SharePoint using pre-existing SharePoint infrastructure and the Windows Workflow Foundation. The benefit is that you leverage your existing architecture and infrastructure and avoid incurring the costs of implementing, serving, and supporting additional platforms.

 

Install in minutes

Nintex Workflow installs in minutes. No need to install clunky or outdated add-ons to client machines as required by some other workflow solutions.

 

Design and deploy quickly

Workflows are designed with no down time. When you create and publish your workflow, Nintex simply picks up the new design when the next instance runs. Unlike options from other vendors who require that every designed workflow must be compiled, packaged, deployed, and activated before they can be used.

 

No code required

Nintex is designed for value and easy adoption by business users. Our renowned industry-leading interface allows immediate creation of workflows for new users while rich and deep functionality extends value for power users. Because developer skills are not required to create Nintex workflows, you have faster deployment, easier updates and modifications, and lower total costs.

 

No additional software or hardware required

There are no requirements for Kerberos installation to work with SharePoint, no additional hardware resources needed, no Silverlight requirements, and no client-side software installation.  

 

Connect and extend with Nintex in the cloud    

Nintex provides a robust set of workflow actions for the applications and tools that can make your workflows drive incredibly enhanced productivity. From updating social sites like Yammer and Twitter, leveraging Dropbox or Box.net, geolocation services, and more, Nintex’s cloud services let you get more work done in the way your teams work.

 

Get mobile

 

Use Nintex forms, tasks, approvals, and more to enable your organization to get more done and keep work flowing on any device, anywhere. The benefit is a more productive organization that can act in real time with the devices they use every day.

 

Take it to the cloud        

Cloud, On Premise, Hybrid – we’ve got that. Nintex has you covered with the most flexible choices for deployment and licensing of your SharePoint and Office 365 environments. The real benefit is that we adapt your choices today for the future.

 

Nintex Misperceptions

Misperception - Integrating with other systems:

Nintex is unable to connect to other systems. For example, SAP.

 

Answer

Nintex supports multiple integration points including web service requests, web requests, multiple queries (SQL, Oracle, XML, OLAP, OLEDB, LDAP, BCS, etc.), CRM integration and BizTalk, and even your own custom solutions. According to our over 5,000 customers and 1,000 partners, the integration found in our products is comparable, in terms of development effort, if not easier to integrate in most cases than alternative workflow solutions.

 

Misperception - Rewinding a Workflow

Nintex is unable to rewind a workflow or retract a workflow action that has already occurred due to error.

 

Answer

Changes mid-workflow are very rare. In the case that there might be a need to ‘re-route’ a workflow due to an error or other concern, Nintex provides powerful error-trapping capabilities within its actions, which you can leverage and build additional workflow logic around to address workflow rewinds and re-routing. This gives you powerful flexibility in managing your workflows.

 

Misperception – Running Long Workflows

As we know, workflows can last years, if Nintex is tied to SharePoint, what are the guarantees that the engine will allow you to run workflows for many years?

 

Answer

Using multiple master workflows and sub-workflows, it’s technically simple to create business process tracking functionality with our start workflow action, and scheduled workflows task. These allow you  to set specific time frames to start or resume your workflow, automatically picking up with the newest design.

 

Misperception – Changing a Workflow as it’s Running

Nintex supports version control, however you can’t change something in a workflow, and have all of the existing running workflows complete with the new version. Instead you would need to terminate the workflow and start it again if you wanted it to use the newest version. Other workflow solutions allow you to pause and change the workflow as it is running.

 

Answer

Changes mid-workflow are very rare. And from an auditing and reporting perspective, if you change the workflow midway through, you’d lose the ability track and baseline results. If, for some reason you are changing workflows continuously in a production environment, Nintex gives you the ability to develop simple business logic where ‘master’ workflows are able to execute other sub-workflows to manage these cases of changing workflow versions mid-workflow.

 

Misperception – Handling Complex Workflows

Nintex uses the SharePoint workflow engine, which is a weak engine and can’t handle complex workflows or heavy loads.

 

Answer

Nintex is an enterprise grade workflow tool. We have nearly 300 of the Fortune 500, and over half the Fortune 50 using Nintex to automate their business processes. Some of our largest customers run upwards of hundreds of thousands of workflows a week. Microsoft has developed a very robust and powerful workflow engine; Nintex enables this workflow for everyone.

 

Nintex utilizes the Windows Workflow Foundation 3.5. As Nintex is a custom solution we expand the capabilities found in the normal workflow engine in SharePoint on-prem so it is not a 1:1 comparison between how Nintex workflow jobs are processed and SharePoint Designer / OOTB workflows. As a provider hosted app in Office 365, all Nintex workflows are processed through the Windows Workflow Manager farm where advanced execution occurs securely between the Workflow Manager farm and Nintex's cloud services in Microsoft Azure.

Hi All,

This is my first blog and I hope it will help the beginners who are working on repeating control

 

Scenario:

List A and List B are two Lists with columns ColumnA,ColumnB in repeating control and depending upon some condition you want to create/modify the item in ListB

Example:

  • List Asia has  columns  "Country" and "City" in the repeating section hence we can add multiple rows for the values "Country" and "City" .List "Asia" also has "Count" column which is not present in the repeating section
  • Suppose we want to update the  item of list named "Events" which will also have "Country" and "City"  in the repeating section with the values of "Country" and "City" in the repeating section of list Asia.
  • List "Events" will also have "Count" column which will be updated with the value of "Count" of the item in List "Asia"

Issue:

Repeating control columns appear blank in the list view by default and if we write a simple workflow to create item in ListB by specifying ColumnA and ColumnB it wont work

Example:

We write a simple workflow to update the item in List "Events" with the values "Country","City" and"Count"  of the item in List Asia then only the value "Count" will appear in List "Events"  values for "Country" and "City" will appear blank when we open the Nintex form in Edit/View mode

 

Solution:

 

    • Create a MultiLine text column of plain type example a column named  "ReadXml" in both lists
    • Open the Nintex form of the boths the lists to edit and Connect "ReadXml" column  to the repeating controls  of both the Lists
    • Now in the workflow to  create/update item in List "Events" specify the value of "ReadXml"of List "Events" equals to "ReadXml"of List "Asia"
    • Data will be updated on modify and create condition and values for "Country" and "City" will appear in the Nintex form in Edit/View mode

Your profile is about to get addictive...

 

The latest update to our community platform gives you a snapshot of your impact on the community.  You now have a graph of your most popular content, your contribution trends, personal reach and an idea of the sentiment of your contributions.  It's on your profile page.

 

Visit your profile (Avatar > View profile) and after you're doing enjoying the new look (covered in: New on Connect: Your Profile ), and click "Insights."

 

insightbanner.PNG

 

Here's an example of what you will see:

PersonalInsights752016v2.4.png

 

Here are the insights:

 

Reach, Impact and Sentiment

The reach, impact and sentiment metrics give you an understanding of your personal reach, your impact on the community based on your content and the kind of sentiment your content has generated. These three metrics combined provides users with excellent visibility into your impact on the community.

 

Social Graph and Profile Type

Personal insights gives you the ability to understand you social graph in terms on interactions that you have had with different people.

Additionally, you get an understanding of your profile type based on your contributions.

 

Personal Impact

The personal impact aspect of the insights page gives you an understanding of how your contributions trended over the past twelve months and the the impact you have made on the community. This graph allows you to understand your monthly contribution trends.

 

Popular Content

Finally, the top content gives you insight to your top 20 content items by Views, Comments Likes or Shares. Click on any of the metrics names to get your top content by the selected metric.

 

If you want to make these metrics change - get involved!  The more you post blogs, as long as they're well-liked by the community, the greater your impact!  The more you comment and earn kudos from community members, the more your impact will be recognized!

The recent update to our community platform means your profile looks new and has new features!

If you do this -  Mission - The Profiler - your profile will look better and be more useful.

Here's what's new and what it means to you:

 

As you can see, there's a lot more information than that.. Take a look at just how much shows up on one page of your profile now.

profilenew.PNG

 

Here's what it used to look like:

profile.PNG

 

Let's go through the new features individually!

BANNER

profilenew.PNG

 

 

You can now add a banner image that can

better communicate who you are.

 

PROFILE HEADER

profilebanneractions.png

This area includes several key items,

including the main user details, profile photo, and actions.

If you complete the Mission - The Profiler,

this information will be conveyed more clearly here.

Your avatar photo is now front and center in your profile.

This will help people recognize who you are in the community,

since the avatar is what they see whenever you create or

interact with content and in streams.

ACTIONS

5_ActionMenu.png

 

 

This is a drop down menu where interactions with the profile

you're viewing can take place from.

You can do things such as communicate via direct message,

or download their user details via vcard.

POINTS

points.PNG

 

 

The ability to see all your points is located near the top

of the banner and is clickable to take you to the leaderboard.

 

LOCATION SETTING

location.PNG

 

 

You also can set your location without editing the profile.

Simply click the input and type in the location and it will

add it for you.

SKILLS/EXPERTISE

skills.png

 

 

This is still able to be viewed and interacted with as it

always has been only now it's in the left side bar.

 

PHOTO AREA
12_RecentImages.png

 

 

Even though the top profile picture is now your avatar,

all your existing photos still exist untouched and are in

a showcase area called recent images.

FEATURED CONTENT
featurecontent.PNG

 

 

 

 

If you want to feature content and help steer other community members

to those items you feel are important, simply click "feature on profile" on the content, and it will show up in the featured content area - the first thing users see on the right side of the profile below the header.

TOP CONTENT

RECENT ACTIVITY

MOST LIKED

TopContent.pngProminently displayed will be the content that is most relevant between you and the person who is viewing your profileRecentActivity.pngThis area is below top content and shows the most relevant activity you've done recently.MostLiked.pngThis shows the top content the user being viewed has liked.

ENDORSE

endorse.PNG

 

 

Did you know you can "endorse" someone for their skills? Navigate to her/his profile page and scroll down. You'll see "skills" and the option to endorse. Click "view all," to see a list of all their skills. Hover, and a blue "+" shows up to add your endorsement to their skill.  If you don't see a skill you'd like to endorse, you can add it by clicking "endorse" and typing in the skill.

When prompting your users to fill in a form, it can be handy to sometimes help them out by filling in some of the information for them. You can do this by default values of course, but sometimes it needs to be more contextual.

 

For one solution I was working on, I had an issues list that I needed our users to populate as and when they encountered a bug, the issues would relate to an item that a workflow was running on, but the issue was being recorded on a separate list.

 

I built a link in the email the workflow would send them, prompting them to raise any bugs they found that looked like the following:

 

http://server/sites/sitename/lists/listname/NewForm.aspx?URL=www.google.co.uk&Status=New

 

Then, with Nintex forms, open your control properties and in the Default Value field add the Inline Function "fn-GetQueryString(URL)".

 

This would produce the following results when set for Site URL column and the Status column in the screenshot below. Obviously, you could do an awful lot more with this.

 

issuelist.PNG

Problem

Often I have workflows with approval (assign flexi task) actions in that usually run the same generic course:

  • On approve, change status, send notification
  • On reject, change status, send notification asking for updates

 

Now I love the out of the box “Common” properties that can be utilised in workflow such as Approver Comments, Current Date etc. but what I think is missing from here is a link to the item in edit mode (if someone knows how to solve this problem more easily please let me know).

 

Often in the reject email the text will say something along the lines of:

 

Your request has been rejected for the following reasons:

{Common:LastApproverComments}

Please address the issues and resubmit using the link below:

Edit item URL

 

Solution

I was pointed to this awesome article by a colleague that describes the different page types available in SharePoint – this might be old news to many but having just discovered it I am now obsessed

https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.pagetype.aspx

 

So using this and the built in common properties in Nintex Workflow I am able to set a variable value at the beginning of my workflows to build the URL for the current item to open in the edit page:

BuildStringEditItemUrl.PNG

 

I can now use this variable vTextEditItemUrl in my rejection emails to allow the user to open the item directly in edit mode and resubmit without any additional clicks in the ribbon.  Also because we are using the common variables we can be certain that whichever environment this is deployed to it will build the URL correctly as there is no hard coding to change before publishing.

 

This may be of no use to anyone but me, but anything I find I like to keep safe here in the Nintex Community for the next time I need it.  If it helps anyone else then that is a bonus

 

Enjoy!

Filter Blog

By date: By tag: