Network Layout

Exchange 2010 is installed in Queen.
Create a customized receive connector for the SharePoint server: K2
Get-ReceiveConnector -Identity "Queen\k2" | fl Name,Remote*,Bindings,permissionGroups
Name : K2
RemoteIPRanges : {191.121.6.91-191.121.6.91}
Bindings : {0.0.0.0:25}
PermissionGroups : AnonymousUsers, Custom
Get-ReceiveConnector -Identity "Queen\k2" | Add-ADPermission -user 'NT Authority\Anonymous Logon' -extendedRights 'ms-exch-smtp-accept-any-recipient'
K2 computer
SharePoint 2010 central Administration
System Settings--E-Mail and Text messages (SMS)--Configure outgoing e-mail settings
Outboundd SMTP Server: queen.aaa.com
From administrator@aaa.com
Reply-to address:administrator@aaa.com
The following email addresses are created in Exchange server
Administrator@aaa.com
sam@aaa.com
Nicole@aaa.com
Kaiming@aaa.com
Stuart@aaa.com

You do not have an e-mail address. Albert has been created successfully but you will not receive notifications until valid e-mail or mobile address has been provided in your profile.



Solution to automatically populate the Work e-mail field without openning the user's profile or restarting the SharePoint server, or other actions.
SharePoint 2010 Central Administration
Monitoring--Timer Jobs--Review job definitions
User Profile Service Application - System Job manage user profile (1 minutes)
User Profile Service Application - User Profile Change job
Recurring Schedule: Minutes (Every 5 minutes)
User Profile service Application - User Profile to SharePoint Quick Synchronization (5 minutes)
I don't know which job(s) manage the profile synchronization. even though I disable all of them, when a new user is created with e-mail address, in SharePoint, the e-mail address is automatically populated in Work e-mail field.
The actual reason that the work e-mail addresses are not automatically populated is that I install the SharePoint Server first and then install Exchange server.
When installing Exchange server first and then install SharePoint Server, every user that logs on to SharePoint site will have the Work E-mail field populated automatically.
Because My workflow needs to send E-mail, I have to make sure that every one has the Work E-mail field populated.
http://k2/
Create a custom list:
Teams
It is based on the Custom List template.

Both Title and Team Leader fields are set to Required and Unique.

Create a custom list
Holiday Allowance
It is based on the Custom List template.
Field:
Team Member: People or Group
Team:Lookup to Teams list for Team field
Allowance: Number (min=10, maximum=30,default=10)
Holiday Taken:Number (min=0,maximum=30,default=0)
Holiday Remaining:Calculated (Allowance-Holiday Taken)
Create a list
It is based on the Calendar List template.
Validation Settings:[End Time]>=[Start Time]
Create a column: Days Absent (min=1, default=1)
Create a List Workflow--SharePoint Designer 2010
Workflow--List Workflow
Click the name of the list or library

Name it as Holiday Request Approval
Save
Under Step 1, Insert a Condition








Instead of typing Message in Text Box, click on Display Builder ellipse button


SharePoint Designer can retrieve only one list item from another list.
When Sam creates an item in Holiday Request list, the workflow can retrieve the first list item from Holiday Allowance list. Because each user in Holiday Allowance list has only one matching list item, the calculation of [Holiday Request].[Days Absent]+[Holiday Allowance].[Holiday Taken] will work.
Define a new variable:TotalHolidayTaken







In my Holiday Allowance list, each user has only one item. So click Yes to ignore the warning.












When Linh creates a Holiday Request with Category set to Holiday, a task: Holiday Approval is created in Tasks List and assigned to Janet.
When Albert creates a Holiday Request with Category set to Holiday, a task: Holiday Approval is created in Tasks list and assigned to Rudy.
When Sam creates a Holiday Request with Category set to Holiday, a task: Holiday Approval is created in Tasks List and assigned to Kaiming.


Click 'these users' link


Save the workflow and publish

User Linh creates a Holiday Request

Linh will receive an e-mail because Days Absent is greater than her holiday allowance (10 days).
Delete the Action of Assign to in the workflow
Insert 'Start Approve Process' action


When Linh creates a Holiday Request, a new task is added to Tasks List and E-mail is sent to Janet.
When openning the task, the Window has Approve and Reject buttons.



SharePoint Designer 2010--Export to Visio
MS Visio 2010 Premium -- Process--Import
We get the flowchart.

If Approved, update the Holiday Taken field of Holiday Allowance List


Visio Flow Chart

Notes:
Compare document field and Compare data source
Test:
When Albert creates a Holiday Request, after Rudy approves it, the Holiday Taken field is updated.