My videos @ Collab365 Community

This is just a quick note to let you guys know about the launch of Collab365 Community, an amazing community where you can fine Over 500 hours of Office 365, SharePoint and Azure videos.

I’d also like to invite you to my profile there where I have 3 recorded sessions from SPBiz, SP24 and Collab365 conferences.


You can visit my profile from :

Stay tuned!


“Internet of Things”, simplified!

I have been asked about “The Internet of Things” several times lately, especially by Engineering Students who are currently preparing for their next graduation projects. I thought of posting my answer here (along with some useful resources) publicly so that everyone can benefit from it. My aim is to keep my answer as simple as possible while using it to help you understand some of the jargons & buzzwords that you have been hearing lately (Cloud Computing, Big Data, Wearables, etc…) by tying everything together in the context of “Internet of Things”.

Rather than giving you a scientific definition for “Internet of Things” or “IoT”, I want you spend a few moments counting the number of internet-connected Objects that you currently have. Your PC? Your smartphone? Your tablet? Your iPod media player? Your XBOX gaming console? Maybe your smart watch? Your fitness gadget? Your smart TV? Your home sensors? Your Car? Ok you got it, the world is moving beyond standalone devices into a new era where everything is internet-connected. That’s exactly what is meant by “The internet of things”.

Now compare the number you concluded from the first exercise with the number of internet-connected objects you had a decade ago! The chart below says it all.

In 2004, PCs were the only internet-connected objects. What about now (2014)? Looks like smartphones are even surpassing PCs? Still wondering why Facebook acquired WhatsApp?

Analysts are expecting that by 2020, there will be around 50 Billion objects connected to the Internet. This means that for every person living on our planet, there will be 6.6 internet-connected objects. Sounds huge but we are almost there. For me, I have a PC, a laptop, a tablet, 2 smartphones, a smart TV, a Fitbit, a gaming console (XBOX) and I’m planning to buy a Google Glass once it’s officially released in my region. Oh, I already have eight internet-connected objects and I know a few people who are lucky enough to have more!

World will be full of sensors everywhere that is monitoring everything around you and uploading them to the cloud. The world will transform as you walk through because technology that you may not be aware of is monitoring your moves. It’s a world that is constantly changing around us due to these sensors.

Let me give you a few examples:

  • When you wake up in the morning, your smart watch advises you about the best route and how long it would take to go to work based on the traffic conditions.
  • Based on your blood pressure, music changes in your room to match your mood.
  • In case of any smoke or Carbon monoxide detected at your home, you receive an audio alert on your phone (or watch)
  • When it’s time for a video conference, music stops and lighting increases in your room.
  • When you walk into home, temperature changes based on your temperature changing habits in the four seasons.
  • Based on your activity & the calories burnt, your smart refrigerator will recommend the suitable meal (based on what already exists inside it).
  • Based on your mood, social media interactions and your personal calendar, your smart TV recommends a movie for you to watch in a free slot in the evening.

Again, software will anticipate what you want before you even know you want it and it will give you recommendations or even take actions. The examples above are simple ones & some of them are even available now.

For example, With Google NOW & the available wearable gadgets like Samsung Galaxy Gear or Google Glass, the first scenario is already available. Also, With Nest Learning Thermostat (Acquired by Google in Jan 2014 for $3.2 Billions), the 3rd and 5th scenarios can be easily setup @ your home.

Now, think about it, what enables the “Internet of Things” scenarios?

  • Software to run the objects?
  • Cloud Computing?
  • Social Media?
  • Big Data?

I’ll explain those terms in the context of “Internet of Things” in the next post. But before I leave you, I would like you to take a deep look at a very useful research conduct by Business Insider. Feel free to reach out to me on Twitter in case you have any questions.



Resetting Nintex Forms Repeating Sections

Have you ever found yourself in a situation where you needed to reset a Nintex Forms Repeating Section? I’m sure you’ve tried to reset different columns from within your Nintex Workflows and It’s actually easy to reset any type of fields like Yes/No, Single Line of Text, etc.. But what about the Repeating Sections?

First of all, why would you need to do so?

In my case, I had two lists; one for the orders and the other is for the order details. I’ve created a 1:Many relationship between both lists.

In my case, I wanted to use a Repeating Section only as a way for inputting data into another list (a Nintex Workflow on the parent list is being used here to parse the repeating section and create the child items in the second list.). I wanted this Repeating Section to always be empty and ready for data input. Unfortunately, this was not straightforward due to the fact that the Repeating Section data is always stored as XML either in a list column if the repeating section is connected or in a hidden field called “Form Data” if the repeating section is not connected.

What if you want to remove the data altogether from the repeating section after the form is submitted? Theoretically speaking, here is what you need to do:

As the figure suggests, you need to strip out all the node values and keep only one row in the repeating section. You will end up with something like the below:

