Skip navigation
Share This:

Hi Everyone, I am back to the most recent and hot topic in the recent release 20.20.01 which is round-robin and oAuth support. Eric already made an announcement of these new features in FootPrints 2020 Release 1 now available for download.


I will give some brief insight into the features.


Round Robin :


As we already know the Round-robin feature was there in Footprints version 11.X and now we have implemented the feature in Footprints 20.20.01. Round-robin automatically assigns a ticket to the next agent added to a team based on which agent was assigned the previous ticket.



Assume that there are four agents (Agent1, Agent2, Agent3, and Agent4) in team Footprints Support. When you have enabled Round Robin and tickets are assigned to team Footprints Support:

  • The first ticket is assigned to Agent1, the second ticket to Agent2, the third ticket to Agent3 and the fourth ticket will assign to Agent4.
  • The fifth ticket is assigned to Agent1, the Sixth ticket to Agent2, and so on.


  1. In the Round Robin section, select the Enable Round Robin checkbox to enable the Round Robin feature for the team that you are creating.
    If you do not select the checkbox, the Round Robin feature is disabled.
  2. Select the Use agent availability based on Personal Work Schedule checkbox to assign tickets based on the availability schedule of agents, such as work schedule, vacation, and others.



Assume that the new ticket is supposed to be assigned to Agent2, but Agent2 is on vacation. The new ticket is assigned to Agent3.

  1. Select the Use agent availability based on Personal Appointments checkbox to assign tickets based on the personal appointments of agents, such as conference calls, meetings, and others.



Assume that the new ticket created at 10:10 A.M. is supposed to be assigned to agent3, but agent3 is in a meeting from 10:00 A.M. to 11:00 A.M. The new ticket is assigned to agent4.



How the round-robin feature works in Footprints.


Whenever an item is assigned with a team (via Business Rules/manual assignment/Import), we traverse through the list of users -

  • If there are no users in the team or there are users, but no one is available as per the calendar, we ignore Round-Robin and assign the Item to a selected team
  • We identify which user is available from the list of users in the team as per his availability mentioned in the Calendar appointments and assign the ticket to the user and move the pointer to the next user so that the next ticket can be assigned to him.


OAuth settings for Footprints:


OAuth is an “open standard” authorization framework that enables applications to obtain limited access to user accounts without the need to share the credentials with the application.  It is a standard for “authorization” not “authentication”. It is commonly used as a way for Internet users to grant websites or applications access to their information on other websites without giving them their passwords.



OAuth provides clients ”secure delegated access" to a server’s resources on behalf of the resource owner. OAuth defines a process through which a resource owner can provide access of his resources to a third-party without sharing his credentials. This access is granted in the form of “access-tokens” issued by an “authorization server” with the approval of the resource owner. In this way, we have four roles in an OAuth framework.


Below URL shows how to create and register an app in the Microsoft Azure portal.


Register a new application using the Azure portal

  1. Sign in to the Azure portal using either a work or school account or a personal Microsoft account.(Admin credentials)
  2. If your account gives you access to more than one tenant, select your account in the upper right corner. Set your portal session to the Azure AD tenant that you want.
  3. Search for and select Azure Active Directory. Under Manage, select App registrations.
  4. Select New registration.
  5. In Register an application, enter a meaningful application name to display to users.
  6. Specify who can use the application, as follows:
    a. Accounts in this organizational directory only (We have used this for testing env)
    b. Accounts in any organizational directory
    c. Accounts in any organizational directory and personal Microsoft account
  7. In the Redirect URL (Optional)
    Select Web and Keep the other textbox empty
  8. Click on Register button



Note: Once the app is registered, select the created App and goto Certificates & Secrets -> Client Secrets and create a new secret and copy the secret data. This is very important. The client secret is only shown once. Remember to copy the client secret.

  • We need to copy the Client id, Client secret, and Tenant id.



Now got API Permissions and add the below permissions.



The final list of permission should be as shown below.


Exchange -> EWS.AccessAsUser.All being the Delegated Permission and the rest are


Microsoft Graph -> Application level permissions.



Note: Remember to click on “Grant admin consent for <Organization Name>” and click on yes for admin consent. (We need to log in as admin credentials to grant consent)

Now copy client id, client secret, and tenant id in the footprints application.




