TIAA fully invested in Tasktop Integration Hub with 5 new integrations in February 2018 and also recently migrated 3 integrations from Sync to Hub. During this session, I will share our journey with Hub from original reluctance to switch from Sync to eager adoption after seeing it in action last October. I plan to share our redeployment story, the benefits of Hub, and of course share my technical tips and tricks! I’ve done some interesting work with extensions and the home grown error facility I built that either fixes errors or reports them from the errors retrieved using the Hub API. I’m also looking at performing automated testing of our integrations against new versions of Hub so that I can validate and adopt new Hub features much faster.
Mark Ford
Lead Developer | Global Corporate Solutions Technology (GCST) - TIAA
As a Tasktop Hub administrator I'm always looking for ways to extend Tasktop Hub by developing dynamic extensions and utilities that export/import integrations, improve SDLC processes by synchronizing data between various software products, and reducing our overhead costs.
As a Micro Focus ALM/Quality Center administrator I'm also looking for new ways to provide a better end user experience for our QA users. This includes: implementing better procedures to perform consistent and repeatable template updates with faster turnaround, better access to reporting data, decentralized administration facilities, and tools to help our ALM support staff do their job more effectively.
As a Vivit Board of Director I look for ways to bring more value to the investments in Micro Focus Software for the more than 40,000 Vivit members around the world.
As a Vivit Carolinas co-chapter leader I look for ways to bring value to the other Vivit Carolinas chapter members through chapter events, webinars, and round tables.
Tasktop Connect 2018
connect.tasktop.com
www.tasktop.com
Advancing Engineering with AI through the Next Generation of Strategic Projec...
A Customer Success Journey Moving From Tasktop Sync to Tasktop Integration Hub | Tasktop Connect 2018
1. A Customer Success
Journey Moving From
Tasktop Sync to Tasktop
Integration Hub
Mark Ford
Tasktop Connect Conference
December 6, 2018
TIAA PUBLIC
2. A little background on me…
25 years experience with two Fortune (100/500) Financial Services orgs
11 years experience as Admin for HP/Micro Focus ALM
5 years experience as Admin for Tasktop Sync and Tasktop Integration Hub
3 years Board of Directors at Vivit – HP/Micro Focus User’s Group
2 years attended (and spoke at) Tasktop Connect
Strong background in computer programming and application development
Love to extend vendor products beyond the norm
This presentation will get down to the nuts and bolts level…
So prepare to go deep…
2TIAA PUBLIC
3. Agenda
What a difference a year makes:
Where TIAA is with Tasktop Today
Why TIAA moved from Tasktop Sync to Tasktop Integration Hub
Steps to move from Tasktop Sync to Tasktop Integration Hub
Go a little deeper into a few of my favorite (Tasktop Integration Hub related) things:
Extensions – Tasktop Sync scripting taken to the next level
Hub Error API – put this to work for you and have it fix your sync errors
Automated Testing of Integrations – simplify your integration testing
3TIAA PUBLIC
4. Where TIAA is with Tasktop Today
4TIAA PUBLIC
Tasktop Sync
6 Prod Instances
2 Sync Servers
ALM, RTC, RDNG,
Serena,
ServiceNow
Tasktop Hub
6 Prod Integrations
1 Hub Server
1 Sync Server
ALM, Jira,
ServiceNow,
SharePoint
2013 - 2017
2018
“Tasktop has enabled us to simplify the integration when
acquiring smaller firms by synching work items and
minimizing the disruption on each side.”
- Don B. (Lead Development Manager)
5. Where TIAA is with Tasktop Today
5TIAA PUBLIC
Jira Story
Creates Jira Bug
that is linked
back to
ALM Defect
Created
Manually Linked
to ALM Test
Case
Creates ALM
Requirement
We started using this with Tasktop Sync in February 2017
between ALM and RTC, then ported it over to Tasktop Hub in
February 2018 when we replaced RTC with Jira:
Jira Stories created and sync with ALM requirements
When the ALM requirements are linked to Test Cases,
they automatically receive the Jira Story ID(s)
ALM Defects created from the linked Test Cases also
automatically receive the Jira Story ID(s)
The ALM Defects automatically create and sync with
Jira Bugs
The Jira Bugs automatically link back to the original
Jira Stories
sync
sync
“We’ve been able to visualize requirement traceability, test
execution status, and application coverage from planning
to closure while better tracking defects logged against our
requirements.”
- Rajeev C. (Lead Quality Analyst)
6. Where TIAA is with Tasktop Today
6TIAA PUBLIC
TIAA
SharePoint
Client update is
requested
MyVest Jira
Jira issue created
and confirmation
returned
“We eliminated the need for additional defect
management licenses, allowed developers to focus
directly on the tool they utilize in their day-to-day
activity, and can now better foster communication
with others outside of development.”
- Russell R. (IT Project Manager)
“Tasktop prevented us from rushing to find a new
workflow tool at a critical point in our project and
eliminated the need for massive re-training by
integrating into our existing processes with just a few
minor tweaks.”
- Beth C. (Lead Business Analyst)
We started this integration in Tasktop Hub in February 2018:
An urgent need arose to facilitate and monitor client requests
between TIAA and MyVest - an acquired subsidiary
Requests can originate on either side so the integration
creates and updates artifacts both ways
Tasktop Support enabled SharePoint Attachments for us
Benefit: Specific data fields and customized notes are shared
between teams without either having to learn a new platform
7. Where TIAA is with Tasktop Today
7TIAA PUBLIC
Activity by Tasktop Hub Integration Average Monthly Updates Average Monthly Creations
ALM Defects – Jira Bugs (5 ALM projects syncing with 95 Jira projects) 15,984 704
Jira Stories – ALM Requirements (5 ALM projects & 86 Jira projects) 13,633 971
ServiceNow Incidents – MyVest Jira Issues 203 12
SharePoint Issues – MyVest Jira Issues 3,281 855
ServiceNow Problems – Jira Features New in 2018 New in 2018
ServiceNow Problems – ALM Defects New in 2018 New in 2018
ServiceNow Incidents – ALM Jira Issues New in 2019 New in 2019
Currently 4 Production integrations running with 2 more we’re adding in December
Syncing artifacts between 4 different application delivery tools (Micro Focus ALM, Jira, ServiceNow, SharePoint)
Looking into improving our SDLC reporting options with Tasktop Enterprise Data Stream
Looking into how Flow Metrics could provide valuable information into our SDLC processes
8. Why TIAA Moved from Sync To Hub – Several Reasons
8TIAA PUBLIC
Scripting is
much
improved!
Stay Current
with New
Developments!
Adding new
Projects to
Integrations is
much faster!
Easier Project
Filtering!
Data stored in
Oracle or SQL
Server!
Models
provide
generic end-
point
interfaces!
Easier Tasktop
Upgrades!
That Cool
Integration
Landscape
Visual!
9. Why TIAA Moved from Sync To Hub – Simplicity
9TIAA PUBLIC
10. Why TIAA Moved from Sync To Hub – Support
TIAA PUBLIC
• Hub is much easier to work with
• Personally I like the Eclipse environment with Tasktop Sync, but it can be
intimidating to non-developers
• My manager is not a developer and was able to log into Tasktop Hub and set
up an Integration without any training - it’s that intuitive
• Hub is much easier to share support duties with others on my team enabling
us to respond quicker to sync issues – documentation (Confluence) helps
11. Why TIAA Moved from Sync To Hub – Filters
TIAA PUBLIC
• Artifact filtering can be done directly in Hub instead of relying on end-point specific
filtering
• This makes it easier to add new integrations – you don’t have to learn how to create
filters in the end-point systems
• In some cases, the Hub filtering might actually be better to work with!
• With Sync I had to set up 6 different integrations each with a different ServiceNow
filter to select 150 unique Applications - SN couldn’t handle 150 ‘OR’ statements
• With Hub, I only need one integration because it can handle a virtually unlimited
number of ‘OR’ statements in it’s own Artifact Filter
• In some cases though, you might still want to use an end-point specific “pre-filter” with
Hub to weed out a very large volume of artifacts that will never be included – like the
200,000 Closed defects in Micro Focus ALM since 2010
12. Why TIAA Moved from Sync To Hub - Models
12TIAA PUBLIC
ALM
Defects
Jira
Bugs
RTC
Defects
Bugzilla
Issues
When using Tasktop Hub it helps to
understand the concept of “Models”.
With Tasktop Sync you make field
connections between tools by
defining specific field mappings
between tool end-points.
However, you need to start from
scratch with those field mappings
when you bring a new end-point into
a synchronization.
The Approach with Tasktop Sync
13. Why TIAA Moved from Sync To Hub - Models
13TIAA PUBLIC
“Defect
Model”
ALM
Defects
Jira
Bugs
RTC
Defects
Bugzilla
Issues
With Hub you define generic
models for your org into which you
plug various tools, reusing your
field definitions for new
integrations and connecting them
automatically with “smart fields.”
The “Universal Adaptor” approach with Tasktop Hub
14. Why TIAA Moved from Sync To Hub - Scripting
Differences in scripting:
14TIAA PUBLIC
Tasktop Integration Hub Tasktop Sync
Called Extensions Called Scripts
Uses Javascript (or more specifically ECMAscript) Uses Groovy
Handles translations like String to Single Select You have to code translations between String and Single Select
No longer needed for status transitions (Jira) Needed for status transitions (Jira)
Can make HTTP calls to your web services! Can make Java program calls
Much easier to access source and target resources More complicated to access source and target resources
Cannot access a Single Select’s list of values Can access a Single Select’s list of values
Can access company’s LDAP for person verification Cannot access company’s LDAP (at least not natively)
Easy to write a list of field id’s to the log Need to look up field id’s elsewhere
15. Why TIAA Moved from Sync To Hub - Scripting
Being able to receive and return values of a
Select List in an Extension saves a lot of code.
I was able to replace this Sync script with a
much more concise Extension.
15TIAA PUBLIC
function transform(context, input) {
if (!input) return;
var currentValue = context.targetRepositoryArtifact.customfield_15306;
if (input == "Closed" & currentValue != "Canceled“ &
currentValue != “No Workaround Required") return "Retired";}
if (currentValue == “” | currentValue == undefined return “Under Review”
return currentValue;
}
public void map(syncContext, sourceAttribute, targetTask) {
if (!sourceAttribute.model.getConnectorKind().contains("servicenow")) return;
def sourceValue = ""
def waStatusLabel = "WA Status"
def sourceValueKey = sourceAttribute.value
def snAttribute = sourceAttribute.taskAttribute
def snMapper = snAttribute.taskData.attributeMapper
def snMap = snMapper.getOptions(snAttribute)
def targetTaskAttr = nulll
for (Map.Entry entry : snMap.entrySet()) {
if (entry.key.equals(sourceValueKey)) {
sourceValue = entry.value
break}}
for (def attr : targetTask.getRoot().getSubAttributes().values()) {
if (waStatusLabel == attr.getMetaData().getLabel()) {
targetTaskAttr = attr.taskAttribute;
break}}
if (targetTaskAttr == null) return
def targetValueKey = targetTaskAttr.getValue()
def targetValue = ""
def mapper = targetTaskAttr.taskData.attributeMapper
def map = mapper.getOptions(targetTaskAttr)
def retiredKey = ""
def underRevKey = ""
def unassignedKey = ""
for (Map.Entry entry : map.entrySet()) {
if (entry.key.equals(targetValueKey)) targetValue = entry.value
if (entry.value.equals("Retired")) retiredKey = entry.key
if (entry.value.equals("Under Review")) underRevKey = entry.key
if (entry.value.equals("Unassigned")) unassignedKey = entry.key}
if (sourceValue.equals("Closed") & !targetValue.equals("Cancelled") &
!targetValue.equals("No Workaround Required")) {
targetTaskAttr.setValue(retiredKey)
return}
if (targetValue.equals("") | targetValueKey.equals(unassignedKey)) {
targetTaskAttr.setValue(underRevKey)
return}
}
Hub Extension
Sync
script
16. Why TIAA Moved from Sync To Hub - Landscape
Tasktop Integration Hub
provides a nice visual – the
“Integration Landscape” that
shows the artifact connections
as they flow between your
configured end-points.
16TIAA PUBLIC
17. Steps to Move from Sync To Hub
17TIAA PUBLIC
Step 1
Reuse your requirements from before or update if needed
Step 2
Add new Hub Repositories if needed
Step 3
Identify an existing Hub Model or create a new Hub Model
Step 4
Create new Hub Collections to tie the end-points to the
Hub Model
Step 5
Rewrite your Sync Scripts as Hub Extensions
(this can take a little time)
Step 6
Create your new Hub Integration
Step 7
Redo your Sync end-point filters as Hub Artifact Filters
Step 8
Implement your action plan to handle your existing syncing
artifacts
18. Steps to Move from Sync To Hub – Existing Artifacts
Ways to handle your existing syncing artifacts:
1. Wait until an end-point is retired and then sync all of the existing data to the new end-point
2. Run Sync and Hub in parallel for awhile by specifying a cut-off date, setting your Sync filter to
exclude new entries after that date, setting your Hub filter to only include new entries starting
from that date, wait until all of the artifacts under Sync Close and then eliminate Sync
3. Recreate “open” artifacts with Hub and delete the former artifacts created by Sync
4. Let Hub create new artifacts and ignore the old artifacts from Sync
5. Engage Tasktop Support to re-establish the links between existing artifacts – give them plenty
of advanced notice to prepare for this
18TIAA PUBLIC
19. Favorite Things: Extensions - Tips
19
Call a web service from
Person Reconciliation
Person Reconciliation
Extensions are a little limited
in what they can do but you
can greatly extend their
functionality by calling a web
service and returning the
results of the call.
Conditional “Additional
Fields” in Transition script
Tasktop Support provides an
extension to use to transition
status values. Sometimes
transitions require another
field to be set. You can tweak
their code to set those values
based on decision logic.
Call other tool APIs
In most cases you probably
cannot call another tool API
direct from an Extension (GET
only, HTTPS, authentication)
but you can of course call a
web service from an Extension
that calls your other tools APIs.
Can make Jira Plugin
Support possible
Tasktop only supports a few
Jira plugins so what do you do
if your Jira instance uses a
cool Jira plugin not supported
by Tasktop? Write a web
service!
Extensions are powerful ways to use logic when syncing field level data across end-points:
TIAA PUBLIC
Tip 1 Tip 2 Tip 3 Tip 4
20. Favorite Things: Extensions - Tips
20
Call an environment web
service
Calling web services requires
you to code a URL that can
be different between Test and
Prod. I call a web service I
place on the Hub web server
to read a local file to give me
the environment URL for my
other web service calls.
Push constant back to
source upon creation
Hub only allows you to
populate a constant in a field
on creation and only on the
target. You can do this with the
source through an Extension.
Use a Source Control tool
Use an external editor and a
source control tool to write and
store your Extensions. This
gives you a place to compare
changes and restore from
backup if you goof something
up.
Share Your Extensions
I still think it would be great if
Tasktop customers could
share their Extensions via an
external library so you could
browse the library to get an
Extension and modify to suite.
Extensions are powerful ways to use logic when syncing field level data across end-points:
TIAA PUBLIC
Tip 5 Tip 6 Tip 7 Tip 8
21. Favorite Things: Hub Error API
I was surprised to initially find out that Hub did
not provide a way to email errors. They’ve
added that functionality recently, but they also
provide a REST API for you to use instead or in
addition to.
I wrote a Java program that runs every 5
minutes and reads the Hub Error API.
This allows for more granular error detection
and email capabilities and even escalation.
It also provides the ability to “auto-correct”
some types of sync errors.
No way to cancel or ignore errors through the
REST API – but that would be really nice!
Step 1
Read Errors from Hub Error REST API
Step 2
Add/Update additional details like: created, updated,
closed, # of retries, acknowledged
Step 3
If applicable, call tool APIs to Fix the issue or Skip the error
Step 4
Send Emails to Technical Support, Business Users,
Escalation Contacts, etc
21TIAA PUBLIC
22. Favorite Things: Automated Testing of Integrations
We always ran new versions of Tasktop Sync through a series of tests on our existing integrations
in a lower environment before we introduced the new version into Production. We do the same
today with Tasktop Hub.
We typically upgraded Tasktop Sync once or twice a year so it was manageable. However,
Tasktop Hub is a younger product with more features being added quarterly that we will want to
leverage. So upgrade testing will occur more frequently now. We might even look at adopting
(CD) releases if we had this in place.
We started an initiative to perform upgrade testing via automation looking at two approaches:
1. Run tests at the service layer, calling end-point APIs to create and update artifacts and then
call other end-point APIs to read artifacts and verify a successful sync.
2. Use an automation tool like UFT to script going through the front end of each tool to
create/update artifacts and verify a successful sync.
22TIAA PUBLIC
23. Favorite Things: Automated Testing of Integrations
Since we had a resource on the team with UFT experience, management decided to go that
route.
He has been working on scripting two of our integrations so far. Barriers/challenges have been:
• Object recognition on applications like Micro Focus ALM
• Working in sufficient wait time for sync activity to complete
Tasktop performs their own API testing so it would be interesting to see if they could provide a
mechanism to their customers to make API calls and validate successful syncs for those
interested in more of a services layer type test of their own integrations.
23TIAA PUBLIC
24. Contact Me
TIAA – Lead Developer – mford@tiaa.org
Twitter – @markdmia
LinkedIn – https://www.linkedin.com/in/markeford/
24TIAA PUBLIC
27. Where TIAA is with Tasktop Today
27TIAA PUBLIC
TIAA
ServiceNow
An Incident is
assigned to
MyVest
MyVest Jira
Jira Issue created
and updates are
kept in sync
We started this integration in Tasktop Hub in February 2018:
Incidents get raised in ServiceNow that require work from
MyVest – an acquired subsidiary
We worked with the MyVest Jira team to create a Jira issue
that would accommodate these incidents
SN team added a customized “Send to MyVest” button
Benefit: Eliminated email handoffs and allows each
organization to continue using their respective tooling
“We eliminated the need for additional defect
management licenses, allowed developers to focus
directly on the tool they utilize in their day-to-day
activity, and can now better foster communication
with others outside of development.”
- Russell R. (IT Project Manager)
“Synchronizing our Production Incidents between the
two organizations allows us to track their status from
start to finish with nothing falling through the cracks.”
- Brian H. (Lead Development Manager)
28. Why TIAA Moved from Sync To Hub - Improvements
28
1
5
3
Send error emails to specific users per integration, end-point,
error type, escalation and ability to cancel errors via REST API
Ability to promote Integrations, Collections, Models, and Extensions to
Production
Ability to view integrations from multiple Hub servers in a single
Integration Landscape
4
Ability to see low level details like artifact field names (helpful for
developing extensions), modify artifacts (helpful for testing), and
trigger individual artifact resyncs
2 Ability to see results of an integration’s filter without creating artifacts
in your end-point (can simulate with Enterprise Data Stream)
TIAA PUBLIC
A few areas of
improvement
for Tasktop
Hub
29. Favorite Things: Extensions - Improvements
29
1
5
3 Ability to pull Extension source code from an external
editor/source control tool
Make the values for a field’s Select List available in an Extension
Ability to call tool APIs direct from an Extension4
Support for Person fields in Custom Data Transformation
Extensions2
Ability to use an include statement for common Extension code
TIAA PUBLIC
A few areas of
improvement
for Hub
Extensions
30. Favorite Things: A few other items…
• Tasktop Support suggested using a separate Jira Server as an “API Server” and pointing Hub
directly to that server instead of our Jira load balancer. A good idea, but pointing to our load
balancer helps guarantee a connection.
• We’re looking at setting up Tasktop Hub for a Disaster Recovery environment. This would
include replicating our Oracle Schema to a DR server and setting up a Tasktop Hub
application server in DR. We’ve had areas inquire about fail-over during a DR situation.
• It’s possible to promote Integrations, Collections, Models, and Extensions by extracting the
JSON information out of the configuration table in your external database schema and
updating/inserting it into the configuration table in another environment. It’s not a simple
process and you have to be very careful to maintain the key order or Hub will crash. But I
built a process that does it and have used it to great benefit many times so far!
30TIAA PUBLIC
31. Tasktop Customer Connections
One other thing I would be interested in seeing Tasktop do next year is get local customers
together for implementation round tables or meet and greets.
Coming to a customer conference once a year is a great way to meet other customers and
connect with Tasktop, but it’s not a possibility for all customers unfortunately.
Knowledge sharing between Tasktop customers can be a great way to learn more about a
product and maximize the benefits you receive. Sometimes you encounter things that you can
leverage that you never thought of.
Round table sessions are a great way to go and hear others talk about implementation topics and
share what you’ve learned. Tasktop Support is awesome for when you have a question or an
issue, but hearing about what other customers do can sometimes trigger questions that you
never even thought to ask.
If interested, talk to your Tasktop contacts about it and maybe we can get some started!
31TIAA PUBLIC