Many of you might already know that Software AG has released it’s new version of webMethods Suite 9.12 recently in October 2016. I was going through the release notes of this version and noticed many enhancements and new features of the suite. However, I am impressed with four features/ improvements that change the way you develop integration services on Integration server using Designer.
Briefly, below are the features/ improvements in the order I liked (high to low):
- Distributed Caching Enhancements for Integration Server
- Enhanced Mapping Construct (For Each)
- Search and Refactor Support
- Data Mapper View
Let’s know more about these new features.
Distributed Caching Enhancements for Integration Server
Personally, this is my most loved enhancement among all the newbies in the 9.12 release. We all knew that Service Caching feature exists from many versions. But, it has its usage limitations. For starters, it only caches a result after the first service invocation. There was no optimal way to load all the expected results into the cache in the first place at the time of server startup. Second, after server caches a result, there was no way to remove that particular result from cache alone. The only option was to reset the whole cache for that service.
Having worked on robust integration frameworks for multiple million dollar projects, I have seen the most common need among them all is a “Configuration Manager” which stores all the static data into the cache on server startup and make it accessible. Being distributed in nature is one of the essential requirements too. So, customers had to spend time and money on this framework to build a customized caching component that can perform above mentioned.
It is no more the same starting from webMethods 9.12. This game-changing feature suffices most of the requirements and avoids the need to build customized cache managers for maintaining static data. Integration server now comes with few built-in public services and extended settings which allow us to:
- Pre-fetch and fill data into the service results cache at startup time
pub.cache.serviceResults:addCacheEntry service can be useful to perform bulk load of service results at Integration Server startup. This service adds cached entry into service results for the service without executing the actual service
- Use a distributed cache for service results caching
To configure Integration Server to use a public cache for service results
caching (instead of system cache SoftwareAG.IS.Services), you specify the name of the cache and cache manager in the server configuration parameters watt.server.serviceResults.cache and watt.server.serviceResults.cacheManger, respectively
- Delete an entry for the distributed service results cache
pub.cache.serviceResults:resetServiceCache service can be used to either clear all the cached results of a service or a specific cached entry of a service (my favourite)
- Return a list of all cached values from service results cache
pub.cache.serviceResults:listServiceCache service can be used to returns a list of the cached service results for a particular service
Enhanced Mapping Construct (For Each)
This new feature inside MAP step is an enhanced for-each construct that allows us to map an array of documents (even deeply nested) to another array in a single step.
Say, you want to map contents of the inputDocLevel1 array to the outputDocLevel1 array in below screenshot.
As you can see, the structure of both the arrays are different and top-level mapping is out of the option. So, below is how we usually map – NESTED LOOPS.
But, with this fantastic new feature, the same can be done in single MAP step as shown below – FOR EACH CONSTRUCT.
Search and Refactor Support
Till now, we are only able to search flow services, document types, Java services, and other few assets using Search feature (CTRL-F) in Designer. From this version onwards, we can search for variables too, i.e., any variables that we use in the flow.
For example, if I want to find a variable named “nameLevel2” and see its usage (FYI, you can see that I have used this variable in the For-Each construct examples), then I can do the following:
- Press CTRL-F in the Designer’s Package Navigator view
- Type in the variable name you want to search and hit Search
- You will see all the flow services, document types, etc. that are using the variable name you searched for
Refactor – My third favorite super feature 🙂
This one is a most needed. How many times have you wanted to change the names of variables in input or output signature of services and ended up spending massive amounts of time RE-MAPPING the messy steps inside the service for the renamed variable?
Well, those days are gone. You can now refactor field names within Integration Server elements. Follow below example to understand better.
Say, I have a service with below signature and mapping
Now, if I want to rename my input variable to “firstName,” then usually I would have to manually update the mappings in the entire flow service at the places with references of variable “name.” But now we can do the below:
“Right click” on the input variable you want to refactor and rename it.
After giving new name, click on next, and you will see below screen
Choose the steps carefully where all you want to update the new variable name (by default, designer selects all reference steps) and click Finish.
The new service signature and mapping will look as below
Data Mapper View
This feature is a useful and good to have but not a necessary (in my opinion). A new Eclipse view named “Data Mapper” have been introduced in Software AG Designer from version 9.12. This view helps in testing flow steps before running a “flow service.”
As you construct a flow service, you can separately test the INVOKE or MAP steps that
you plan to use in the flow service. For each step, you can provide relevant inputs, run
the step, and check the output before running the entire flow service. This approach
helps in early validation of a MAP or INVOKE step before it passes data to the next step in the flow – from Software AG documentation
To see this view in Designer, go to Window > Show View > Other
Select Software AG Service Development > Data Mapper
You will now see this view at the bottom along with Results view, Search view, etc.
There are two tabs. Mapping and Testing. Mapping is same as the Pipeline view.
The Testing tab is the interesting one. It allows you to provide sample inputs and test the outcome of the step without executing the entire flow
Hope you all too will try out these features and save a lot of development time and effort.