Now go to the footprints.

  1. In the Incoming Email section, click Add.
    The Configure Account dialog box appears. All fields are required.
  2. Select the Enable OAuth checkbox to enable it. In the Email Account fields, enter the user ID, password, and email address of the account.
    1. Enter Client ID, Tenant ID, and Client Secret.
    2. Enter the email address of the account in the Email Address field.
  3. Click Save.




Thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Hello Everyone, In recent months, I have been publishing blogs for FootPrints, reflecting the kinds of queries we are dealing with in support, After going through the data from problem management, We have decided to talk about searches in Footprints.


FootPrints offers multiple ways to find specific records in the database. You can search on keywords, ticket numbers, date ranges, and so on, as well as across containers (workspaces, CMDBs, and so on). Wildcard characters can be used, partial word search is supported, and you can limit the search to specific items such as change requests in a workspace. For more information about entering search values


Search options include:

  • Quick search: Search by entering a keyword, title, ticket number, or other criteria. This option is available from any page in FootPrints. You can also search across containers by selecting specific containers in the Select item(s) list.
  • Advanced search: If authorized, you can define complex searches on all fields and criteria. Advanced searches are an option in the Select item(s) list.
  • Saved searches: If authorized, you can save advanced search criteria and make them available to view in Dashboards and as views. Only users who are authorized to see the queried data can see the results.


You can search for words and phrases contained in almost any field, search in one container or in multiple containers, and search for specific tickets by ticket number.

Only fields that are designated as Searchable by your administrator can be searched using the Search field that appears on any Home page that lists records. The Searchable option is available for text, selection, and hyperlink field types. For example, you cannot search Created By or Updated By fields by entering search values in the Search field, but you can still search these fields and most others by selecting the Advanced Searches option in the Search menu.


You can use the Advanced Search feature to search for containers using any combination of fields and advanced criteria. The Advanced Search page contains a combination of fields where you can enter search strings and select criteria to create a search filter. You can create complex search queries and preview the results. When a search returns the desired results, you can save the criteria for later use. Until you save a search, your criteria are not saved and you can change settings and preview the results until you have achieved your goal.


Another advantage of creating saved searches is that you can select them when creating report parameters. By refining your search parameters in the Advanced Search, you can be sure that the related reports will include the data you need.


Saved searches can be used in report definitions. Long searches that are used in reports might impact system performance. This issue is especially true for shared searches that may be run by several users at once or that run in the background by reports.

To create searches that work efficiently and reduce the potential impact on performance, review the information in the Search tips topic for guidance in defining search terms. In particular, avoid slow-performing searches such as:

  • Advanced searches that use the Keyword option and include double wildcards or numbers.
  • Equal searches that use double wildcards.

When creating searches that you plan to share with other users, avoid including fields and data that those users are not authorized to see.


Searching with wildcards

You can search with a wildcard from any Home page as long as the wildcard character is at the end of the word. However, in address books, you can also search using wildcards in other positions.

The Search function looks at the beginning of words to find a match. This means if you add an asterisk (*) after your search term, the search is quicker than if you add an asterisk before or within your search term. Where you place the asterisk also affects which words are returned.



If you search for ball*, the search returns ballpark but not football.


Searching for multiple values

When searching for multiple values, you must separate the values with spaces or commas, which function as OR operators. You can also use the AND operator to create search terms.



If you search for password OR login, the system returns any record that includes either value.

If you search for password AND login, the system returns only records that include both values.


Searching for dates

You can search for dates only by using advance search. When you search for dates, the date that you enter (for your selected time zone) is transformed into UTC format and saved. When a user in another time zone opens the same Advanced Search they see the same date value but interpreted for their time zone.



If you create a ticket at 1:00 p.m. in Kiev (Eastern European Summer Time or UTC/GMT +3 hours), and the next agent to work on the ticket is in Pune (India Standard Time or UTC/GMT +5:30 hours), that agent will see the value in the Created On the field as 3:30 p.m. IST.



Searching for contacts

When you search from the Address Book Home page, an additional operation Equals is available. If you use the default operator Contains to search, any contact record that includes the search string in any field is returned. If you use the Equals operator, only exact matches are returned. Wildcard characters are taken into account but partial matches are not returned. You must enter the exact value that is in the system.

To search with wildcards for all contacts that include a certain value, insert asterisks to represent the unknown values. You can use an asterisk before, after, or within a search string.