You can definitely use the “Update XML” action to do the trick … Or you can use my custom action from here.

Here is how you can configure the custom action:

The good news is that the action is smart enough to detect whether the selected repeating section is connected to a column or not .. and it works in both cases.

Give it a try and let me know your feedback!

Note: The action has been tested only on SharePoint 2013.

The Visual Studio Post Deployment Script For Nintex Workflows & Forms

Application Lifecycle Management (ALM) has always been a problem for those who create SharePoint Solutions and need to include the Nintex Workflows & Forms within their final packages. The traditional way of doing it was deploying WSPs and then moving the different Workflows & Forms by exporting them from the Dev environments and importing them to the target ones (Testing, Staging, UAT, Prod, etc…). I’ve also seen some developers using the SDK to create features that take care of deploying & publishing the different Nintex artifacts.


I’ve explained how to automate the full process (like the above figure” along with the way to apply the Continuous Integration & Continuous Deployment concepts during my InspireX session “Application Lifecycle Management for Nintex Solutions” and right after the session, I received a lot of requests to start sharing the scripts.

This post is the first of a series and is going to deal with the first step towards Application Lifecycle Management for Nintex which is setting up your development environment. The goal of the post is to provide you with a way to manage your Nintex assets in Team Foundation Server so that any developer in the team can get the latest work from Team Foundation Server, click deploy and BOOOM, all the SharePoint & Nintex artifacts get deployed and published.

Here are the steps:

1) Download the scripts from Nintex Connect. I’ve also added the SharePoint Project so you can quickly test the whole thing.

2) In the Visual Studio SharePoint Project, create a new folder and name it “NintexArtifacts“.


3) Create a subfolder in the “Nintex Artifacts” folder for each list where you would like to publish the Workflows & Forms. Make sure to name the subfolders after the list instances.


4) In the Post-deployment Command Line, call the VisualStudioPostDeploymentScriptForNintex.ps1 . The script expects two parameters:

– Project Folder Location (projectFolderLocation)

– Site Collection URL (devSiteColUrl)

Here is what you should add in Visual Studio:

%windir%\sysnative\windowspowershell\v1.0\powershell -file “C:\DevScripts\Scripts\VisualStudioPostDeploymentScriptForNintex.ps1” -projectFolderLocation “$(ProjectDir)”” -devSiteColUrl “$(SharePointSiteUrl)”


If you’re wondering why we are using “%windir%\sysnative\windowspowershell\v1.0\powershell” rather than directly calling the script, it’s due to the fact that SharePoint is 64bit and Visual Studio is still 32bit. This means that Visual Studio will by default call the 32bit version of PowerShell resulting in errors. That’s why we, instead, need to instruct Visual Studio to load the 64bit PowerShell by referencing “%windir%\sysnative\windowspowershell\v1.0\powershell”.

5) Once you click “Deploy”, here is what you should see in the Output Windows:


6) Once deployment is done, open your list and check whether the Workflows & Forms have been successfully published!!

Give it a shot and let me know if you have any questions!

Speaking at InspireX, Las Vegas, Feb 22-24, 2016

InspireX has been finally announced and I’m super excited to be part of it and even to be selected to speak there!


So, What is InspireX?
InspireX is a great chance to connect, interact and learn from a community of Nintex and Drawloop customers, partners and employees to help you solve workflow challenges, and maximize the value of your solutions. It’s also a chance for you to hear inspiring keynotes from Nintex CEO John Burton and renowned futurist Mike Walsh.

And what are you speaking about?
Well, I was so lucky to have my both submissions accepted, here is a little bit of information on them:

Application Lifecycle Management for Nintex Solutions
Monday, February 22, 2016 – 1-2:30 pm
Are you facing difficulties deploying Nintex solutions between your different environments—Dev, Test, Staging and Production? Over several demos, we’ll help you extend the Application Lifecycle Management (ALM) techniques for SharePoint to support and deploy Nintex solutions – including the process to create Custom Actions in C#. We’ll also cover how to get started with automating the build and packaging of Nintex workflow and forms along with your SharePoint artifacts in WSPs, deploying the resulting packages to Virtual Testing labs, then automatically running automated tests against the solutions.

Getting the Most Out of the Nintex Repeating Section
Monday, February 22, 2016 – 3-4:30 pm
Repeating sections are very cool and powerful if you want to create 1: many relationships within your Nintex forms. However, they come with some difficulties when parsing, using and displaying the records stored within them. This session introduces you to best practices for using the Repeating Section Control and introduces you to powerful and easy-touse third-party solutions that were created by the Nintex community to enrich and simplify working with them.

Do you have a Conference Agenda?

Monday, February 22, 2016
 1:00 PM – 5:00 PM
Pre-Conference Workshop: Nintex Workflow Platform Jumpstart
5:00 PM – 7:00 PM
Welcome Reception
Tuesday, February 23, 2016
 9:00 AM – 10:30 AM
Welcome and Nintex Keynote
10:30 AM – 6:00 PM
Sessions, lunch and breaks
Wednesday, February 24, 2016
 9:00 AM – 10:00 AM
Guest Keynote
10:00 AM – 5:15 PM
Sessions, lunch, breaks
6:30 PM – 10:00 PM
Attendee Party
How can I register?
Just click here
Download detailed session information and agenda here.

COLLAB 365 : Slides & Recordings!

Collab365 was a big hit and I’m really glad I was part of it. For all those who asked, the whole event is now available on demand. I’ve included in this post links to my session recording and slides.. As always, your feedback is very appreciated.

Light Up Your Office 365 Intranet with 10 Cool Add-ins


Video :

Collab365 Global Conference – Agenda

This is just a quick note to let you know that the agenda of Collab365 has been announced. You can check it out from here.


Here is my session information:

Title: Light Up Your Office 365 Intranet with 10 Cool Apps
Date & Time : 10/8/2015, 9:00:00 AM (Dubai Time)

Description: SharePoint is the intranet platform of choice and one of the most commonly-used tools of organizations. Users uses Intranets to find the information they need to perform their day-to-day functions, from HR to Help Desk Wikis to Travel Request forms, and much more. Attend this session to discover 10 cool SharePoint / Office 365 apps (Add-ins) that can be used to boost team & personal productivity, help your workforce cut back on meetings and email chains and get the different teams within the organization to work together in flexible and collaborative workspaces to get things done wherever, whenever.

If you haven’t already secured your free place – hurry on over to the Registration Page so that you don’t miss out! By registering you can also enter the Registration Raffle and win a Surface, Fit Band or one of many others prizes!

[Nintex Forms] Announcing The “Nintex Repeating Section Data” Field Type for SharePoint 2010

A few days ago, I released a custom field type called “Nintex Repeating Section Data” for SharePoint 2013 to simplify how you can display of the repeating sections in SharePoint List Views without the need of creating complex workflows. If you haven’t checked that yet, please refer to my blog post.



After the amazing feedback I received from the Nintex Connect Community as well as Nintex fans on Twitter, I’m glad to announce the availability of the same for SharePoint 2010. You can download the WSP from here.

Let me give you a more complex example than the one I showed you in the previous post:

1) Here is the 2010 form I designed. I have two repeating sections, the first one is named “RepeatingSection1” and contains a Choice control rendered as a drop down list and a Yes/No control. The second repeating section is named “RepeatingSection2” and contains a Multi Line Textbox control as well as a Date/Time Control.


2) After publishing my form, I created two list columns from the type “Nintex Repeating Section Data“. The first column refers to “RepeatingSection1” and the second one refers to “RepeatingSection2“. I’ve also added both columns to the default view.



3) And here is the default view with both repeating sections rendered in tables. Nice and easy!


I’ve also received a couple of questions from the community on how the repeating section is rendered and the ways to customize it, I’ve already answered the question in several places but I would like to include this here as well.

If you want to further customize how the repeating section is rendered, the WSP creates a new folder under Layouts called “NintexRepeatingSectionView“, this folder contains two files:

–  GetRepeatingSections.js –> This is the file which is referred to from custom field type XSLT.  It does all the heavy lifting like querying the FormData hidden field, reading its XML to retrieve the referenced repeating section, parsing its XML and extracting its records. It is also responsible for rendering the values in a table.

–  NintexRepeatingSection.css –> This is the css file used within GetRepeationSections.js to style the table.

The idea is the same for both SharePoint 2010 & SharePoint 2013.

Download WSP from here


  • The “Nintex Repeating Section Data” Field Type for SharePoint 2010 was created in my free time and is NOT a Nintex product. If you have any feedback, please feel free to post it here or ping me on Twitter @AymanElHattab
  • You can create as many columns based on the new custom field type as needed. For instance, If you have 3 repeating sections (Flights, Hotels and Events) in your travel request form, you can create 3 columns to display the repeating sections’ records in your View. Just make sure NOT to connect your Repeating Sections to list columns.
  • IE7+, Chrome (Latest) and Firefox (Latest) are supported for the SharePoint 2010 version of the solution.
  • Nested Repeating Sections are not supported (yet).

Speaking @ Collab365 Global Conference

I’m very glad to announce that I will be speaking at the Collab365 Online Global Conference taking place on (Oct 7th/8th).

24 Hours of Office 365, SharePoint, Azure and more!! This is the event for 2015 if you want to gain in depth insights from experts all over the globe. Whether its the technology that you want to learn about, the applications or the implications of using Office 365, SharePoint or Azure, it’s the right event where you will find answers. Here are just some of the speakers who we have been able to fast track into the line-up.


