About the IDE

The Workflow Studio IDE is where you develop EmpowerID workflows. It comprises four user interface components that work together to provide developers with a visual design environment. Through friendly drag-and-drop operations, depictions of business processes can be translated quickly into workflow logic without the need for extensive code. This can be as simple as dragging predefined activities onto the design surface of the IDE and connecting those activities with flow lines. Code editors allow C# code to be injected into the process when desired to create a complete package.

The below image shows what the Workflow Studio IDE looks like with a Flow Chart workflow opened in the Workflow Designer (also known as the Document Space.

 

As depicted by the above image, the Workflow Studio IDE is comprised of four components – the Toolbar, the Solution Explorer, the Document Space, and the Toolbox – each of which combines to create a rich, interactive environment for workflow development.

Workflow Studio Toolbar

The Workflow Studio toolbar provides immediate access to a variety of tools and application-specific development commands. The commands are dynamic in that the number of commands at any given time is determined by the number and types of designers and editors opened in the Workflow Studio IDE.

Toolbar Commands

Command

Purpose

Command

Purpose

Exit Application

Closes Workflow Studio.

Common > Save

Saves the currently open item.

Common > Save As

Opens a dialog that allows you to name an open folder item and choose the folder to which you wish to save it.

Common > Deployment Services

Provides options for opening and creating new manifests, building solutions and packaging development items for deployment to the local file system.

Common > Refresh Toolbox

Forces a refresh of the toolbox. If any recent changes have occurred you can elect to have those reflected in the update.

Common > Object Browser

Displays the Workflow Studio class library.

Build > Compile

Compiles the open workflow, activity, form or lookup.

Build > Publish

Publishes workflows to the designated workflow server.

Build > Deployment

Provides options for opening and creating new manifests, building solutions and packaging development items for deployment to the local file system.

Tools > View Assemblies

Opens a list of all Workflow Studio assemblies by version number, allowing you to add or remove any from your copy of Workflow Studio.

Tools > Activity Templates

Opens a dialog that allows you to view and delete any activity templates from Workflow Studio.

Tools >Event Viewer

Opens an Event Viewer that allows you to view any workflow events that have occurred on a selected machine.

Tools > Isolate Workflow Versions

Allows you to select an existing workflow and save it as different version.

Workspace > Build Log

Opens the Build log, if one exists.

Workspace > Cancel Build

Cancels any batch build operations that exist in your workspace.

Workspace > Program Files

Opens the Program Files folder on the local machine.

Workspace > Program Data

Opens the ProgramData folder on the local machine.

Workspace > Compile Temp

Opens the ProgramData > CompilerTemp folder on the local machine.

Workspace > Dyna Local Temp Dll

Opens the ProgramData > DynaLocalTempDll folder on the local machine.

Workspace > Intelli Cache

Opens the ProgramData > Cache folder on the local machine.

Workspace > Workflow Templates

Opens the ProgramData > UserWorkflowTemplates folder on the local machine.

Options and Settings > Alert Receivers

Opens a window displaying a list of the current Alert Event Receivers configured in your environment.

Options and Settings > STS Claims Extensions

Opens the STS Claims Extensions dialog with a list of extensions and related assemblies in your environment.

Options and Settings > SSO Extensions

Opens the SSO Extension editor displaying a list of extensions and related assemblies.

Options and Settings > C# Code Editor Font

Opens the Editor Style dialog, which allows you to style how text appears in the C# Code Editor.

Workflow Studio Workflow Editing Commands – The following commands only appear when a workflow is open in the Workflow Designer or an activity is open in the Activity Designer. 

Add New Property

Opens the Add New Property dialog, which allows you to add a new property to the workflow or activity. Once added, the new property can be used for data binding.

Delete Property

Allows you to delete a selected property. You must select a property to delete it.

Promote

Promotes the selected property.

Bind Property

Opens the Data Binding Shortcut dialog, which allows you to create a new workflow or activity property bound to another property in the same workflow or activity.

Bind Wokflow

Opens the Shortcut Workflow Association wizard, which allows you to call an external workflow to return a property from that external workflow to the current workflow or workflow activity.

Copy

Copies an item selected in the designer.

Cut

Cuts an item selected in the designer.

Paste

Pastes a previously copied item into the designer.

Delete

Deletes a selected item from the designer.

Zoom In

Allows you to magnify the designer.

Zoom Out

Allows you to decrease the magnification level of the designer.

Pointer

Releases the mouse from the Zoom In and/ Zoom Out control.

Print Setup

Opens the Page Setup dialog, which allows you to configure print options.

Print Preview

Displays a preview of what the workflow or activity will look like when printed.

Print

Prints the workflow or activity to the printer selected in the Page Setup dialog.

Add Reference

Opens the GAC Assembly Reference dialog, which allows you to add an assembly reference to the project.

Workflow Studio Form Designer Commands – The following commands only appear when a form is open in the IDE. 

New Tab

Adds a new tab to the form that is actively being edited.

New Section

Adds a new section to the form that is actively being edited.

Mask

Opens the Add New Mask dialog, which allows you to add a new Mask to the Components tree of the form that is actively being edited.

Validation

Opens the Add New Validation dialog, which allows you to add a new Validator to the Components tree of the form that is actively being edited. Validators force users to enter data in the format specified by the Validation Expression of the Validator.

Data Source

Opens the Add New Data Source dialog, which allows you to add a new Data Source object to the Components tree of the form that is actively being edited. Data Source objects allow you to bind form controls to objects in the EmpowerID Identity Warehouse.

Add Object

Opens the Add Object dialog, which allows you to add Primitives (Strings, Booleans, DateTime, etc) and Rbac Components (Account, AccountStore, Person, etc) to the Components tree of the form that is actively being edited. Once added to the Components tree, these objects can be dropped onto a form as properties for use in data binding.

Workflow Studio Lookup Designer Commands – The following commands only appear when a lookup is open in the IDE. 

New Column

Adds an empty column to the currently open lookup

Set Grid Type

Allows you to set the grid type for the currently open lookup. Grid types can be set to custom, default or that of a current EmpowerID component. The selected grid type determines the initial columns of the lookup. For example, if you set the grid type for a lookup to the Account component, Workflow Studio adds the columns that appear in the default Account Lookup to the lookup in the designer.

 

Solution Explorer

The Solution Explorer tab in Workflow Studio is an essential tool for organizing, accessing, and managing your workflow applications and other objects within the development environment. The three sub-tabs within the Solution Explorer provide different functionality to help you efficiently work with your projects:

  1. Workspace tab: The Workspace tab displays all the objects you develop in Workflow Studio, organized into folders on your local development machine. These folders act as containers for holding and organizing your workflow applications, activities, user interface elements, and other objects. You can create new folders, add objects to existing folders, and manage the contents of your workspace through this tab. As you develop new objects, Workflow Studio prompts you to select the folder where the object should be placed, ensuring that your workspace remains organized and easy to navigate.

  2. Search tab: The Search tab allows you to search for objects by name and type, making it easy to quickly locate specific items within your workspace. This functionality is especially useful when working with large projects or searching for objects across multiple folders.

  3. SharePoint tab: The SharePoint tab enables you to work with your SharePoint objects, integrating them into your EmpowerID workflows as needed. This functionality allows for seamless collaboration and integration between your EmpowerID projects and SharePoint resources.

Overall, the Solution Explorer tab in Workflow Studio provides a comprehensive and user-friendly interface for managing your workflow applications and objects. By organizing your projects in folders and providing easy access to search and integration features, the Solution Explorer helps you maintain an efficient and streamlined development process.

Source Control folders exist for each item type that can be created in Workflow Studio and encompass the following:

Source Control Folder

Folder Purpose

Source Control Folder

Folder Purpose

Adaptive Auth Rules

Provides a location for organizing Adaptive Auth Rules you create in Workflow Studio

Alert Receivers

Provides a location for organizing Alert Receivers you create in Workflow Studio

APIs

Provides a location for organizing APIs you create in Workflow Studio

Azure Functions V1

Provides a location for organizing Azure Functions V1 apps

Azure Functions V2

Provides a location for organizing Azure Functions V2 apps

Azure Functions V3

Provides a location for organizing Azure Functions V3 apps

Business Rules

Provides a location for organizing Business Rule apps

Class Libraries

Provides a location for organizing Class Library apps

Console Applications

Provides a location for organizing Console Apps

Microservice V1

Provides a location for organizing Microservice V1 apps you create in Workflow Studio

Microservice V2

Provides a location for organizing Microservice V2 apps you create in Workflow Studio

Microservice V3

Provides a location for organizing Microservice V3 apps you create in Workflow Studio

OAuth Extensions

Provides a location for organizing OAuth Extensions you create in Workflow Studio

SAML Extensions

Provides a location for organizing SAML Extensions you create in Workflow Studio

SCIM Microservices V2

Provides a location for organizing SCIM Microservices V2 apps you create in Workflow Studio

STS Extensions

Provides a location for organizing STS Extensions you create in Workflow Studio

UMA Extensions

Provides a location for organizing UMA Extensions you create in Workflow Studio

User Interface > Forms

Provides a location for organizing Forms you create in Workflow Studio

User Interface > Lookup Controls

Provides a location for organizing Lookup Controls you create in Workflow Studio

User Interface > UI Pages

Provides a location for organizing UI Pages you create in Workflow Studio

Workflows > Activities

Provides a location for organizing Workflow Activities you create in Workflow Studio

Workflows > Applications

Provides a location for organizing Workflow Applications you create in Workflow Studio

Workflows > Composites

Provides a location for organizing Composite Workflows you create in Workflow Studio

Workflow Rules

Provides a location for organizing Workflow Rules you create in Workflow Studio

 

Additionally, the Workspace tab of Solution Explorer gives you ready access to the commands associated with folder and folder items. These commands are accessible from a context menu that appears when right-clicking an object in the Workspace Source Control tree.

Command

Purpose of Command

Command

Purpose of Command

New Folder

Creates a new top-level folder with a specified child folder on the file system of the local machine, such as MyDevFolder > Workflow Rules

Add Item Folders

Creates a new folder of a selected item for organizing development work. For example, if you select APIs, Workflow Studio creates a new APIs folder

Open in File Explorer

Opens the specified folder in File Explorer

New Workflow

Opens a new workflow in the designer

New Workflow Activity

Opens a new workflow activity in the designer

New Operation Activity

Opens a new operation activity in the designer

New User Interface

Opens a new form, lookup or UI page in the designer

New Extension or Library

Opens a new instance of the selected object in the designer

New Console Application

Opens a new console app

New Adaptive Authentication

Opens a new adaptive authentication workflow or adaptive auth rules class library in the designer

Remember my Login

Retains your login so that when you exit and restart Workflow Studio you do not need to reauthenticate

Set Local Repository Path

Sets the path bound to the repo for your organization

Delete Folder [Current Folder Name]

Deletes the currently selected folder from your file system

Refresh

Refreshes the source control tree

 

Document Space

The Document Space in Workflow Studio is where you work with various designers and editors to develop and edit workflow applications, activities, forms, and lookup controls. The designers and editors offer visual design capabilities, making it easy to create and modify your workflow components without extensive coding. Some of the key designers and editors in Workflow Studio include:

  1. Workflow Designer – The Workflow Designer allows you to visually design workflow applications and access all necessary commands and editors to build a complete workflow application. It provides tabs for designing the workflow, managing properties, creating bindings, setting up external rules, and viewing source code.


    When you open a workflow in Workflow Studio, you gain access to several workflow-related tabs that provide different functionalities to assist you in designing and managing the workflow process. These tabs include:

    • Workflow Designer Tab – In this tab, you create and modify the workflow visually by adding shapes and connecting them with lines and Business Rules (line rules) to define the process flow within the workflow.

    • Properties Tab – This tab provides a tree view of the workflow's properties. By clicking on a property, you can view its details. To add new properties to the workflow, right-click the base node in the tree and select "Add New Property" from the context menu.

    • Bindings Tab – The Bindings Tab displays two tree views showing the workflow's properties and the properties of each shape within the workflow. Using simple drag-and-drop operations, you can bind workflow and shape or activity properties to one another by dragging a property from one tree onto the corresponding property in the other tree. This binding allows you to visually maintain data consistency throughout the workflow process execution.

    • External Rules Tab – This tab is similar to the Bindings tab, but it displays two different tree views for binding properties in your workflow application. One tree shows the properties of the workflow and any shapes or activities within the workflow, while the other tree displays the Smart Object properties of any External Business Rule Application added to the workflow. This enables you to bind workflow properties to the Smart Object properties of the External Business Rule Application.

    • Source Code Tab: This tab allows you to view and edit the source code of the workflow application, providing an opportunity to further customize the workflow by modifying or adding custom code if necessary.

  2. Activity Designer: The Activity Designer lets you visually design workflow activities and access all commands and editors needed to build a complete workflow activity that can be associated with a workflow. It offers virtually the same tabs as the Workflow Designer.

     

  3. Form Designer: The Form Designer enables you to visually design forms by dragging and dropping user interface components and controls onto the canvas. No coding is necessary, and you can create forms for various data types, from primitive types like strings to more complex types based on registered RBAC components. Once a form is published, a "Form activity" is generated and published to the EmpowerID Identity Warehouse, allowing you to use the form within a workflow.

     

  4. Lookup Designer: The Lookup Designer is used to create and edit Lookup controls, which are searchable grids for looking up and selecting objects within the EmpowerID Identity Warehouse. The type of objects returned by the Lookup is based on the method call selected when designing the Lookup, which initiates a specific stored procedure against the EmpowerID Identity Warehouse for a particular resource type. For example, when creating a Lookup that calls the GetAllSearch(string columnsToSearch, string textToSearch) method against the ManagementRoleView, it will execute the dbo.custom_ManagementRoleView_GetAllSearch stored procedure. This allows users to search and select objects such as groups, managers, or other resources during various stages of a workflow process, making the workflow more dynamic and adaptable to different scenarios.

    ALTER PROCEDURE [dbo].[Custom_ManagementRoleView_GetAllSearch] ( @ColumnsToSearch NVARCHAR(MAX) = null, @TextToSearch NVARCHAR(MAX) = null, @ResourceTags NVARCHAR(MAX) = NULL, @StartRow INT=0, @TotalRows INT=1000 ) AS SET NOCOUNT ON; DECLARE @Statement NVARCHAR(MAX) = '' EXEC [GenericSearchForResources] @Statement = @Statement, @ComponentName = 'ManagementRole', @ObjectName = 'ManagementRoleView', @ColumnsToSearch = @ColumnsToSearch, @TextToSearch = @TextToSearch, @OrderByClause = '[Name]', @ResourceTags = @ResourceTags, @ResourceTypeIDForTags = 40, @StartRow = @StartRow, @TotalRows = @TotalRows


    In the given example, the procedure returns fields based on the columns added to the designer. Specifically, it returns ManagementRoleID, DisplayName, Name, Parent Management Role Definition, Extension Attribute 1, and Extension Attribute 2.

Toolbox

The Workflow Studio Toolbox, located on the right side of the IDE, offers access to various features related to workflow development and project management. It consists of four tabs: Activities Toolbox, Solution, Properties, and Workflows, each with its distinct functionality. Depending on the type of object open in the Document Space, some tabs may be more relevant to your project than others. The purpose of each tab is discussed in more detail below.

The Activities Toolbox

The Activities tab displays icons for all activities published to the Workflow Server(s) in your environment. Once an activity is published, it becomes available as a toolbox item that can be dragged and dropped onto the design surface of any workflow open in the Document Space. You can also drop activities onto the design surface of a select number of other activities.

The Activity Toolbox includes a Search field and a Category drop-down, both of which help you refine the list of displayed activities. The Search field filters activities based on the string value entered. To search for an activity, simply input the name of the activity or text found in the activity's description. This search is conducted across all activities, irrespective of the selected category. If you want to broaden the search to a category of activity, you can use the Category drop-down list to locate activities sorted by category.

Activity Categories are set by the value of the activity's ToolboxPath property, which is accessible from the Toolbox Properties Tab when an activity is open in the Document Space. This property can be any string value that helps you to logically categorize the activity.

When searching for activities, it's important to remember that an activity must be published before it becomes available in the Activity Toolbox. Published activities are stored in the EmpowerID Identity Warehouse and are synchronized with Workflow Studio only when the Activity Toolbox is updated. If you are working in a team environment, each team member must also update their Activity Toolbox.

Activities are exclusively used with Workflow Designers and Activity Designers, so Workflow Studio only loads the full activity toolbox the first time you create or open a workflow or activity. When you publish an activity, Workflow Studio may prompt you to update the toolbox. If you're working with other team members who are also using Workflow Studio to develop workflows and activities, it's recommended to update the Activity Toolbox periodically to ensure your activities stay in sync with the rest of your team.

 

The Solution Tab

The Solution Tab offers access to the Code Tree, presenting a logically organized tree view of files associated with the object currently open in the Document Space. It also provides placeholders for adding new files, such as custom methods and classes. Expanding a node in the Code Tree lets you view the project files related to that node and access relevant commands, enabling you to add new assembly references, namespaces, support classes, and embedded resources to the project.

 

Right-clicking on a node in the Code Tree allows you to access commands relevant to the files represented by that node, as well as the type of object open in the Document Space. The following table shows the commands available from the Code Tree for workflow applications:

Command

Function

Command

Function

Add Reference

Adds assemblies, namespaces, and Web services to a solution. New references are added to the appropriate node in the Code Tree.

Add as Snippet

Creates a code snippet from C# code in your project and saves it to the snippets library for ease of reuse.

Add Code Fragment Snippet

Creates commonly used blocks of C# code that can be injected into a project as needed.

Built-In Method Overrides

Adds a selected overridable method as a custom method to your project.

Add New Event Handler

Creates an event-handling method that responds to a specified user event.

Add New Custom Method

Adds your own methods to a project.

Add Visual C# Source Item

Adds support classes for use in your project based on the Workflow Studio object model.

Add New Business Rule

Adds a Business Rule to a workflow or activity, determining what should occur in a given workflow based on the rule's input/output.

Add New Binding Type Converter

Adds a type converter to a workflow or activity to convert values between data types.

New Folder

Adds a new folder to the Code Tree.

Add Embedded Resource

Searches for a file on your computer or the network and adds it to your project.

Remove All Embedded Resources

Removes all embedded resources from your project.

Retrofit Embedded Resource Prefix

Adds a prefix to an embedded resource.

Add Source from File

Searches for and inserts a .cs file into your project.

Rename Item Support Class

Renames a Support Class file that you have added to your project. You must right-click on the particular file in the Code Tree.

Delete Item

Deletes a selected item from the project.

 

The Properties Tab

The Properties Tab in Workflow Studio displays the browsable properties of the currently selected object or document in the Document Workspace. This tab provides a convenient way to view and edit the properties of the selected item directly without having to navigate to another interface. The property grid typically displays properties in a two-column layout, with the property names on the left and their corresponding values on the right.

For example, if you select the "SelectTargetGroups" activity within a workflow, the Properties Tab will show all the relevant properties for that activity, such as its name, description, execution order, input and output properties, and any other configurable settings. You can modify these properties directly in the property grid, and the changes will be applied to the object immediately.

The following image shows the property grid displaying browsable properties for the SelectTargetGroups activity.

The visibility of a property in the property grid can be controlled using the Browsable attribute. When you create dependency properties for activities, you have the option to choose whether to display the property in the property grid by selecting or deselecting the "Show in property grid" checkbox. This allows you to determine which properties are easily accessible and editable within the grid.

It's important to note that public properties without the Browsable attribute are displayed in the property grid by default. If you want to hide a public property from the property grid, you can explicitly set the Browsable attribute to false. This can be useful when you want to limit the visibility of certain properties to maintain a clean and organized property grid, or when you want to prevent users from accidentally modifying properties that should remain constant throughout the workflow design process.

For more information on the relationship between properties and activities, see Common Workflow Activities.

IN THIS ARTICLE