If you search for ir* using the Equals option, the system returns any record that includes 'ira' and 'irina'.

If you search for "ir*"' (including the double quotes) using the Equals option, the system returns any record that includes "ir*" (with the double quotes).


Searching for contacts with included spaces

To search for a term that includes spaces, place double quotes around the entire string.

When you search for terms that include numbers within an alphabetical search string, use the Contains option to find the term within other strings (the term and its forms) and the Equals option to find only exact matches for the term (not strings with an additional character before or after the term).


Double quotes and wildcard characters


Because all characters enclosed by double quotes are treated as literals when you use the Equals option, if your search term includes an asterisk, the system treats the asterisk as an alphanumeric character and tries to match it. No variations of your search term are returned.




If you search for Jan* using the Contains option, the wildcard character (asterisk) is processed as a wildcard character and only exact matches are returned. See the following table for specific examples.



Not found

Jan GregJ*n Sm!th
Jane BaileyJohn Dicen

If you search for J*n using the Equals option, the returned record list is slightly different. See the following table for specific examples.




Not found

John DicenJane Bailey
Jan GregJ*n Sm!th

Searching for ticket numbers

When you search for ticket numbers, select the ID operator and type only the number in the Search text field, or you can include the prefix and a dash before the ticket number.



If you search for 12345, the system returns all records that include those numbers. It returns only records with this particular number and any prefix. Records with ticket numbers that have more characters (or less) are not returned. For example, PR-1234567 will not be returned.

If you search for INC-12345, the system returns only records that include that particular number and may return only one record. Records that do not exactly match the search term are not returned.


Thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Hello Everyone, In recent months, I have been publishing blogs for FootPrints, reflecting the kinds of queries we are dealing with in support, After going through the data from problem management, We have decided to talk about service analytics reporting in Footprints.


                                                                                                         Service Analytics best practices

1. Verify that frequently executed Service Analytics Reports are configured in an optimal way. It is always preferable to use a saved search to filter the set of content items that a report will analyze to the smallest set necessary. If you do not specify a saved search, all container items will be loaded into the report even if only a subset is shown because the filtering will be done in the report itself. This can cause a relatively simple report to be much slower than filtering using a saved search first and then using the report filters only for final adjustments to the shown data.


2. Verify that any widgets that load a chart from Service Analytics are not referencing slow loading reports. Having several chart widgets all executing large reports at the same time can cause a significant load on the application server CPU.


3. In-Service Analytics, after adding a new field to a report and clicking on “Apply Changes” the report page may turn blank (i.e. not show anything.) The reason may be that in the communication with the FootPrints server, the size of the HTTP headers has been exceeded. To address this situation,


         AWhen Accessed via Tomcat-based URL:

               The size of the HTTP Header Size may have been exceeded. To address this situation, update the value of the maxHttpHeaderSize parameter in the Tomcat's server.xml. First set the value to "8192". If the problem persists then try increasing the value to "16384", "32768" or "65536".


               Note that increasing the maxHttpHeaderSize will allocate 2 buffers (one for input and one for output) of the specified amount of memory (i.e. 8kb, 16kb, 32 kb, or 65kb) per connection. The communication with the server will use up a bit more memory in this configuration but considering that connections are usually short-lived it should not be of a  significant issue.



         B. When Accessed via IIS-based URL: This can be caused by the 'Request Filtering' module in IIS, when using IIS Integration.

               1. Open IIS and expand Sites -> Default Web Site

               2. Open Request Filtering from the feature panel.

               3. Click on Edit Feature Settings… link in the Actions panel to the right.

               4. Change the value of “Maximum URL length” and “Maximum query string” to be 65536.

               5. Click 'OK'.

               6. Restart IIS.


4. How to debug Service Analytics errors in FootPrints 12  :

When working with Service Analytics in Footprints 12, errors may occur, such as when deleting a Service Analytics report. The steps below detail a method of enabling debugging for Service Analytics in order to determine the nature of the error. Access to the server where FootPrints 12.X or 20.X is installed is required for this process.



5. The data for Calculated Field within Service Analytics is not displaying or appears to be incorrect. How do I correct this? (Rebuild the FootPrints 12 Datamart)

There are exceptions in the Footprints log showing the datamart incremental load is failing.


The Calculated Field's within Service Analytics uses calculated data that is stored in the Datamart. Occasionally the data for Calculated fields can stop displaying and the datamart may need to be rebuilt. Below are steps that explain how to do this:


6. In version 20.19.03 and above, Functionality added which gives the ability to export grid contents in CSV and HTML format (users no longer need to create reports for simple ticket data extract).



7.  If data for calculated fields shows 0.00 value in reports:


Make sure to turn on Time Tracking and add required status in Life Cycle.

1. Go to Administration-->Main-->Workspace-->Ticket Item

2. On the left side Go to Time Tracking and click on the radio button to turn it on.

3. Go to Administration-->Main-->Workspace-->Ticket Item

4. On left side Go to LifeCycle-->add all status under the 'Count For Time' section.


Now create a custom report and select any of the calculated fields, this show gives the non-zero value.


8. How to create a formula to pull the Assignee name or Team Name from the Assignee field?

When setting up a report to use these formulas, include the "Assignee" field in the report.  You can hide this column later after the formulas are created.

Note:  You may need to change the formula field names to match your field names.

Note:  These formulas are designed for Assignee type fields that allow only one assignee, with or without teams.


Assignee Name when not using teams:


Example: jsmith (John Smith)

Results: John Smith


Assignee Name when there is no open parenthesis "(" on some records:


Example: Infrastructure.jsmith(John Smith)

Results: John Smith

Example: Sally Jaynes

Results: Sally Jaynes


Team Name only, checking for team name with "." search:

IIF(INStr([Assignees],".")=0,"No Team",(MID([Assignees],1,(INStr([Assignees],".")-1))))

Example: Infrastructure.jsmith(John Smith)

Results: Infrastructure


The formulas used the following functions, INSTR and MID to gather the data to pull the name from the text.

Using the "InStr" function to look for the position of the "(", ")", and "." characters in the [Assignees] field.

This information is used to set the starting point of the characters to be extracted using the MID function, and the length of the name.  The team name always starts as the first character in the Assignees field.


Thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Hi Everyone, Today we are going to discuss the final blog on business rules, As we all know the business rule is the never-ending topic so if you feel we need anything to add, please comment on the blog so we can improve or add the topics.


We used to get a lot of questions on How to setup Dynamic Linking data copy for tickets in FootPrints 12 from workspace A to workspace B. so let's find the below steps:


Example: Workspace A= IT Helpdesk, Workspace B=Pricing, We will create a ticket under IT helpdesk and then clicked on action tab> Copy> Select destination of the container i.e Pricing and then save. Now update a ticket of the IT helpdesk filed and that will be copied automatically on Pricing ticket.

In Workspace A


1. Create a "Related Tickets (Dynamic)" relationship in the item to be used. 


User-added image


2. Edit the item itself and select Fields.   A new checkbox/boolean field. "Updated by User" to identify a user edit will be needed.  The permissions will need to be Optional, but the field will not need to be added to the form.

3. Create the first after save business rule, "Set Flag Updated by User", in the item to check the "Updated by User" field whenever a user edits a ticket.  The following details are needed.

  • Trigger: After Save / On Update by User
  • Criteria: field Updated by User equal to [false]
  • Actions: Set field value: Set field value Updated by User to [true]

User-added image



In Workspace B


1. Create a "Related Tickets (Dynamic)" relationship in the item to be used. 

User-added image

2. Edit the item itself and select Fields.   A new checkbox/boolean field. "Updated by User" to identify a user edit will be needed.  The permissions will need to be Optional, but the field will not need to be added to the form.


3. Create the second after save business rule, "Dynamic Linking", that will run on the linked tickets and copy the user's changes. Also the action to Copy all Fields From Linked only copies data for the fields with the same name and data types.

  • Trigger: On Linked Item Update : [ Related Tickets (Dynamic) : Related Ticket ]
  • Criteria:
    field: Generic Linking Any [ Related Tickets (Dynamic): Related Ticket ]
    field: Updated by User equal to [ true ]
  • Actions:
    Set field value: Set field value Copy all fields from linked
    Set field value: Set field value Updated by User to [false]


User-added image


Note: Save each rule, then Save & Publish Both workspaces.

Tips and tricks for Business rules:

Generic linking conditions

The following conditions are available for Generic Linking type rules:

  • Any
  • Every
  • Participates-in


