Remedy DST Time addition problems
When the DST match doesn’t appear to add up:
Here’s the original ARS List post I put out:
Fortunately this issue SHOULD be very straight forward.
Unfortunately – it isn’t.
There’s a button that calculates a person’s period of eligibility to make changes to their HR benefits, etc. You enter their employment anniversary date and hit the button and this performs a calculation:
$My Date$ – 864000 (i.e., minus 10 days).
Here’s the interesting thing – when the date entered is Daylight savings time – 3/15 this spring – the calculated value for the date time field returns 3/4/2010 11:00:00 PM. Normally all of the times in this date/time field are left at 12:00:00 AM and are unused.
Technically speaking the calculation is EXACTLY correct. 3/4/2010 11:00:00 PM is exactly 10 days before 3/15/2010 12:00:00 AM – because 3/15 has an “extra” hour added that is a figment of our collective imagination. Technically DST doesn’t happen until 2:00 AM though but that’s a matter for another time.
I was thinking about changing the times on these to default to 3:00:00 AM instead of 12:00:00 AM – but I’m open to suggestions.
As it turns out the solution was really simple – the original math for the “Set Fields” calculation did this:
$My Date$ – 864000
I just switched it to use the Remedy DATEADD function and added negative 10 days – this only evaluates the “date” portion of the value and ignores DST:
DATEADD(“day”,-10,$My Date$)
Thanks to C.B. on the arlist for the suggestion.
Remedy Email Engine SSL Error
SSL Errors
We had the email engine working fine for quite some time (ARS 7.1 on Solaris).
Then – one magical day after server patching – it quit. The error messages reported in the email error logs form said this:
Connect failed
javax.mail.MessagingException: Connect failed;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:148)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at com.bmc.arsys.emaildaemon.ReceiverModule.initializeIncommingMailbox(ReceiverModule.java:1876)
at com.bmc.arsys.emaildaemon.ReceiverModule.doWork(ReceiverModule.java:216)
at com.bmc.arsys.emaildaemon.ThreadBase.run(ThreadBase.java:288)
at java.lang.Thread.run(Thread.java:595)
….and it looked like this…
As it turned out – it was a pretty easy fix.
For some reason the patching (OS level patching by another group) had overwritten our CACERTS file. We didn’t notice immediately because the replacement file had approximately the right size and date.
So – if you run into the “PKIX path building failed: unable to find valid certification path to requested” error – re-import or otherwise replace your SSL certificates.
-William
BMC Remedy ACD Integration via the C API – opening a Display Only form
How to set open a display only field and set fields using the C API
I had posted a question on the ARSList about how to properly format the C API call for “OpenForm” – we were getting errors using it.
Mark Worley – a fellow poster – was kind enough to send me this example which worked and allowed us to fix the problem
Dim arSession as ARUSER.COMAppObj
Dim arForm as ARUSER.ICOMFormWnd
Dim arField as ARUSER.ICOMField
Dim sessionNumber as Long
Set arSession = New ARUSER.COMAppObj
sessionNumber = arSession.Login(“ARUserID”, “ARUserPassword”,False)
arSession.OpenForm sessionNumber, “ARServer”, “Form Name”, ARSubmit , 1
Set arForm = arSession.GetActiveForm
Set arField = arForm.GetFieldById(999999999)
arField.Value = “Value”
arForm.Submit
Auditing in BMC Remedy forms
A BMC Remedy Form Auditing Overview
In previous versions of Remedy it was necessary to do custom workflow and forms in order to “audit” the data contents of a field. An audit is simply a historical recording of the values of a field in a record.
For example, a “Status” field in an Incident may change to these values over the course of the life of the Incident:
- New
- Assigned
- Work In Progress
- Resolved
An “audit” of this field would show the following:
- Date/Time of the entry and change
- User who made the change
- Updated value
Previous versions of Remedy required custom forms, custom workflow, and various other development efforts in order to accomplish this. As of Remedy AR Server version 7.x this can be accomplished by a Remedy Developer through configuration of the back end forms.
Setting up Auditing in Remedy 7.x
To implement Auditing in Remedy 7 the following steps need to be performed:
- Identify audit form naming
- Identify fields to audit
- Identify audit operation
- Set up auditing on the form
- Set up auditing on the individual fields
Identify Audit Form Naming
The system will automatically create an audit form. However, the name needs to be specified. Typically this is the name of the original form plus the word “Audit”. For example, the HPD:HelpDesk audit form could be named “HPD:HelpDesk Audit”.
Identify Fields to Audit
Identifying the fields to audit is a step that needs careful consideration. Auditing every field on a form can cause performance issues. Also, some fields can not be audited. This includes the core fields (field id 1-6; field 7 – Status – can be audited).
The system automatically adds some fields to the audit table in order to facilitate auditing. These include the user, Audit time/date, and other information.
Typically you will want to audit application fields that are used for reporting or quality analysis. An example of this includes:
- Assigned to Group/Person
- Status
-
Classification
Identify Audit Operation
There are three possible audit operations. For each field identified in the previous step we need to identify the audit operation to be performed. The possibilities for an audited field are:
- Audit – Whenever a value changes in this field the “Audit” operation will take place. This means a new record will be created in the audit table and include this value.
- Copy – Any time an audit is triggered this field will be copied. For example, if the status changes from “New” to “Assigned” but the “Assigned to User” does not change but was set to “Copy” the “Assigned to User” would still copy to the audit form. This is the preferred setting for data that may not change but is wanted in the audit log.
- Audit and Copy – A copy of the data is triggered every time this field changes or whenever another field triggers an audit operation. This is the preferred setting for data that is likely to change and is in the audit log.
Set up Auditing on the Form
Setting up auditing for a particular form requires Remedy Administrator access. To turn on auditing you must first log into Remedy Administrator and open the form.
Once the form is open select the “Form Properties” window. Then select the “Audit” tab:
Check the “Enable” box to turn on Auditing.
For the “Audit style” select “Form”. This means a record-based audit style will be used.
The other option is “Log”. Log auditing records all information to a single field and this is non-reportable and has limited usefulness.
Enter the name of the “Audit Form” that you previously determined (e.g., “HPD:HelpDesk Audit”).
If necessary enter a qualification. For example, you may only want to audit records that have a classification of “Security Issue”. A sample qualification might be:
‘Categorization Tier 1′ = “Security Issue”
When done press “OK” and save the form. The audit form will automatically be created.
Set Up Auditing on the Individual Fields
After turning on auditing and saving the form you need to configure each individual field that is identified for auditing. This also must be done in the Remedy Administrator tool.
Open the form in the Remedy Administrator tool. Select the first field that needs to be audited. Then select the “Field Properties” button and go to the “Attributes” tab:
Select the “Audit Option” identified earlier for this field (“Audit”, “Copy”, or “Audit and Copy”).
Repeat this step for each field that needs to be audited and save the form.
It is also possible to set up multiple fields at the same time. To do this follow these steps:
- Open the form (auditing for the form needs to be turned on)
- Go to the “Form/Multiple Field Properties” menu option
- Select each field that needs to be audited and change the “Audit Option” to the appropriate operation identified previously.
- Save the form when finished.
Final Steps
After completing the steps above auditing is configured but may not be completely useful. For example it may be necessary to create a join form with the original form and the audit form to facilitate reporting.
To test the auditing you can create a record in the original form. Then change the value of a field set to be audited and re-save the record.
Check the audit form. Each action should cause a new audit entry.






