Achieving More in Archer Utilizing THE API
Achieving More in Archer Utilizing THE API
2
ABOUT MARK KLIMESH
Senior Software Engineer (GRC Technology Solutions)
7 years Archer administration at Humana
16 years of IT experience including web, .NET, and database
At Humana:
− Custom regulatory change solution
− Primary consultant on web service integrations with Archer
− Onshore Lead
− Architectural responsibilities
3
AGENDA
4 Use Cases:
− Selective Recalculation
− Bulk Upload / Bulk Download
− Mail Merge
− Smart Copy
References
4
SELECTIVE
RECALCULATION
5
U P D AT E : B U S I N E S S P R O B L E M A N D H O W R S A
RESPONDED
Humana’s SaaS services server was still recalculating from overnight application recalculations deep into the
morning hours. Business interruptions were happening as notifications were not firing on time and record
recalculations could not happen
Humana’s issues:
− Large Implementation / number of records
− Heavy API integrations with overnight feeds of data from enterprise data sources
− Many applications were set to fully recalculate overnight
UPDATE
− As of 6.4, Archer can do this utilizing a filter criteria parameter found under Schedules in App Builder
− This appears as an Archer calculation engine touch as opposed to end-user touch that an API touch provides
6
BULK UPLOAD /
BULK DOWNLOAD
WAIT, THE AUDITORS WILL BE HERE
TOMORROW?!?!
7
BUSINESS PROBLEM – BULK UPLOAD
The volume of attachments we need loaded into
Archer was also time consuming (as with any web
tool) to load many attachments to record(s)
− Field work by auditors and other compliance specialists
resulted in large number of attachments that were time
consuming to load
8
WHAT CAN ARCHER DO OR NOT DO NATIVELY
Archer currently does not have mechanism for
bulk import or export of attachments.
− Archer’s download native functionality:
• Within a Report, for every record;
• Manually click on each individual file attachment
• Click Save
9
ORIGINAL DESIGN - UPLOAD
Bulk upload - Console application that
accepts a directory location and within that
directory location:
− Folder name reflects record number.
• Unlimited folders (records to load to) could be
created
− Within each folder, place all the files that you
want uploaded
− You can load to one attachment field at a time
per application.
Business began to see how onerous this
approach would be
− Rebuild the record attachment structure is
time consuming
− Led to Revised Design
10
REVISED DESIGN - UPLOAD
Bulk upload - Console application that
accepts a .csv (Excel) file that indicates:
− record number to upload
− attachment field ID to load to
− path to the file to load to that record’s
specified attachment field.
Benefits
− No recreation of folder structures
− Allows for upload to multiple fields and
applications in one file
11
INPUT FILE
Attachment
Record ID Field ID Path To File
1815236 191 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence1
1815237 191 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence2
1815238 191 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence3
1815239 191 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence4
2011524 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence5
2011525 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence6
2011526 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence7
2011527 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence8
2011528 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence9
2011529 205 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence10
1875246 381 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence11
1875247 381 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence12
1875248 381 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence13
1875249 381 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence14
1875250 381 C:\Users\markklimesh\Desktop\2018\Misc\Attachment Upload Demo\evidence15
12
SPECIFIC METHODS
Bulk Upload:
1. getCurrentAttachments(sessionToken, recordId, tbAttachmentField.Text); –To get the existing
attachments for any record
2. updateContent(sessionToken, recordId, contentInfo.LevelId, tbAttachmentField.Text,
contentInfo.AttachmentFieldValue, contentInfo.Version); --To upload all attachments to Archer
for any record. This method allows for appending attachments
13
BUSINESS PROBLEM – BULK DOWNLOAD
As a heavily regulated company, we were not able to
quickly retrieve evidence from Archer for external
auditors. We could export records, but not
accompanying attachments.
14
DESIGN - DOWNLOAD
1. Via console application (example on next slide):
Select the application name from a dropdown.
1. The application populates a list of attachment fields
and sub-form fields
2. Select the attachment fields and sub-form
attachments fields from the two lists
3. Create a report in Archer that identifies records
that you want bulk downloaded. Record the GUID
of that report and enter into the console
application. The only required field on the report is
Tracking ID
4. Enter a path to store attachments download in
console application
5. Click Submit. Upon submission the custom code
combines the attachment fields that you selected
with the records it retrieves from the report you
created
6. The output is hierarchical structure of folders and
attachments sent to the location specified in step
4.
7. See example to the right of an output
15
CONSOLE APPLICATION
16
SPECIFIC METHODS
Bulk Download:
1. getAttachment(fileId); -- To get the attachments in bytes
2. GetFieldAttachmentDetailsByModuleId(sessionToken, moduleId); -- to get the Field GUIDs for all
Attachment fields in that application
17
PROS/CONS/LESSONS LEARNED
It is important to align the design with the needs of your business partners
Bulk Download
− Will the designed output meet your needs?
− Will you support sub-forms and their attachments?
Limit this functionality to an admin or support team that business can request the upload or the
download. The turnaround time is still significantly faster than doing the work manually. This
should drastically reduce design considerations needed if not opening to larger volumes of
people.
− You must address permission concerns around bulk download and ensure that requestor has rights to
download attachments and that the download folder is secured to the correct stakeholders. Suggest IT
own the download destination.
− Distributing download rights? Consider rights and liability of decision
18
MAIL MERGE
AUTOMATICALLY CREATE AND ATTACH MAIL MERGE
DOCUMENTS
19
BUSINESS PROBLEM
Customers wanted a much cleaner communication of the essential details than the record view
provides in Archer.
A mail merge document is much more presentable for distribution
Customers wanted to be able to open and review a polished attachment via mobile email client
without linking back into Archer. In many cases these are people who do much of their work
from their phone.
Creating mail merge documents per records was far too time consuming and inconsistent
20
WHAT CAN ARCHER DO OR NOT DO NATIVELY
Archer allows administrators to create mail merge
templates and have the template available under the
records export options. The end user can create the
mail merge on-demand.
Archer can send notifications created in the
administration section.
Archer cannot automatically attach a mail merge
document to a record.
21
DESIGN
1. Create an extensible API job (see previous Humana presentations)
that can detect records with a certain flag. E.g. [Status] = “Ready
for mail merge”
2. Manually create Mail Merge template and upload to application
3. Create a status calculation that sets to “Ready for mail merge”
upon whatever condition(s) you desire
4. Job runs and creates the mail merge document combining specific
data elements from the record with the template, attaches new
document to attachment field in record
5. Job advances status before finishing
6. In Humana’s case, a notification is fired that includes the new
document/attachment
7. We generally use a batch method that consists of SSIS packages
that call the API at specified intervals
22
SPECIFIC METHODS
1. int StartAsyncMailMerge(string sessionToken, int contentId, int
mailMergeTemplateId); -- This method create the Mail merge document and return
the ID of the Document
23
IMPLEMENTATION
Mail Merge: Archer provided us two mechanism to generate Mail Merge
− Asynchronous: This mechanism generate the mail merge document and returns the Mail Merge
document ID, which we used and attach with the original record.
− Synchronous: This mechanism return us the Mail Merge document in the form of bytes, which we used
to create, save and attach the created Mail Merge document to the original record.
The Asynchronous method places the mail merge request into services server request queue
We started by using Asynchronous approach, but now we are using Synchronous approach
− If Synchronous fails, then we try with Asynchronous .
24
PROS/CONS/LESSONS LEARNED
Designing and implementing the mail merge template requires more acquired/refined technical
knowledge than originally thought
Two jobs: one to create the mail merge document per record, the other to attach it to the calling
record
A “tweak” made several years ago greatly improved the reliability and speed of the job
− We were doing it asynchronously which put the mail merge job into the services queue. Delays in
seeing the creation of the mail merge document were seen anytime there was a strain or delay on the
services server
• Our “fix” for this was altering the job to a synchronous job where the mail merge job fires instantly and attaches to
the record.
25
SMART COPY
SELECTIVELY COPY RECORD DATA
26
BUSINESS PROBLEM
Business areas had growing
and regular need to copy part
of a record.
Sometimes it was more time-
consuming to copy a record
and remove cross references
and other data than it was to
re-enter the information into a
new record.
A compromise needed to be
struck.
27
WHAT CAN ARCHER DO OR NOT DO NATIVELY
Archer can copy an entire record which means that all fields, references, sub form records, and
attachments copy over with the record.
− There is little to know control over what copies over and cleanup can yield incorrect results even after
significant time is spent on the cleanup activities
− If there are hundreds of cross references, you must manually remove any that you do not want in the
copy
− Easy to miss Record Permission field changes, potentially exposing sensitive data
− Copying can bypass workflows by bringing over the Status of the source record
28
DESIGN
The design of this functionality utilizes an existing job
we built called Automatic Record Generation (ARG)
− Built to automatically create new child records for a
parent record as needed.
− See “References” slide for more information on ARG and
other extensible jobs which have been presented at
previous Summits.
Some pre-work is needed to hone the fields that
need to be copied
We modified the ARG job to watch for a “Copy Me”
field which tells the ARG job to copy only defined
fields for that record
The list of fields to be copied are stored in a SQL
table. The job reviews this list at run time and copies
only the fields listed to the new record. The act of
“smart copy”-ing a record is static and cannot be
different for each record to be copied.
29
BRING THE WHOLE FAMILY!
With a little extra planning and design we were
able to deliver “Smart Bundles” on our first pass of
this new capability
30
SPECIFIC METHODS
ExecuteSearch
Output. This method returns a string. The value is an XML string containing the fields of
records matching the search criteria.
31
SPECIFIC METHODS
CreateRecord
Output. This method returns an integer. If the method is successful, the value is the
content ID of the newly created record. If there is a failure, the API issues an exception.
32
I M P L E M E N TAT I O N / P R O S / C O N S / L E S S O N S
LEARNED
For each business need to copy records for an application, we reviewed the fields that needed
to be copied.
− Perform analysis on existing production data to see what the average “copy” might look like.
− If the business wants to copy cross references or permissions fields pay special attend to those
requests as the may copy over a burdensome amount of unneeded cross references or incorrect
permissions to the newly copied records.
Once you have this capability, meet with all your business stakeholders to learn about all the
cases where your users would save substantial time if they had this available.
− You’ll probably be surprised by all the use cases!
33
REFERENCES
34
REFERENCES
Web Services API Reference Guide and RESTful Reference Guide
https://community.rsa.com/docs/DOC-44145
https://www.soapui.org/#_ga=1.183570214.162770437.1475868978
Achieving Scalability Across a Large Enterprise Utilizing APIs (2016 Summit Presentation)
Search in Community
https://community.rsa.com/docs/DOC-23723?sr=search&searchId=d796223d-aa04-4254-951d-9fee82505047&searchIndex=0
https://community.rsa.com/docs/DOC-11516?sr=search&searchId=d796223d-aa04-4254-951d-9fee82505047&searchIndex=1
35