For the Any and Every condition, operators are selected for applicable fields. "Participate in" means if there is a link to a subtask or another item type, apply the rule.

Make sure to set the trigger to run when a specific update occurs.

Defining rules to execute an external action:

You can define rules to run an executable program or script and perform other actions external to FootPrints—actions that you can also reach from a command prompt. The action simply runs the specified program or script; it does not automatically interact with the operating system’s command interpreter or shell.


If the action that you want to be performed requires a command interpreter (for example, to run an operating system command or redirect standard input/output), the action must explicitly call the appropriate command interpreter for your operating system (for example, cmd or command for Windows or sh for Linux).


An example of an external action that requires a command  interpreter: cmd /c “ipconfig > ipconfig.txt”. . (Full paths were omitted here for brevity.)

An example of an external action that does not require a command interpreter is: myprogram.exe.


NEVER delete Workflow business rule from the business rule:


We have seen lots of customers deleting workflow business rules from the Business rules section instead of workflow-business rules. This causes an issue while publishing workspace as a business will not completely remove. We always recommend customers if they want to remove any rule from workflow then it should be from the workflow business section only.


Renamed or deleted fields cause errors:

If you rename or delete a field used in a business rule, errors are generated when you next publish the container that includes that rule. To correct this error, you must modify the part of the rule that included the "missing" field. You can select the correct field (if the field was renamed) or remove the statement that refers to the field (in either case).


Thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Hi Everyone, As discussed in the last blog, We will continue with the topic of business rule, In this topic, we will cover On-screen and On-Page load triggers.


Understand the processing of business rules having After Save trigger:

This topic explains how the system processes business rules having the After Save trigger.

  • The following diagram illustrates how After Save rules process when a Ticket is created manually, through email, through web services, or through another automated process.



  • The following diagram illustrates how After Save rules process when a Ticket is updated manually or updated by a rule in a previous round.




When the On Update By User Or Rule option is selected instead of the On Update By User option, if the last update was made by a user and not by a rule, the system performs around to evaluate the criteria of all such rules. After the system has gone through all the rules once, the system stops, because there would be no further updates by a user, but only by rules.



Consider a scenario where there are 10 rules. Out of the 10 rules, five rules have the On Create option and five rules have the On Update By User Or Rule option.

When you create a new ticket, the business rules are processed. If one of the rules containing the On Update By User Or Rule option is evaluated, which results in updating a ticket, the system checks all the rules one by one again. The system stops this process only when no updates are made to a ticket.

If one of the rules using the On Create option runs and causes an update, then a new round of rules will run and all rules will be evaluated again from top to bottom. Only those using the On Update By User Or Rule option will possibly run in the 2nd or subsequent rounds.


Triggering sequence considerations:


You can have rules defined and associated with different parts of your workflows (states, transitions, groups, and entire workflows).

The order in which the system processes rules depends on the internal ordering of rules based on triggers and on administrator-defined ordering.

It is important to order your rules properly, taking into account how the rules relate to each other.

Triggers are processed in the following order.

On UpdateOn Create

1. On Exit (for State)

1. On Enter

2. On Exit (for Group)

2. On Create as part of a copy/move operation

3. On Transition

3. After Save (On Create)

4. On Enter (for Group)


5. On Enter (for State)


6. Updated in State or Group (for State)


7. Updated in State or Group (for Group)


8. Updated in any State


9. Updated in any Group


10. On any Transition


11. After Save (On Update By User Or Rule)


For linked records, the system processes rule in production as shown in the following table. In addition, Administrators should set the order for rules attached to the same part of a record definition. The best way to update the triggering order is on the Business Rules page. View the rules in the Expanded View, expanding the nodes to see the rules you want to re-order and then change the settings in the Order column.


OperationOn Source ItemOn Linked Item
Linked item create in state A as a result of copying
  1. Upon Item Copy
  2. On Linked Item Create
  1. On Enter (on A)
  2. On Create as part of a copy/move operation
  3. After Save (On Create)
Linked item update in state A and group G
  1. On Linked Item Update
  1. Updated in State or Group (on A)
  2. Updated in State or Group (on G)
  3. Updated in any State
  4. Updated in any Group
  5. After Save (On Update By User Or Rule)
Linked item update with transition A-B and in group G
  1. On Linked Item Update
  1. Updated in State or Group (on A)
  2. Updated in State or Group (on G)
  3. Updated in any State
  4. Updated in any Group
  5. After Save (On Update By User Or Rule)
