What is SharePoint

We are done from uploading the last UAE Sharepoint User Group Session done by me explaining SharePoint as a basic concept.

 

What is SharePoint video
Posted in General | Tagged | 2 Comments

What is SharePoint Online session by UAE SharePoint User Group (English Version)

Do you want to know what is SharePoint as a concept? Do you want to switch your career to SharePoint? Do you want to scratch the surface? You should not miss “UAE SharePoint User Group” Online session today!

Title: What’s SharePoint?

Time: Apr 17, 2013 7:30 PM GST

Speaker: Jamil Haddadin, SharePoint Consultant, MCPD, MCT

Register Link: https://attendee.gotowebinar.com/register/673302787518395648

Promotion Slide: attached

Webcast language: English

Description:

What is SharePoint? Is it a web site?! Is it an online collaboration tool?! Is it a project management software?! Is it a business intelligence tool?! Then what is SharePoint in real?

SharePoint is a business collaboration platform that can be customized to fit the business’ needs.

Microsoft has been updating the SharePoint versions over the years to enhance its functionality and features, the latest vision is SharePoint 2013.

Are You an IT Student, an ASP.NET Developer, A SharePoint User, Software Project Manager…? And do you want to know what SharePoint is?

You are mostly welcomed to join the online webcast

Posted in Announcements | Tagged , , | Leave a comment

What is SharePoint Online session by UAE SharePoint User Group

Do you want to know what is SharePoint as a concept? Do you want to switch your career to SharePoint? Do you want to scratch the surface? You should not miss “UAE SharePoint User Group” Online session today!

Title: What’s SharePoint?

Time: Apr 3, 2013 6:00 PM GST

Speaker: Jamil Haddadin, SharePoint Consultant, MCPD, MCT

Register Link: https://attendee.gotowebinar.com/register/4282796051570745088

Promotion Slide: attached

Webcast language: Arabic

Description:

What is SharePoint? Is it a web site?! Is it an online collaboration tool?! Is it a project management software?! Is it a business intelligence tool?! Then what is SharePoint in real?

SharePoint is a business collaboration platform that can be customized to fit the business’ needs.

Microsoft has been updating the SharePoint versions over the years to enhance its functionality and features, the latest vision is SharePoint 2013.

Are You an IT Student, an ASP.NET Developer, A SharePoint User, Software Project Manager…? And do you want to know what SharePoint is?

You are mostly welcomed to join the online webcast

Posted in Announcements | Tagged , , , , , , | Leave a comment

SharePoint 2013 Sessions Series

UAE SharePoint user group is conducting 4 free online sessions covering new bits in SharePoint 2013 for IT pros and developers topic by Jamil haddadin and Muawiyah shannaq, our first delivery session will be on Wednesday 27-Feb-2013 at 08:30PM(UTC+04:00) which will cover “SharePoint 2013 – What’s new“; expected audience will be IT Pros and developers.

