Tuesday, November 13, 2012

Switching from Developer to Designer in 8.2

WebMethods Developer is reaching end-of-life and will no longer be supported by Software AG. Developer is replaced by Designer. Version 8.2 of Designer can be used for everything that was done in Developer (so we are told!).
Below are some notes on how to make the switch from Developer to Designer.


Setup

IMPORTANT: Find the eclipse.ini file in the C:\SoftwareAG822\eclipse\v36 directory.  Edit it and change -Xms128m to -Xms1024m (unless you don't have a lot of memory, then at least set it to -Xms512m).  This will prevent a lot of garbage collection thrashing in eclipse (and therefore Designer) which makes it a lot faster!

Perspective

Use the "Service Development" perspective - this is the perspective that replaces the functionality of Developer
From Designer, select Window > Open Perspective > Service Development

You can now move windows around and even pull them out onto a second screen.  I personally move the pipeline to my second 24" monitor and have a huge pipeline window now.

Once you perspective is configured how you like it, you can save it with Window->Save Perpective As... and give it a name.  I have a different saved perspective when working on the laptop versus working on dual 24" monitors.

If you mess up and lose a window, you can usually get it back with Window->Show View->Other and find the window (like properties or pipeline).

If you really mess up your layout, use Window->Reset Perspective.

Connect to Integration Server

You still need to connect to an Integration Server.
From Designer, select Window > Preferences > +Software AG > Integration Server >Default > Edit set the server Host, Port, User, and Password. You can use the defaults for the check-boxes "Connect immediately" and "Connect at startup".   Leave your development is name as Default, especially if you will be doing workflow development.

You can create

Hints for usage

  • Keyboard shortcuts
    • Ctrl-L locks the service you are focused on
    • Ctrl-U unlocks the service you are focused on
  • Double click on a service invoke step in the service editor will open that service in the editor.
  • Windows -> Preferences SoftwareAG -> Service Development -> Flow Service Editor - add/remove favorite services to customize your palette view
  • To get to the flow service properties (like for setting the pipeline debug option), click on white space in the editor.
  • Sometimes you just can't seem to add a new variable to the pipeline.  Click on an existing string variable, then the insert usually works!

Process Development

By default you are in Business Analyst mode. To get to advanced options and settings You have to hit an icon in the toolbar that says Process Developer. Note this is different than the Process Development perspective.

New features of Designer

Document References

Right click on a document to "Inspect Pipeline references". This will search for any pipeline mappings on the whole server which don't match the document definition. (Great if you've changed a doc structure and want to make sure you changed all the mappings).

Working Set

On the Package Navigator toolbar, click V and select "Select Working Set". You can then select only the packages you want to see and filter out the rest. (p66 of the Designer User's Guide).

Pipeline as Html

On the pipeline view, right click and select "View as HTML" if you want to save the view of the pipeline and/or print it.

Launch Configurations (for running or debugging)

In Run > Run Configurations you can set up different inputs for a service for different uses (unit tests is a good candidate). They all get saved as files in your workspace. (p300 of the Designer User's Guide)

Saving the pipeline while debugging

You can now save the pipeline while you are debugging a service either to your local drive or to the Integration Server's pipeline directory. You can then debug again and restore the data from that file (p319 of the Designer User's Guide)

Debug Java Service

You can now debug java services in Designer. It requires some setup (p 341 of the Designer User's Guide) but it is very handy!

Thursday, March 15, 2012

Filtering a subscription trigger

So you want to filter out your subscription trigger so it only triggers on certain events.   There's a filter field in the subscription trigger, but it's just a free-form field.  The documentation isn't clear.

Update - found an easier way.
(%myField%=="myvalue")

Complex filters can look like this:

(%textMessageMonitorEvent/textMessageEnvelope/processType%=="VehicleReady" && %textMessageMonitorEvent/textMessageTrackingInfo/monitorStatus%=="DONE" && %textMessageMonitorEvent/textMessageTrackingInfo/deliveryStatus%<>"SUCCESS")

The below also works, but is harder to read and you have to include the document in the clause.  The above just needs the field path.

%myDoc/myField% L_EQUALS myvalue

Note that there are no quotes on the right operand even though it is a string value!

Also, you need to use the "name" operators like L_EQUALS to have the filter operate on the broker, rather than passing it to the Integration Server and then filtering it (which causes more network traffic and IS CPU usage).

Here are the possible comparators I found in the Developer's handbook.

L_EQUALS
L_NOT_EQUALS
L_LESS_THAN
L_LESS_OR_EQUAL
L_GREATER_THAN
L_GREATER_THAN
L_GREATER_OR_EQUAL
L_GREATER_OR_EQUAL

Monday, February 27, 2012

Branch and regular expressions

I don't know why but it just never clicked.  You can use regular expressions as the labels on your branch step even when evaluate labels is false.  A simple example is checking the http status values from a RESTful call:

  • Branch header->status
    • /^2[0-9][0-9]$/ (OK)
    • /^4[0-9][0-9]$/ (Non retry enabled error)
    • /^5[0-9][0-9]$/ (Retry enabled error)
Much easier than trying to list all combinations.