Linked item update with transition A-B and between groups G-H
  1. On Linked Item Update
  1. On Exit (on A)
  2. On Exit (on G)
  3. On Transition (on A-B)
  4. On Enter (on H)
  5. On Enter (on B)
  6. On any Transition
  7. After Save (On Update By User Or Rule)




On-Screen business rule:

Select On Create, On Update, or both. This trigger is useful for assigning tickets based on category, setting field values based on other field values, giving the user informative messages based on selections they made, or changing field visibility as a user fills out a form.

Ex. Auto Assignment


On-Page Load

Select On Create, On Update, or both. This trigger is useful for defining default values, identifying assignees, or changing field visibility immediately when the page loads to hide fields that don't pertain to the situation or maybe revealed later while the user fills out the form. When you apply a quick template to a record, the record page refreshes and the business rule is fired based on the selected trigger.

Ex. Default Assignment


Best Practice for On-screen and On page load rules:

  • On-Screen business rule with On Update trigger loops and the actions are performed multiple times. Make sure that the defining criteria set on the business rule do not match after an Action has been triggered.  An action should change a value in the ticket so the rule no longer executes against that ticket.
  • Our recommendation for On-screen or On-Page load business rule is to apply of dropdown fields. If we apply On-screen rule on a simple text field with large text in it, It will give you performance issues. We should avoid applying On-screen business rule on a single line or Multiline text field if the value is not pre-populated.
  • When a field is used as Criteria in an On-Screen business rule, the rule can not apply a 'Set Field' action to that field.



We will continue to publish the next blogs on the business rule so we get more insights. So stay tuned and thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Hello Everyone, In recent months, I have been publishing blogs for FootPrints, reflecting the kinds of queries we are dealing with in support. I will continue to publish those around the 20th of each month. This time we will be discussing more on the very important and most exciting topic Business rule.


Any time that you want the system to take action on a ticket or other item based on specific criteria, you can create a business rule. For example, you can create a rule that changes the priority of a ticket based on the subject of a request or the title of a ticket. You can also set up email reminders and set field values using formulas. You can create business rules for any type of container except address books.


A rule consists of three parts:

  • The trigger that defines a frequency or event causes the criteria of a rule to be checked.
  • Criteria that determine if the action should be performed (such as "Title contains 'Printer'" or "Cost is greater than 100"). Multiple criteria can be defined and are connected by AND or OR operators.
  • Actions that are performed when the criteria are met. Multiple actions can be defined and are connected by the AND operator.


So in the blog, we will discuss the Time-based rules and Escalation rules.


Defining time-based rules:


You can define rules that run at specific intervals and perform an action based on the results. For example, you can define a rule to run every day and check for tickets that resolved at least 14 days and status is already not equal to close.



Best Practice for Time-based rules:

  • Design time-based rules to not update a large number of tickets at the same time.
  • When you define a time-based rule, consider how the rule might affect the application data in the production instance.
  • If you have an existing time-based rule that might impact a significant number of tickets, consider defining additional business rules to achieve the same end result. If too many tickets are updated at the same time during the business hours, it might cause performance issues.
  • If possible, schedule time-based rules to run outside of business hours, especially the ones that might impact a lot of tickets. Updating too many tickets at the same time can cause performance problems for other users of the system.
  • Do not schedule multiple time-based rules to run at the same time.
  • Ensure that you configure the right schedule to run a business rule. For example, do not configure to run a business rule every 15 minutes if you can meet the business need by running it once a day.


Additional considerations:

  • Rules are based on the time zone of the system server.
  • Hour values are expressed in military format, that is, 1600 hours represents 4 p.m. However, 16 hours represents 16 hours from the start of the work schedule day.
  • Triggers scheduled for every other day or every other week, start fresh on the first day of the month. In production, this means that the first report of a month may occur sooner than expected based on the last report of the previous month. For example, if you run a report every other day and the last report runs on the last day of a month, the next report will run on the first day of the next month because the cycle begins fresh every month.


Defining Escalation rules:


Escalation rules can be applied in several ways: when a ticket is created or edited, after a ticket has remained open or unedited for a specified amount of time, or both. When defining escalation rules, you can base them on age or status changes or on other fields, or create special conditions (such as configuring a Generic Linking condition). For example, Once all Sub-task tickets are resolved, the Master ticket will resolve automatically.