My session will be around Office 365 Apps but the session details will be announced in 1 week. Stay tuned 🙂

[Nintex Forms] Displaying Nintex Repeating Section Data in List Views, The Easy Way!


Repeating sections are very powerful if you want to create 1 to many relationships within your Nintex Forms. However, they come with some caveats when you need to parse, use and display the data stored within them. This blog post introduces you to the Repeating Section Control, explains the parsing issue in depth and explains some existing solutions that was created earlier by the Nintex community. At the end of the post, I will introduce you to a Custom Field Type that I created to help non-technical users quickly display the Repeating Sections Data in List Views without creating Workflows or getting their hands dirty with XML, XSLT or Java script.

So, what is the repeating section control?


The repeating section control is basically a container, which means that any controls added in the repeating section in the design time will be replicated in the runtime when the end-user clicks to add a new row. The end-user can also click the “x” icon to remove rows. Using Repeating Sections in Nintex Forms, you can create dynamic forms allowing the end users filling out the form to enter multiple values for a single field on a form. This is useful when you are collecting data and you do not exactly know in the design time how many records need to be collected each time the form is filled out.



With the Repeating Section control, you can achieve a 1 to many relationship within your forms. Here are some examples:

  • Multiple products within the same order.
  • Multiple destinations, flights and hotels within the same travel request.
  • Multiple days off (with different types) within the same leave request.

The Problem

Despite how useful and cool the control is, there is no way OOB to parse the repeating section data if you need to do something with it. Why would you do that? Here are some scenarios / use cases:

  1. Interacting with the repeating section data from a Workflow.
  2. Saving the Repeating section data in another list and hence creating a Master-Detail or a Parent-Child relationship between two lists.
  3. Displaying the repeating section data in SharePoint List Views.

Basically, when an end-user fills out a form and submits it to the underlying list, an XML representation of the entire form is saved in a hidden field called “FormData”. If we have a repeating section within the form, its data is also XML serialized and stored within this hidden field.  If you need this data for one or more of the three scenarios above, you need to retrieve the value of this hidden field then query the XML to parse the repeating section data. Osama Mourad has written a very useful post around that, you can check it from here.

The Solution

Luckily, Vadim Tabakman wrote a very good post documenting a workaround he came up with to simplify the steps above. Basically, he created a UDA (User Defined Action) to extract the XML of the repeating section from the FormData field then he used the “Loop” workflow action to loop through each record in the repeating section using an incremental index. Using Vadim’s workaround, you can read the records the end-user filled in the Repeating Section and interact with them within the workflow.

What if you want to save this data to another list and hence create a Master-Detail relationship between two lists? Eric Harris has used Vadim’s workaround, added his magic and showed us in an excellent blog post how to do that.

What Vadim and Eric have done is all based on Nintex Workflows. What if you don’t have the Nintex Workflow Product? What if you just need to display the repeating section data in List Views and you don’t want to create a Workflow just for that? Enter The “Nintex Repeating Section Data” Field Type.

“Nintex Repeating Section Data” Field Type

The “Nintex Repeating Section Data” is a custom field type that I created in my free time to easily display the records of a repeating section in SharePoint List Views without the need of creating complex workflows. After you create your Nintex Form using the standard best practices for repeating sections, you only need to create a Column of type “Nintex Repeating Section Data”, enter the name of the Repeating Section you want to display in the field creation page, add it to any view and BOOM … The repeating section data is displayed in a neat table! All the heavy lifting is taken care of for you. Below are a few screenshots to help you understand the idea:

Here is the “Orders” list :


And here is the Ninext Form, it contains a Repeating Section called “Products”, note that I’m not connecting the repeating section to a column.


Now, I’ll create a Column of the new type “Nintex Repeating Section Data”. In the additional column settings, I will put in the name of the Repeating Section in the form.


Once the column is added to the view, here is what you are going to get :


Pretty cool, eh?

You can download the WSP for SharePoint 2013 from here. The SharePoint 2010 one will be released soon.
[[Update – 13 Aug 2015]] The 2010 version has been released. You can download it from here.


  • The “Nintex Repeating Section Data” Field Type was created in my free time and is NOT a Nintex product. If you have any feedback, please feel free to post it here or directly contact me.
  • You can create as many columns based on the new custom field type as needed. For instance, If you have 3 repeating sections (Flights, Hotels and Events) in your travel request form, you can create 3 columns to display the repeating sections’ records in your View.
  • IE7+, Chrome (Latest) and Firefox (Latest) are supported.
  • Nested Repeating Sections are not supported (as of now).
  • If you decide to use this solution, do NOT connect your Repeating Sections to extra columns. You don’t have to!

Quick-Hit Technology Thoughts from a Territory Manager @ Nintex, Microsoft Regional Director and 6x Microsoft MVP