Listing forms, filters and escalations by using the Like Operator Object Identifier utility
Use the LIKE Operator Object Identifier and Repair Utility to locate and report or repair the Run If qualifications in forms, filters and escalations where the LIKE
operator is used without a wildcard.
The wildcard symbols are interpreted as wildcards only when they are used with the LIKE operator. Otherwise, they are interpreted literally. Conversely, when the LIKE operator is used without the wildcards, the LIKE operator functions like an Equal To (=) operator. This utility provides you with the list of objects and repairs the Run If qualifications. As a part of post-deployment tasks, you must use this utility to check and correct those objects. Otherwise, you might lose your customizations or experience breaking of business logic.
The utility scans the Run If qualifications in all filters and escalations. It will also locate the application form fields that have qualifications in them using an input file that describes the form, qualification field, target form field needed to locate and parse the qualification.
For example, a Run If qualification in a filter may look like this:
'Short Description' LIKE "BMC Support"
This utility will identify this filter and optionally repair the qualification to this:
'Short Description' LIKE "%BMC Support%"
Before you begin
- Make sure that you navigate to the artools directory and then set the JAVA_HOME path to <Java_Installation_directory>\Java\<jre version> in the Command prompt.
- Make sure you log on to BMC Communities and download the objectswithoutwildcardinlike.zip file on your system.
To run the utility
Navigate to the directory where you have downloaded the objectswithoutwildcardinlike.zip file and then extract the ZIP file.
At a command prompt, run the utility by using the following command:
For example:objectswithoutwildcardinlike.bat -u Demo -p "" -x server -t portnumber -f "C:\WildcardOutput" -i "C:\AppFormInput.txt" -b "C:\WildcardBackup"
(Windows) Run the objectswithoutwildcardinlike.bat file.
(Linux) Run the objectswithoutwildcardinlike.sh file.
Parameters used
The following table describes the parameters that you can use with this utility:
Parameter | Description |
---|---|
-u | Specify the user name that identifies the user account for the AR System server. |
-p | Specify the password for the user account. If the user account has no password, use -p "". |
-a | Specify the name of the external authentication string or Windows NT domain. This is related to the Login window's Authentication field. See Authentication String Alias introduction. |
-x | Specify the name of the server to connect to. |
-t | Specify the TCP port number to connect to. If the port number is unknown, use -t 0. |
-timeout | Specify the timeout period for connecting to the server. You can specify Normal, Long, and XLong seconds after which the timeout occurs. Use the following format to specify the timeout values:
Important You must specify all three values even if you want to set one timeout value. |
-f | Specify the location to create the file containing the list of objects with or without wildcards in the LIKE operator. |
-i | Specify the input file containing application form information to locate Run-If qualifications. |
-b | Specify the location to create files containing backup definitions and data in case utility updates need to be reversed. |
-s | Specify the Supression option:
|
Example
Action | Example code | |
---|---|---|
1 | To review all filter, escalation, and application form qualifiers without doing any repair and without generating any backup files |
|
2 | To review all filter, escalation, and application form qualifiers without doing any repair and getting a backup of any filter/escalation objects and entry data fields noted as needing modification | objectswithoutwildcardinlike.bat -u Demo -p "" -x yourserver -t portnumber -f "C:\WildcardOutput" -i "C:\AppFormInput.txt" -b "C:\WildcardBackup" -s mf |
3 | To review all filter, escalation, and application form qualifiers repairing all the qualifications and getting a backup of any filter/escalation objects and entry data fields before they are modified | objectswithoutwildcardinlike.bat -u Demo -p "" -x yourserver -t portnumber -f "C:\WildcardOutput" -i "C:\AppFormInput.txt" -b "C:\WildcardBackup" |
4 | To review all filter and escalation qualifiers repairing all the qualifications without a backup | objectswithoutwildcardinlike.bat -u Demo -p "" -x yourserver -t portnumber -f "C:\WildcardOutput" |
Output
The utility generates two output files in the directory that you provided in the -f
parameter.:
- objectswithoutwildcard.txt - This file contains list of objects and form/fields with LIKE operator that did not have wildcards.
- objectswithwildcard.txt - This file contains list of objects and form/fields with LIKE operator that already had wildcards.
Backup files
The utility creates two different types of backup files if the -b
parameter is specified:
FilterEscalationBackup.def - This file contains all the filter and escalation objects that are identified as 'modification needed' with a snapshot taken before they are modified.
A series of .arx data files - one for each application form entry that is identified as 'modification needed' with a snapshot taken before it is modified.
For example, a file called TestForm_666666_000000000000101.arx containing the data for field 666666 on form TestForm for entry 000000000000101. Any characters in the form name that are illegal in file names will be converted to underscores (_).
Restoring the changes
In the event an update that was made by the utility is not wanted, you might import a chosen filter or escalation (or import all of them) found in the FilterEscalationBackup.def file. This will restore the objects to their state before the update. You might also restore any application form data on an individual entry/field basis by using the Import Tool to import the ARX file for each qualifier that was changed. This will restore the entry data value to its state before the update.
Note that the backup directory is not cleaned by the utility, so a file like FilterEscalationBackup.def will be replaced if it exists, but various application form ARX files may pre-exist and remain if they are not replaced by a subsequent run of the utility. Careful management of the directory is needed to avoid confusion regarding which files are generated by a new run. Use File timestamps to determine which files were generated by a given run of the utility.
Comments
Looks like an interesting utility. I am not seeing in the documentation why it matters if a LIKE is used without a wildcard. The page that describes the wildcard operator does indicate LIKE is used with a wildcard but it is just kind of glossed over without any detail.
I imagine many people that develop in Remedy may not understand why this is important. It must be important since there is a tool to find these cases but what are the details and issues these cases cause? It can't be assumed that all people performing Remedy development are developers. Many people have Remedy dropped in their lap and need to learn (Remedy, databases, web applications, web servers, etc.) as they go.
If this is documented someplace, there should be a link to that page here.
Hello Jason,
Thank you for your feedback on the documentation.
We have added the following information to this topic:
The wildcard symbols are interpreted as wildcards only when they are used with the LIKE operator. Otherwise, they are interpreted literally. Conversely, when the LIKE operator is used without the wildcards, the LIKE operator functions like an Equal To (=) operator. This utility provides you with the list of objects. As a part of post-deployment tasks, you must use this utility and then check and correct those objects. Otherwise, you might lose your customizations or experience breaking of business logic.
Regards,
Onkar
Thank you very much!
...And oh my... I didn't even know all of those details. Is this a newer (9.x Java rewrite) behavior? For years (v4.x to v8.x) I have seen wildcards used with the Equal operator as wells as LIKE operator without a wildcard.
Yes, this is a newer behavior that is introduced in version 20.02.
Thanks,
Onkar
and who cares about the OOB BMC filters with the wrong usage, such as: SHR:LHP:Svc_CheckGlobalSearchPermssion_SRM
Hello Stefan,
We checked the SHR:LHP:Svc_CheckGlobalSearchPermssion_SRM OOTB filter, which already has a wild card character. Therefore, there's no need for any modification by the Like Operator Object Identifier utility. This utility checks and corrects only those workflows and form field qualifications in which a user hasn't inadvertently used a wild card character for the LIKE operator.
Thanks,
Onkar
Firstly I would assume that filters in objectswithwildcard.txt does not need to be handled at all? The utility lists 1009 ootb objects...
Secondly, regarding objectswithoutwildcard.txt, the utility only lists 14 ootb objects. Are we suposed to overlay these and correct them - or are the instructions on this page only meant for custom and overlaid objects?
Hello Peter,
Yes, filters in "objectswithwildcard.txt" do not need to be handled at all.
The BCT hotfix for ITSM can fix the OOTB filters.
Thanks,
Onkar
Is this BCT hotfix after the 20.08 release or any subsequent release? Is it included in 20.08, Included in the on premise patch 2 for 20.02 that came out with 20.08? Or something that needs to be requested from support?
Hello Scott,
Thank you for your comment on the documentation. We are working on your questions.
Regards,
Onkar
The BCT hotfix is included in the 20.02 Patch 02 of Remedy ITSM Suite (on-premises) and further releases. The BCT hotfix is applied to make your Remedy ITSM applications (which are on version 20.02 or earlier) compatible with Remedy Platform version 20.02.02.
Thanks,
Onkar
Log in or register to comment.