Recurring age-based escalations are allowed. Each escalation will only run once when the ticket sufficiently ages. For example, you can create separate age-based recurring escalation rules for 5 minutes, 10 minutes, 1 hour, 2 hours, and 1 week, and each escalation rule will be applied only once to a ticket when it is sufficiently aged for that rule. You can see the (Image 1) for this example.


To use follow-the-sun criteria


For any business rule, you can specify which work schedule to use such as the Normal Work Week schedule. Rules that are assigned a schedule are not triggered outside of the work hours defined for that schedule. You may find that a rule has not run for tickets that arrive after the normal work weekends or tickets that stay in the Created state after normal work hours end.


To use follow-the-sun criteria, select Run any time in the Schedule Type field.


Configure the options for the business rule as needed to trigger the required action.




As the business rule is a vast concept and we need to focus on multiple areas, We will be publishing next blogs on the business rule so we get more insights. So stay tuned and thanks for reading the article. Please rate the blog and add comments to share your experiences.

Share This:

Welcome back to the first blog of the new year 2020, and this time I will be discussing the tips and tricks to improve the performance of the Footprints application. Below are the points



Influence of Time-Based Rules against a large data set:


Consider increasing the number of threads available for processing Time-Based Rules if the total number of Time-Based Rules that execute at the same time is large or there are many Time-Based Rules that perform complex tasks like creating new tickets. The number of threads available for processing Time-Based Rules can be configured in the Administration Console under System Management / System Settings / Miscellaneous. The default value is 10 threads and should be sufficient for typical deployments. Increasing this number does not necessarily guarantee that all Time-Based Rules will be executed faster; it depends on how many rules actually end up executing concurrently and their complexity.


Depending on when specific Time-Based Rules are set up to run, the number of rules whose execution schedule happens to coincide is divided amongst the number of threads specified. For example, if a deployment has 3 workspaces with a total of 40 Time-Based Rules, and at a given time 30 of those rules need to execute then 30 rules divided into 10 threads result in 3 rules executed in each thread. The number of threads that can be specified depends on an operating system, platform and available hardware resources (i.e. CPUs and memory) allocated to the FootPrints application server (i.e. Tomcat.)


Use caution when increasing the number of threads for it may in turn negatively impact the performance of other parts of the application if hardware resources allocated to the FootPrints application server (i.e. Tomcat) are insufficient to deal with the increased processing load.


Introduce an archiving process as a good practice:


In version 12.X/20.X, all business rules; Time-Based ones included; are executed for all existing tickets in a workspace. The automated process is only checking for each and every ticket, if it is compliant with the business rule's criteria you have set in place. If you do this against a handful of tickets, let's say a few hundred, then no problem at all, the system can cope with it.


If you have thousands, tens of thousands, or even hundreds of thousands of tickets in a single workspace, then you start having a performance problem and sometimes cause delays in other rules to be applied to your tickets...


For time-based ones, this happens every XX minutes (it is recommended not to set below 15 minutes) and takes a really long time.

We need to archive the older tickets.


Tickets will remain accessible, but we stop the automation on them.


Please find below the article for the archive process.

How to create an archiving process for Footprints 12.1.X - 20.XX ?




Below are some pointers which need to check-points for better performance:


1.) Has your SQL server been configured as per this article? The setting shown in the article is required for FP to operate optimum condition. Failing to this setting will lead to SQL deadlocks.


2.) Did you optimize your Antivirus/Malware Tool not to interfere with Tomcat and Footprints app folders and files? If yes then we need to exclude and Tomcat and Footprints folder from      Antivirus/Malware scanning. It is not recommended though to exclude the attachment folder.


3.) Did you alter/customize your Tomcat server.xml? Or do you use the out-of-the-box configuration?

     How to configure Tomcat for FootPrints 12.X and 20.X onwards


4.) Did you optimize your java options? I assume you still use the out-of-the-box configuration?

     How to install Java for usage in FootPrints Service Core 12.X and 20.X onwards


5.) When was the last time the database was properly backed up and re-indexed?


6.) I assume the instance is virtualized?  If so, is the hardware/hypervisor under strain in memory and disk IO? The FootPrints application server by default is configured to use up to 450    connections. The database server and application server must be configured accordingly; otherwise, performance will be affected. Note that by increasing the number of connections on the database server, the database host will experience increased CPU, memory and I/O activity so make sure the hosting hardware adequately supports the additional processing load.


