In SharePoint, timer job does the repetitive, scheduled background service to perform task. The azure web job takes the advantage of the SharePoint Online timer service to perform the task in regular basis through scheduled or on-demand. The web jobs uses console application and CSOM to execute the task.
We can start with creating a new console application and we need to add the required assembiles to the project.
We can store the site url, username and password in the app.config file. For security we can encrypt the file.
<appSettings>
<add key="url" value=""/>
<add key="userName" value=""/>
<add key="password" value=""/>
</appSettings>
Include SharepointPNP Library using Nuget manager.
Program.cs
class Program
{
static void Main()
{
try
{
AuthenticationManager authenticationManager = new AuthenticationManager();
string url = ConfigurationManager.AppSettings["url"];
string userName = ConfigurationManager.AppSettings["userName"];
string password = ConfigurationManager.AppSettings["password"];
using (ClientContext context = authenticationManager.GetSharePointOnlineAuthenticatedContextTenant(url, userName, password))
{
Console.WriteLine("Started at " + DateTime.Now);
List lst = context.Web.Lists.GetByTitle("Interview");
CamlQuery camlQuery = new CamlQuery
{
ViewXml = @"<View><Query><Where><IsNull><FieldRef Name='Status' /></IsNull></Where></View></Query>"
};
ListItemCollection listItems = lst.GetItems(camlQuery);
context.Load(listItems);
context.ExecuteQuery();
foreach (ListItem item in listItems)
{
item["Status"] = "Completed";
item["DBUpdateOn"] = DateTime.Now;
item.Update();
}
context.ExecuteQuery();
}
Console.WriteLine("Ended at " + DateTime.Now);
}
catch (Exception exception)
{
Console.WriteLine("Error " + exception.Message);
throw exception;
}
}
}
· Handle the exception for logging and throws the same, so that web jobs know error has occurred.
· Always the log the major steps using console.writeline for future reference.
Create an app service in Azure to add the web jobs
The jobs can be deployed and scheduled through visual studio
Scheduling the jobs from visual studio.
The web jobs can be deployed manually as follow.
Compress the binaries files. It will be available under the bin\debug or bin\release folder of the visual studio project.
Upload the compress binaries to azure, After the successful upload the web jobs will displayed under the same.
The console.writeline logs will be displayed under the azure as below.
Leave a comment