You are mostly welcomed to join the online webinar on (https://attendee.gotowebinar.com/register/7897825356268042496)

Looking forward to meeting you!

*Spoken language is Arabic. English sessions will be provided after completing this series.

Posted in Announcements | Tagged , | 2 Comments

SharePoint 2010 interview questions

I have been asked about SharePoint 2010 interview’s questions several times, these questions are suitable for both Junior and senior level SharePoint developers; measuring the knowledge level should be on how deep you go in discussing the answers.

These questions are categorized into Administration, Branding & Development since I believe that good developer should have fair understanding of several SharePoint administration topics in addition to full understanding of SharePoint Branding structure.

This interview should be done by somebody who has a deep SharePoint knowledge, the questions here should be handled as a starting point for discussion rather then regular Q/A interview; this interview should take 20 to 40 minutes.

  Question Category
1

What is SharePoint foundation, SharePoint server?

Administration
2

What are Site collection, web application, IIS virtual directories?

Administration
3

What is Document library, what is a list?

Administration
4

How can i do backup/migrate in SharePoint

Administration
5

What types of authentication that are supported by SharePoint?

Administration
6

What are site users, groups, and permission sets?

Administration
7

How many master pages in the site collection?

Branding
8

What is SharePoint master page structured? (In terms of content place holders & Controls)

Branding
9

What are the navigation options in the master page?

Branding
10

Where is the CSS file in SharePoint, Images? What is the best practice?

Branding
11

How can I override an internal CSS style?

Branding
12

What are page layouts ( what are publishing controls)

Branding
13

How do you develop webparts? How can you expose Webpart’s property?

Development
14

What is application page? Content page?

Development
15

What is the feature? (feature.xml)

Development
16

What is SharePoint solution (WSP)?

Development
17

Event Receiver?

Development
18

What is site definition?

Development
19

What is list definition ?

Development
20

What is content types?

Development
21

What are SharePoint workflows?

Development
22

What considerations should taken when developing SPWeb SPSite? (Disposal)

Development
23

What is BDC? (BCS)

Development
24

What is the CAML, How do you get an item from List?

Development
25

How can we open a pop up in sharepoint 2010 using client object framework

Development
26

How do you add JQuery support to SharePoint site?

Development
27

What is the GAC?

Development
28

What is the different between GAC deployment and bin deployment.

Development
29

Do you know SharePoint guidance? (SharePoint SPG)

Development
Posted in General | Tagged | 3 Comments

Implementing Workflow using InfoPath 2010 and SharePoint designer 2010

Introduction:
After writing Gathering requirements for business automation (workflow) article; where I tried to explain in details how to gather requirements from business users in a way that facilitate sofware implementation process, the previous article was generic and can be applied on any technology platform.

In this article, I will discuss how to convert this requirements into a real implementation utilizing SharePoint Server 2010, Microsoft InfoPath 2010, SharePoint designer 2010, this solution is done with out of the box features available in those applications without the need to write any line of code.

This article needs 75 minutes to fully read, understand and practice.


Technologies and Environment Preparations:
I did my demonstration using the following environment:
    Windows 7 Standard edition (64-bit)
    SharePoint Server 2010 ( you need this to render InfoPath forms on the browser )
    Microsoft InfoPath 2010.
    SharePoint Designer 2010.
    Active directory ( or may be local windows users ) that contains 3 already create user accounts.
    Already configured SMTP server ( required to test your emails, can be ignored if you don’t want to check on emails )


Assumptions:  
   Users who read this should have fairly good knowledge in SharePoint 2010 ( as administrator or end user, not developer), basic knowledge in SharePoint designer 2010 and Microsoft InfoPath 2010 (or 2007).
   I recorded 7 videos and added them before that starting of each section, so you can either read the section or quickly go through the videos.


Plan: 
1.    Prepare the needed components
       1.1   Create Site Collection
       1.2  Activate SharePoint Server Enterprise Site Collection Features.
       1.3  Create the needed users
2.    Build the leave requests SharePoint list
3.    Build InfoPath form
       3.1  Create the needed controls and views
       3.2  Disable enable controls according to current state
      3.3  Validation and submitting the leave request
4.    Build SharePoint designer workflow
       4.1 Building the logic
      4.2 Adding tasks assignment, email notifications and History


Solution: 
As you will see from the plan, I will not go through the business case which is the Leave Request business process as every thing was detailed in the previous blog, so I recommend to spend 5 minutes and go through it before starting the technical implementation.

Back

1. Prepare the needed components
Steps 1.1, 1.2 & 1.3 are illustrated on this video:

1. Prepare the needed components

Back

1.1 Create Site Collection.
– Go to Central Administration  || Application Management || Create site Collection || Fill parameters as shown in the table below || click OK

Title E-Services
URL: EServices
Template Blank Site
Primary Administrator <Any valid administrator user >

image

Back

1.2 Activate SharePoint Server Enterprise Site Collection Features.
– Log in to your newly created site collection || Site Actions || Site Settings || (under Site Collection Administration) Site Collection Features || (Next to SharePoint Server Enterprise Site Collection Features) click Activate
image
Back

1.3 Create the needed users:
As mentioned the in Technologies and Environment preparation section, it is required to have 3 users who are going to play the roles of Employee, Team Leader and Human resources, so now we will add them to E-Services members SharePoint Group
– Log in to you newly created site collection || Site Actions || Site settings || (under Users and Permissions ) people and groups || (Make sure that E-Services Members group is selected under Groups)
image

– Click on New || Fill the parameters as shown in the bellow table || click OK

Users/Groups Your Test Users
Send welcome e-mail to the new users Optionally check ( to test email settings )

image

– Do the same for the 3 users, Employee, Team leader and Human resource.

Back

2. Build the leave requests SharePoint list.
Step 2 is illustrated on this video:

Create the leave request SharePoint List

– (in SharePoint main navigation ) Go to Home || (On Quick launch) Lists || Create || (optionally type Custom in search box) Click on Custom List || (in List Name text box) Type  Leave Requests Container || Click Create.
image

Now we will go to the Title Field in this list and change it “not required” since we will not use it in our case, so let us go…
– Go to (in SharePoint ribbon) List Tab || List Settings || (Under Columns Group ) Click on Title || Check No option under Required that this column contains information ||  Under Default Value type Leave Request. || Click OK
image

Then we will create all the needed columns… let us go!
(On Quick launch) Click Leave Request Container || go to (in list ribbon) List tab || Click on Create Column.
image
Create 6 new columns with the following specifications:

Column Name Type Description Required Default value List of values
From Date and Time First day of the leave request. No Today
To Date and Time Last day of the leave request. No Today
Team Leader People and Group This user will be the first approver No
Human Resources People and Group This user will be the second approver No
Employee Comments Multiple lines of text Reason of the leave request No
Team Leader Comments Multiple lines of text Team leader comments No
Human Resources comment Multiple lines of text Human resource comments No
Action Choice This field will be set in the infopath form and will be sent to workflow as an input of the current action ( business process should not change this field at all ) No Clear it SE, AT, RT, AH, RH
State Choice This field will be controlled by Workflow business process and will be used by infopath to determine the current view ( infopath should not change this field at all ) No Clear it WT, WH, DN

Note the following:
    As you will see later on this tutorial; The only way of communication between InfoPath and SharePoint designer workflow is through list fields, so you must create a field for any value that will be needed in the SharePoint designer, for example we will send and email to Team leader, so I added a fields called Team Leader so I will get his email in SharePoint designer from the Team Leader Column.
    I am using abbreviation for actions; SE is Submitted by employee, AT is Approve by Team Leader, RT is Reject by Team Leader, AH is Approve by Human Resources and RH is Reject by Human Resources.
    I am using abbreviations for States; WT is Waiting Team Leader, WH is Waiting Human Resources and DN is Done (when the workflow is done )
Back
3. Build InfoPath form.
Now, we will build the interface that will be used by users to work on this business process by submitting data, approving & rejecting. please note the following before you start:
    For each activity in workflow discussed in previous article; we need a particular form with a specific set of controls; these controls needs to be shown, hidden, disabled and enabled ( this will be achieved by using Views feature in InfoPath )
    As a result of the previous point, we will always load the proper view according to the current state & – sometimes – current logged in user.
    At any moment, workflow is expecting an action from a specific user, so we should pay attention that the user is accessing the form in the right time.
    (for developers ) If we think in N-Tiers architecture way; InfoPath represents the presentation layer.

Back

3.1 Create the needed controls and views

Step 3.1 s illustrated on this video:

Create the needed controls and views

– (on quick launch) click on Leave Request Container || (in the SharePoint ribbon) List Tab || Customize Forms:
Note: If you are not seeing this option ( Customize forms ) please go to step 1.2 Activate SharePoint Server Enterprise Site Collection Features.
image

This will open InfoPath form for you: (you may need to enter username and password, so use the site collection administrator’s user)
image

This form is the default Edit form on this list, we will use this form as an initial form to customize the coming newly created forms ( Actually we call them Views )

– Remove the following fields from the diagram:

Field Name Why we remove?
Title We don’t need it on this case, we may consider having some default value for this field as we did ( like Leave Request )
Attachment In our case there is no need for attachments, but –for example- if you are working on a sick leave business case; it would be nice to have attachment for users to place there medical reports as attachment.
Action Action will be sent behind the since when Approve & Rejected buttons are clicked
State State will be managed through SharePoint designer workflow so you will not set it from the InfoPath at all.

So your from will look like this:
image

– Go to (on InfoPath ribbon) Page Design Tab || (In Views buttons’ group) New View
image
– Create new 5 views as the following ( for more details review the video on the top of this section ):

View Name Description ( for explanation )
EmployeeView View that will be seen by employee
TeamLeaderView View that will be seen by Team Leader
HumanResouceView View that will be seen by Human Resources
AccessDeniedView View that will be seen by any user who tries to enter the form while he is not suppose to ( i.e. Employee tries to enter the form if the leave is waiting Team Leader action )

Now; you need to start filling the views with controls:
– To Copy all the content from Edit view to all other views; Go to ( in InfoPath ribbon ) Page Design Tab || (under Views Group) Select Edit item (default) view || CTRL+A || CTRL+C
image

– Paste the selected controls into EmployeeView. then add a title for this form “Welcome Employee”, then remove Team Leader Comments & Human Resources comments.

– Now;place the cursor at the bottom of the form, then Go to (in InfoPath ribbon) Home Tab || (under Controls group ) Select Button to add two buttons || right click on the first button || select Button properties || Type Submit on the label field || do the same for the second button and name it Cancel. so you form will look like this:
image

– Do the same for TeamLeaderView and HumanResoucesView (Considering keeping the comments if needed)so that they will look like:
TeamLeaderView:
image

HumanResoucesView:
image

Finally, we will have access denied view which will look like:
image

At this moment; we have all the possible views; now we need to tell Infopath which view to show at the right time.. so the logic will be as the following:

ViewName When to show
Employeeview if State is blank ( in creating new item )
TeamLeaderView if State is WT ( Waiting Team leader actions)
HumanResoucesView if state is WH ( waiting Human Resources actions)
Access denied To manage unauthorized access; if the (State is WT and current User is not the selected Team leader) or ( when State is WH and the current user is not the selected Human resources )

So how we need to implement this.. let us go…
– Go to (In InfoPath ribbon) Data Tab || (under Rules group) Click on Form Load || (on the right side ) Click on New || Action || In Details for: Type ShowEmployeeview|| Set the Condition: as described in the above table (State is Blank), Click on Add || Switch views ||  and set the proper view in the actions ( for more information review the video at the beginning of this section ) So you will have something like the following:
image

– Do the same for the rest of the views ( see the video from more information ) so you will got something like the following:
image

Setting employee, Team leader and human resources views are relatively easy; you man need to watch the video for Access Denied view

Notes:
    AccountId for people picker returns a string on the following format “DomainName\UserName” but UserName() function on the InfoPath build-in functions returns a string on the following format “UserName” so when checking on the current user; you need to compare using like this AccountId == concat(“DomainName\”,UserName()).
    The right way of handling the access denied is using SharePoint SPItem event receivers, so that you need to manage the permissions on the list item through SharePoint object model ( item added & item updated events) but this is out of the scope of this document as everything should be done out of the box without any line of code.
    Selecting Team leader and Human resources by the employee is not common case, most likely you will have those values stored in SQL or Oracle database or may be in some SharePoint list or in Active Directory structure, you can connect to these sources using InfoPath receiver connections and filling them on the Form load rules, but I did not implement this because internet is full of articles talking about this subject. check this example – getting user information and set people selector value for more information about this.
Here! it is good idea to publish the form and test it ( the view should show employee view not the default edit item view )

Back
3.2 Disable enable controls according to current state.

Step 3.2 is illustrated on this video:

Disable Enable controls according to current state

As we may know, and according to the analysis in the previous article, some of the controls should be editable and others should be read only, so this part of this article will discuss how can we achieve that using InfoPath forms.
We have two options to disable/enable controls on the page:
Control properties: there is a property available from some controls ( like text box ) which called read only, so we can use it to make the fields read only
Control Rule – Formatting: We can apply some conditional formatting rule on the control ( disable the control if some condition is applied )
we need to modify the views to achieve the following:

Field Name Employee Team Leader Human Resouces
From Edit Read Only Read Only
To Edit Read Only Read Only
Team Leader Edit Read Only Read Only
Human Resource Edit Read Only Read Only
Employee Comments Edit Read Only Read Only
Team Leader Comments Not visible Edit Read Only
Human Resources Comments Not visible Read Only Edit

– Go TeamLeaderView || Select (One Click on) From Field || (on the right side under the Rules pane) Click on New || Formatting
image

Add the following to the rule:

Details for DisableFromDate
Condition State=”WT”
Disable This Control Checked

So you will have something similar to (this screenshot is for Human Resources view! )
image

– Do the same for the other fields mentioned in the table above ( check the video for more details )

Back

3.3 Validating and submitting the leave request.

Step 3.3 is illustrated on this video:

Validating and submitting the leave request

Now we will move the final step of developing the InfoPath form before going through the SharePoint designer details,

There are two types of validation that can be achieved in InfoPath:
1- Simple Validation: like required, or date should be on specific format …etc., From field in the EmployeeView is a good candidate for such validation
2- Complex validation: this is the validation that depends on some business like the comments of team leader is required only if the decision is rejection.

so let us start by the simple one:
– Go to EmployeeView || right click on From Control || Date Picker Properties || (under Data Tab under validation group) check Cannot be blank.
– Do the same To, Team Leader, Human Resources & Employee Comments ( check video for more details )

Complex validation will be handled on submitting the request so let us learn how to submit the request to the document library…
– Go to EmpolyeeView || one Click on Submit button || Create new Rule:

Details for Submit Employee
Condition
Actions Set Field; Action = “SE”
Submit Data
Close the form

– Go to EmployeeView || one click on Cancel button || Create new Rule ( this will simply enable the user to close the form )

Details for CancelEmployee
Condition
Actions Close Form

– Go to TeamLeaderView || one click no Approve button || Create new Rule:

Details for ApproveTeamLeader
Condition
Actions Set Field; Action=”AT”
Submit Data
Close the form

– Go to TeamLeaderView || one click on Reject button || Create new Rule:

Details for RejectTeamLeader
Condition  
Action Set Field; Action=”RT”
Submit Data
Close the form

– After that, you need to go to the TeamLeaderComments field and add the following validation Rule:

Details for CommentsIsRequiredOnrejection
Condition Action=”RT” and TeamLeaderComments is blank
Screen Tips Comments is required on rejection

– Do the same for the rest of actions ( cancel Team Leader, Approve Human Resource, Reject Human Resource and Cancel Human Resource )

Back

4. Build SharePoint designer workflow

Now, let us move to SharePoint designer workflow to build the business process…
– From start menu || SharePoint designer 2010 || Open Site || Locate your site collection (where you created the Leave Request Container list ) || Click Open || enter username & password if needed.
Back

4.1 Building the logic

Step 4.1 is illustrated on this video:

Building the logic

– On the Site Objects (menu in your left hand side) Click on Lists and Libraries || Click on Leave Request Container || (scroll down little bit ) (Next to Workflows label) Click New:
image

– Fill the Create List WorkflowLeave Requests Container as the following:

Name Leave Request
Description This will handle the business process of the leave request.

– Click on Step 1 and rename it to Employee Submission
– Right click in the empty space under the Employee Submission Step and Click on Step to add a step, call it Team leader approval and do so for Human Resource approval:
image

– Click inside Employee Submission step || (in the ribbon under workflow tab) Conditions ||  click If Current field equals value

image

– ( inside the Employee submission step) click on field  and select Action and click on value and select SE.

– Place the cursor under the newly added condition || (in the ribbon under workflow group) || Actions || set field in the current item:

image

– (inside the employee submission step) click on field and select Status and click on value and select WT ( waiting Team leader approval )

– Place the cursor under the newly added activity|| (in the ribbon under workflow group) || Actions || Wait for Field Change in Current Item:
image

– (inside the Employee Submission step) click on field and select Action and click on equals and change it to not equals, finally; click on value and select SE( this will be triggered once the team leader approve or rejects the leave request) so the final result should look like:
image

– In the next step ( Team lead approval ) add the following ( review the video for the details):
image

– In the next step ( Human Recourse Approval ) add the following:
image

– Click on Save Icon.

Now, we need to tell the Leave Request Container list to start this workflow once a new item is created.. so let us do it…
Go to (on the Site Objects menu) Workflows || right click on Leave Request || Workflow Settings || under the Start Options clear the Allow this workflow to be manually started and check Start workflow automatically when an item is created.
image

– Now publish the workflow by clicking on publish button as described bellow:
image

Now workflow should be deployed on the list and you can test that the workflow at this stage!

Back
4.2 Adding tasks assignment, email notifications and history

Step 4.2 is illustrated on this video:

Adding Tasks assignment, email notifications and history

Workflow logic is 100% done, but workflow means nothing for users unless there is notifications sent on triggers and tasks assigned as well, and some reference reporting system ( history list )

– Go back to the workflow designer || right click on the small space under Set State to WT in the Employee Submission step || select Send an Email.
image

– Then click on the these users, then fill the Define E-mail Message as the following ( review the video for more details )

To: CurrentI Item:Created By ( Click on the book icon next to Text box || Double click on Workflow Lookup for a User || (in field from source)  select Created By || (in the Return field as) select Email Address
CC:
Subject: Leave Submitted
Body Dear [%Current Item:Created By%]
You have successfully submitted you leave request
Regards
System Administrator

– Add anther Send an Email action to notify Team Leader to approve it, review the video if you want to know how you can send a link to the item through this email

Now we will assign a task for the team leader:
– Place the cursor after the email Send an Email activity and right click and select Assign a To do Item:
image

– Click on to do item then you will got the form that enable you fill the Name and Description of this task type, fill the fields like the following:

Name Leave Request – Approve Team leader
Description This task is for team leader to approve the leave request

– Click on these users || Double click Workflow Lookup a User… || in Field from Source select Team Leader || Return field as: || Login Name

– Again… Click on Publish.

– Do the same for the remaining Steps ( Team leader approval & Human Resource approval )

Now we will add the history ( we may do reporting through XSL or object model later on )
– Place the cursor after the email Assign To do item activity and right click and select Log to History List || click on this message || open the edit box through clicking on the button next to the text box || in this free space; you can dynamically build what ever string you want
image

Back


Conclusion:

  • The story of SharePoint designer workflows & InfoPath forms, can be summarized in the following logic:
    • Remember that the only way of communication is through list fields.
    • You simply submit some values & the action from InfoPath to SharePoint list ( which has the SPD workflow deployed on it)
    • SharePoint workflow change the state ( which is also a field in the list as you have seen) according to implemented logic
    • Then InfoPath form views will be loaded according to this state.
  • InfoPath forms & SharePoint designer workflows is a good option for somebody who doesn’t know how to code, or for some quick projects that doesn’t not need that customization, as you can see; there is still some limitations in the UI or on the pattern that is followed in the process; As you can see; 1 hour was enough to finish a business process that may be fully utilized in a real life  scenarios ; so this is the value of SharePoint out of the box implementation.

Posted in SharePoint - How To | Tagged , , , , , , | 98 Comments

Gathering requirements for business process automation (workflow)

Introduction:
It is very common in IT projects to face a client asking for an automation for some manual process like a leave request or an Invoice initiation; this requirement forms a big challenge on IT people as a Project Managers, Business analysts, architects, testers and developers; due to the following reasons:

  1. Manual processes are well-known and practiced by people (Customers) who doesn’t have IT background : converting a manual process to a real efficient automated process needs some creativity, imagination and good analytical skills adding to that some strong IT knowledge which is not easily found in a normal business user.
  2. Documentation availability:  most of the times; documentation of business processes is missing or out of date and most of the context is known by heart.
  3. Process engineering: process engineering is the step that should come before starting the IT analysis process, but – unfortunately – this activity is often ignored, and if it is not ignored; it usually done by purely business people who does not consider Information Technology standards, best practices and limitations, so you will find a lot of missing details that highly affect the process and some non-practical assumptions that are difficult to implement.
  4. Change Management: Technically; changes on Workflow and business processes in IT projects are extremely expensive; so it is always better to have a complete understanding of the business before starting the technical implementation.

So this article will simply give you – as an IT person – a full guidance; utilizing some simple tools (Visio and OneNote); on how to gather a requirements from a client during the analysis phase for workflow based business, and for illustration purposes; I utilized the leave request business process as real life example.

This article will take 15 minutes to fully read practice and understand.

You can download related files from here:


Technologies and Environment Preparations:
You need to have the following tools installed in your PC:
  Microsoft Visio (any version)
  Microsoft OneNote (any version)

In this article I am using Microsoft Visio 2010 and Microsoft OneNote 2010, However; it is not a must to comply with the those versions.


Assumptions:
 Users who read this article should have familiarity with IT based projects, in addition to basic knowledge of Microsoft Office products that will be used on this article.
  This article is targeting technical and non technical users so you will not find any technical implementation details for workflow, it is just a guidance for the gathering the requirements
Always when you read my blogs, Gray paragraphs are there for extra illustration, you can safely skip them if you don’t want to understand to go with details.


Plan:
Before we start, it is good to know what we are going to do, so we will follow this sequence:
Section 1 – Explain the real case scenario (Leave Request).
 Section 2 – . Exploring Business perspective.
 
Section 3 – Exploring IT Perspective.
Section 4 – Implementing the diagram with OneNote & Visio.


Solution:
Section 1 – Explain the real case scenario (Leave Request):

Leave request is one of the most common scenarios that may be found in – almost –  every company, although this process is very simple and basic; I believe that it is very suitable for the purpose of this article since – almost – everybody is familiar with this process and a lot of its activities can be found in many other business processes.

Our scenario can be described as the following:
An employee decided to request a leave; he fills the form describing the purpose and time of the leave, then his team leader will either approve or reject his request, after that the HR (Human Resource Employee) will either approve or reject this request”…. that exactly what you will hear from a normal business user.

Section 2 – Exploring Business perspective:
Now, you need to define the process in a more business oriented way, here we will open Microsoft Visio to represent the process:

Before you start; you need to consider the following factors:

  • Define Actors: The first and the most important data that you need to gather about the process is the actors (people who are participating in the process); In our business process; we have three actors: Employee, Team Leader and HR.
  • Define Activities(Human Activities): Activity represents any interaction between user and a form ( i.e. ASP.NET or InfoPath form) so you need to define these activities; we have three activities; Employee Submits Leave, Team Leader Approval and HR approval.
  • Define activities flow (logical sequence): It is also essential at this point to determine the the sequence of the steps, please consider the following when you work on that:
    • Starting and ending activities: Always define the start up activity and closing activity.
    • Parallel and serial paths: some times workflow takes a parallel shape where more than one actor can participate without the need of waiting the other to finish his task(call center scenarios may be also considered), our case is purely serial process.
    • Nested calls: some times one activity calls another process, or finishing a process considered a startup of a new process.
    • Actors relationship: ask you self, after finishing this activity; who is the next actor?; for example; if the employee submit his leave request; which team leader should continue the process ( we may have more than on team leader in the department) is it his direct manager on the Active Directory; or there is some business database that store each employee with his team leader or there is one team leader for all the employees.

Drawing this diagram is very easy task you just need to go to Start Menu || Microsoft Visio 2010 || File || New || (in Template Category) Flowchart ||Select Cross-Functional Flowchart || Select Horizontal

image

You will have initially the following diagram:

image

Consider the following when you do the drawing:

  • Your quote at this level is “Devil is in details” , so try to summarize as much as you can at this step.
  • We use three shapes on this diagram
    • Polygon: For start and end points
    • Diamond for approve/Reject (of activities that may have more than one out put – decisions)
    • Square:for one direction activities.

image
As you can see from the diagram, activity that comes on the space of the actor indicates that this activity is done by him; for example; Employee Submission activity is clearly done by employee as it comes on the area next to employee.

Section 3 – Exploring IT Perspective:
Although the name sounds technical; this section should also be handled by business analyst (the person who is gathering and documenting the requirements), remember that the previous Visio diagram is useful to to document the process in a more tangible way; but still doesn’t mean anything for the developer and still open for a lot of debates from the client side.

Remember that diamonds and squares doesn’t count for developers; what counts for technical people is forms, clicks, database and code and so forth, so let us try to enhance this diagram to meet developers expectations!

Initially let us do the following assumption; Each step in the work flow is mapped to a UI Form (i.e. ASP.NET or InfoPath form),  and  – as we discussed before-we will also call it an activity; so let us first find a name for the three activities mentioned above:

  • Employee Submission.
  • Team leader approval.
  • HR Approval.

Let us begin with the details…

If we want to talk IT word; workflow consists of the following components: Actors, How to reach the formData to entered, Data to be viewed, decisions, Security, Business constrains, input Validation, Emails and Tasks.

We will discuss all these components in details taking in consideration that we have three activities; that means that we have three slots of these components.

  1. Actors: we have the following actors:
    • Employee Submission: the Actor is Employee.
    • Team Leader Approval: the Actor is Team Leader.
    • HR Approval: the Actor is HR.
  2. How to reach: we mean by this “the click that takes you to the form
    • Employee Submission: User goes to the main menu in the intranet and click on My E-services || Request New Leave (this is just and example)
    • Team Leader Approval: Team leader can enter this form in two possible ways:
      • Click on the link from his email (an email will be sent to the Team leader once the employee submits his leave request)
      • Click on the task (a task will be created and assigned to the team leader once the employee submits his leave request)
    • HR Approval: HR can enter this approval form in three possible ways:
      • Click on the link from his email (an email will be sent to the HR once the Team leader approves the leave request)
      • Click on the task. (a task was created once the team leader approve the leave request)
      • Click “Action” button on the leave request item on the HR portal (in this case; HR employee has an access to a page that can query all requests for reporting purpose; so he can use this page to reach HR Approval form as well)
  3. Data to be entered: this is the expected data to be filled into the form
    • Employee Submission: employee will fill the date time (using a date time picker) and will fill the reason of the leave request (free text box)
    • Team Leader Approval: will fill a comments box.
    • HR Approval: will fill a comments box
  4. Data to be viewed: Data to be viewed is the  data that user will see on the form (this data facilitate and aid the user in taking the decision ).
    • Employee Submission: current leave balance for this year and the name of his team leader.
    • Team Leader Approval: team leader may be interested in the following:
      • Leave Request date and time (Filled by Employee)
      • Leave request reason (filled by Employee)
      • Resource sheet and current project status.
    • HR Approval: HR may be interested in the following:
      • Leave Request date and time (Filled by Employee)
      • Leave request reason (filled by Employee)
      • Employee Current balance ( taken from HR system)
      • Employee leave history (taken from HR system)
      • Comments provided by Team leader.
  5. Actions: Actions are the available decisions that can be done by actors which control the flow of the process, one activity may have one or more actions as the following:
    • Employee Submission: this activity will have only one possible action, I will discuss the concepts in the this activity:
      • Submission: (clicking on the submit button) each action will have 5 related considerations which are:
        • Security: in our case it is Employee ( normally it is equal to the actors, but in some cases different users can do the same activities but with same permission set).
        • Business Constrains: we have the following constrains:
          • User cannot request a leave if his leave balance equals to zero.
          • User cannot request a leave if he has got an HR warning letter in the previous two months.
        • Input validation: This is a validation on the input data:
          • Leave date time: Required, should be a date between current date + 1 year
          • Reason: Required, should be a free text that is less than 50 character.
        • Email: Email notification that will be sent upon doing this action. 
          • An email will be sent to Team leader.
          • confirmation email will be sent to employee
        • Tasks:
          • A new task will be assigned to team leader.
    • Team leader Approval:
      • Approve:
          • Security: Team leader Can do that.
          • Business Constrain: No Business constrains
          • Input validation:
            • Comments: not required, less than 50 character.
          • Email:
            • HR.
            • Employee (FYI)
            • Team leader (Confirmation)
          • Tasks:
            • HR
      • Reject:
          • Security: Team Leader Can do that
          • Business Constrains: No business constrains
          • Input validation:
            • Comments: Required, less than 50 character
          • Email:
            • Employee: (FYI)
            • Team leader ( Confirmation )
          • Tasks: No tasks
    • HR Approval:
      • Approve:
          • Security: HR Can do that
          • Business Constrains: no business constrains
          • Input validation
            • Comments: not required, less than 50 character
          • Email:
            • Employee ( FYI)
            • Team leader ( FYI)
            • HR ( Confirmation )
          • Tasks: No tasks
      • Reject:
          • Security: HR Can do that.
          • Business Constrains: No business constrains
          • Input validation
            • Comments: Required, less than 50 character
          • Email:
            • Employee (FYI)
            • Team Leader (FYI)
            • HR (Confirmation)
          • Tasks: No tasks
  6. Custom triggers: (Some times called system activities) these are automated actions that are done by the system it self as a reaction of executing and activity, a good example of this is an insert into a databases or a call to a web services that communicate with external systems.
    • Employee Submission: No custom triggers.
    • Team Leader Approval: No custom triggers
    • HR Approval: Here once the leave is approved; an update statement will happen against the Human resource database to subtract the value of the leave request from employee leaves balance.

Section 4 – Implementing the diagram with OneNote:
This is the most existing section! Section 3 was just a detailed explanation of what we will be done here, let us start utilizing Microsoft OneNote ( which is –in my opinion – the best tool Microsoft ever done), I am using OneNote 2010 but you can use earlier or later version of the product, so here we go!

This section is describing the steps of utilizing OneNote to represent the process, we will go  through the following steps:

Step 1: Create new note book and section
Step 2: Add the Visio diagram
Step 3: Create the template for the activity
Step 4: Fill one activity ( as and example)
Step 5: Link the activities to the Visio diagram

so let us begin…

Step 1: Create new note book and section

Open Microsoft OneNote from Start menu (if you don’t  have it you can get it from here), then click on File || New || (Store Notebook on) My Computer || (Name) type Workflow || Click Create Notebook

image

Rename the section to Leave Request Workflow

image

Step 2: Add the Visio diagram

Rename the Untitled Page to Main Diagram.

image

Go to Visio diagram drawn in Section 3 and copy and paste in into the Main Diagram page:

image

Step 3: Create the template for the activity

Go to New Page || Name the title Activity 1 || Create the following table on the page ( you can take it from the Attachment at the end of the article)image

To accelerate the process of filling the data, you can add the common fields that may have the same values in all over the process with template ( like in How to Reach section, you can add “Click on the task ” as it will be the same for all activities)

Click on Arrow Next to New Page || Page Template… ||
image

Then click on Save current Page as a template

image

You will get popup that allow you to name the template, type Workflow activity in the text box and you can optionally check Set default template for new pages in the current section then click Save

image

Delete the Activity 1 page.

image

Now we are ready to visit our client and start gathering requirements, so we can start filling the fields ( described in section 3) as the following

image

Now you have a stored template that has an already created table and you just need to fill it ( it is recommended to add some already filled sections to the template for example;  how to reach section will always contain the sentence “Click on task except on the first step; so you can add this to the template to accelerate the work)

Do the same for the next two activities.

Step 5: Link the activities to the Visio diagram

We are almost done except one thing that will add good value to our diagram which is linking the diagram with the activities pages. so let us start:

Go to Main Diagram page and type Details under each activity:

image

Now start linking the pages with email of those “Details” labels; so Right click on Employee Submission || Copy Link to page.

image

Then go to the “Details” word under Employee Submission Activity  || Select the text ||Right click on it || Link || (in side address: text box) paste copied link

image

Do the same for the other two activities, then you will end up with the following on the Main Diagram page:

image

 

Download the sample from here


Conclusion:

As we have seen, this article is just a way to organize your ideas before you visit the client and start requirements gathering, following this practice in details is not required; it is better to deal with this article as a baseline and check list of what you need to ask about when you are analyzing a process, you can also use the tools-based techniques in accelerating the process of gathering requirements and have easy to deal with documentation that can be good source for developers and designer to start sketching and development.


Posted in Software Development life cycle | 12 Comments

How to get Rid of the Beep in the Vmware 6.0

Sometimes –while you are working on VMWare and listening to some music- you got a very loud beeps that make you crazy! the solution is doing the following:

  • Go to the following path:
  • C:\Documents and Settings\<windows User>\Application Data\Vmware. (this path may vary according to the windows version that you are using)

  • Open the file called preferences.ini
  • Add the following line:
  • Mks.noBeep = "TRUE"

    (Be carful, it is case sensitive)

    image 

    Note: 

    this works for sure on VMware workstation 5.0 and 6.0 versions.

Posted in Sharepoint | Leave a comment

How to enable Usage Report Analysis in SharePoint 2007 (MOSS only)

  1. Go to: Central Administration -> Operations -> under logging and reporting click Usage Analysis Processing check the two check boxes illustrated bellow:

clip_image001

clip_image002

  1. Then go to the Central administration–> under shared services Administration click SharedServices1(SharedServices1 is the default name of the shared service provider, you might find different name) –> Under SharePoint Usage Reporting click Usage Reporting and check “Enable advanced usage analysis processing”, as done in the figure below:

    clip_image003

  2. At this point, you are done with configuring the SharePoint Usage report on your server. Analysis is done on the site collection level; so you can access this report by navigating to:

    Log into your site collection –> Site Actions –> Site settings –> Under Site Administration click on Site Usage Report, as done in the figure:

    clip_image004

    Then you will see something like this:

    clip_image005

  3. You can use the Usage Report URL any where on your site collection; which is on the following format:

    <SiteCollection>/_layouts/SPUsageWeb.aspx

Posted in SharePoint - How To | Tagged , , | Leave a comment

Reset Visual studio 2008 default settings

Go to Tools –> Import and Export Settings

clip_image001

Then you will got this window, Choose reset all settings, click Next

clip_image002

Then either choose to save or not to save your settnigs here:

clip_image003

Here you choose your default Visual studio settings:

clip_image004

Then click Finish.

Posted in .NET Framework | Tagged | Leave a comment