7.) Are you sure that the CPU allocated to the server at least 2GHz or higher?  Consider that system requirement minimum requirement mentioned in the article, for better-performing application and database server it is crucial to understand that having more CPU is more beneficial.

       System requirements - Documentation for BMC FootPrints Service Core 12.1 - BMC Documentation

Share This:

          As a member of the Customer Support Team, We are starting a new blogging section for trending topics in each month for Footprints, And that's the reason I thought it would be good to look at what has been trending over the last couple of months since we released of supporting OpenJDK and Tomcat 8.5. I used this data to identify areas and I would like to share some tips I’ve learned from working closely with our Footprints user base.


Install OpenJDK and Tomcat 8.5 for an upgrade or a fresh install of Footprints 20.XX


The following Apache Tomcat versions are supported.


FootPrints VersionTomcat Version
FootPrints 20.18.03 , 20.19.XApache Tomcat Version 8.5.x (64-bit)


Footprints and supported JAVA versions:


FootPrints VersionJava Version
FootPrints 20.19.03OpenJDK 13.0.2
FootPrints 20.19.02OpenJDK 12.0.2
FootPrints 20.19.01OpenJDK 11.0.2


How to install OpenJDK for usage in FootPrints Service Core 20.19.X onwards:



  • Open a command window with admin rights and run the following commands to set the JAVA_HOME and PATH environment variables to point to the correct Java Version

                   setx -m JAVA_HOME "C:\Progra~1\Java\jdk-11.0.2"          

                   setx -m PATH "%PATH%;%JAVA_HOME%\bin";           


Note :-The SETX -m PATH command does not work correctly if the PATH has more than 1024 characters. If you have a larger path you will need to make sure that the path is correct by editing your entire path. Set JAVA_HOME environment variable and add it to the path variable too (make sure in Path variable the location is added at the beginning)

Install and Configure Tomcat 8.5 :


Post-installation steps to configure Tomcat by following these steps:

  • Go to the Tomcat installation folder e.g. “C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin”
  • Start the Tomcat Service Wrapper (Tomcat8w.exe)
  • Select JVM from C:\Program Files\Java\jdk-11.0.2\bin\server\jvm.dll.
  • The options that you should set and the values they are set to depend on your version of Java and the application server that you use (check below table)
  • In the Initial memory pool box, enter a value of 4096.
  • In the Maximum memory pool box, enter a value not more than 80% of your maximum server memory.


FootPrints VersionJava OptionsJava 9 Options
FootPrints 20.19.X-Dfile.encoding=UTF-8



User-added image



For all advanced configuration settings please go through the below article.



Some issues and troubleshooting steps:


1. “unable to find the Catalina/localhost folder” FootPrints 2018 Release 3 requires that administrators manually upgrade Tomcat to version 8.5  If the Tomcat service is not started immediately after installation, the Catalina/localhost folder will not be created under the /conf folder. The absence of the said folder would lead to the failure of the FootPrints upgrade/install. If you have attempted the upgrade and it failed, the subsequent attempts would fail, since the installer attempts to “move” the footprints#servicedesk.xml (or footprints.xml, depending on the name you had given) file. Due to the initial failure, this file will not be available in subsequent attempts. In this scenario, please follow the steps to install Tomcat 8.5 and copy the sample footprints#servicedesk.xml file, with modifications to suit the current setup (installed location, application name, etc) File is attached below.



2. Tomcat service must be configured to use Local System service account

  1. Click Start, point to Administrative Tools, and then click Services.
  2. Right-click on Apache Tomcat service, and then click Properties.
  3. Click the Log On tab, select Local system radio button, and then click Apply.
  4. Click the General tab, and then click Start to restart the service.


User-added image



3. High HTTP traffic and performance issue.


Sometimes you may notice that there is high HTTP traffic, and you may determine that it's because the server is attempting to return high volumes of data back to the browser. In this case, if you are running Tomcat, you have the added option of turning on compression at the application server level. To enable compression adding following attribute in server.xml file in the Connector port="8080"


compression="on" compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"





Thanks for reading the article. Please rate the blog and add comments to share your experiences.

Filter Blog

By date:
By tag: