Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Objective: Create a Permanent Workflow that will run every hour and bring the list of people whose attributes have been modified.

SQL

Credentials:

User ID: Here, put whatever user ID has been provided to you.

Password: Here, put whatever Password has been provided to you.

Image Added
  1. Once your SQL Server Management Studio is opened, create a stored procedure for retrieving the persons whose attributes have been modified in the last X number of days.

  2. Click on the New Query button and write below script.

    Image Added
    Code Block
    -- In the USE clause ensure you pass your database name otherwise script will not run
    USE [EmpowerID_7.208]
    GO
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- Here you can give any name to your stored procedure but make sure you use the same name in the code as well.
    Create procedure [dbo].[HS_Custom_Person_GetModifiedPeople]
    (
     @LastModifiedInDay int
    )
    
    AS
    BEGIN
    
    	Select P.*
    	from Person (nolock) as P
    	where P.Deleted = 0 and P.ModifiedDate > DATEADD(day, - @LastModifiedInDay, GETUTCDATE())
    END
Image Added
  1. Now click on the Execute button to create a stored procedure.

    Image Added
  2. Now, if you want to test your stored procedure, you can do so by-passing different parameters.

    Image Added

Workflow Studio

Credentials:

User ID: Test

Password: P@$$w0rd

  1. Start the 20331B-NYC-DC-05 virtual machine. Wait for the virtual machine to display the Desktop.

  2. On your Desktop, Right-click Workflow Studio (WFS), and then click Run as administrator.

  3. Wait for WFS to start and enter your credentials.

 

  1. In Solution Explorer, right-click on the Developer Packages folder, create a new folder called DemoLabs, and click the Ok button.

  1. Add New Folder dialog box will appear from it; select the following options.

  • User Interface > Lookup Control

  • User Interface > Forms

  • User Interface > UI Pages

  • Workflows > Applications

And click the Ok button.

  1. Expand the Developer Packages folder, find the DemoLabs folder, expand it under the DemoLabs folder, expand the Workflows folder, right-click on the Applications folder, hover your mouse on the New Workflow option and Click on Permanent Workflow.

  2. It will load the Permanent Workflow Template.

    Image Modified

 

  1. Click on the Save button to save your Permanent Workflow and give it the name

Demo
  1. HS_PermanentWF.

  2. Now go to the properties tab and create two properties of type string.

  • OutPutFilePath

  • FileNamePrefix

Image Added

Image Added

  1. Now double click on the DoWork activity or right click on the DoWork activity and then click on Edit DoWork_ExecuteCode

Image Modified
  1. It will open the code editor for you where you can write your custom logic to perform any task or action.

Image Modified
  1. In this code editor, I will write the code

that will
  1. to call

my
  1. the stored procedure

that we made above and that
  1. we created earlier. The stored procedure will return

me the
  1. values, and I will write

down
  1. those values

in
  1. to a text file. Here is the code to

do
  1. accomplish that.

Code Block
// Calling my stored procedure and passing the 5 as an input for my stored procedure
E.TList<C.Person> people = C.Person.GetTList("HS_Custom_Person_GetModifiedPeople", new Object[] {5});

 String Topheader = "FirstName,LastName,Department,Login";
 
 //Initiating the StringBuilder Object
   StringBuilder Data = new StringBuilder();
 
 //We are using StringBuilder because StringBuilder objects are mutable and they offer better performance than string objects of type System.String when heavy string manupulation is involved
   Data.AppendLine(Topheader);
 
 //Looping through the items returned by the stored procedure and storing 
it
them in a StringBuilder object.
 foreach(var person in people)
 {
 	string line = string.Format("{0}{1}{2}{3}", person.FirstName, person.LastName, person.Department, person.Login);
 	Data.AppendLine(line);
 }
 //Here we are creating a file on our local machine
 string fileName = this.OutPutFilePath + "\\" + this.FileNamePrefix + DateTime.UtcNow.Ticks.ToString() + ".txt";
 var file = File.CreateText(fileName);
 //Here we are writing the data into our newly created text file.
 file.Write(Data.ToString());
 file.Dispose();
Image RemovedImage RemovedImage Removed

Image Added

  1. Now publish your workflow both from the Workflow Studio and then by going to the EmpowerID Web UI.

  2. After publishing your workflow, go to its ViewOne page and set the values for the properties you created in Workflow Studio.

    Image Added
  3. Now navigate to Infrastructure Admin > EmpowerID Servers and Settings and selecting Permanent Workflows. Now click on the + icon to create a permanent workfow

    Image Added
  4. Now, on the Permanent Workflows Details tab, fill out all the fields as shown in the image below and click the save button.

    Image Added
  5. Now, this Permanent Workflow will run every hour, fetch the persons who have been modified in the last hour, and write down the results in a notepad file.

Info

You can also run the Permanent Workflow using the following command

image-20240521-132532.pngImage Added
  1. Let’s go to the path we have defined and see if it has created the file and written anything in the file.

    Image Added
  2. In the above image, you can see that it has retrieved the names of users who were modified in the last hour. There are some formatting issues, but addressing them is not within the scope of this lab tutorial.

  3. END