Skip navigation
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.

     https://bmcsites.force.com/casemgmt/sc_KnowledgeArticle?sfdcid=000117068

 

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?

     https://bmcsites.force.com/casemgmt/sc_KnowledgeArticle?sfdcid=000112969

 

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
-XX:+UseParallelGC
-Djava.awt.headless=true
--illegal-access=permit

 

 

User-added image

 

 

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

 

https://bmcsites.force.com/casemgmt/sc_KnowledgeArticle?sfdcid=000010914

 

 

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"
compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/x-javascript,
application/javascript,application/xml,application/extjson,x-font/otf,application/x-font-woff,x-font/ttf,x-font/eot"

 

 

 

 

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

Filter Blog

By date:
By tag: