TIBCO just released an exciting new update to TIBCO Cloud Integration (TCI) with a Web Integrator. This adds to the current functionality of API Modeler, Node.js and TIBCO Business Studio Cloud Edition. So what is the new shiny thing from TIBCO. Let’s find out.
Fortunately I know a few people who work on Web Integrator and have been able to find out a bit more on where the current iteration of the service stands. As of now, Web Integrator can be used to create API’s and integration between SAAS services. I will be writing a series of posts for Web Integrator. Let’s do a quick overview and walkthrough shall we?
After you login to the TCI screen, click on the big orange Create button. It should bring up this screen:
Clicking on Create a Web Integrator App. If you don’t already know, Web Integrator is powered by Flogo an open source project which is ridiculously lightweight Integration engine. Clicking on the Create a Web Integrator will take you to what I would call the Flow Development IDE (If anyone from the WI team is reading this, I just coined this term 😉 ). Here’s a screen capture of what it looks like when you don’t have any Flows. Since Flogo is an integration engine which builds Flow’s, you need to create your first flow. Read more about Flow’s here.
Now flows being simple process like structures need something to trigger it. As of now, WI supports Timer, REST and Connection (we’ll talk about this later) as Triggers to start the Flow. A Timer is basically a timer which starts the flow on deployment. (If you are familiar with the BW Timer activity, its very similar). A REST Trigger is a REST endpoint with methods for GET, POST, PUT and DELETE.
Let’s create a simple GET method on endpoints /books. For now, we’ll return back a string. Note that you can also enter a JSON Schema for structured JSON output. Me being lazy will resort to a string output. Clicking on the blue Create button will now take you to what I call the Flow Designer. Since our Trigger is REST, it will show us a Receive HTTP message activity followed by the Response activity as so –
The red Error Handler button that you see to the bottom left is for Error handling. Think of these as Catch blocks. If there is an error in the main flow, this error handler will be trigger. The black Errrors(0) button is a validation provider which will show up any validation errors in our flow.
You can easily move activities by clicking and dragging them along the line. In the screenshot below I have moved my Reply activity to the right so that I can add a log activity.
Let’s add a log activity to log some header information before sending the response. After clicking the + button that’s shown up in the diagram, the follow ing screen will allow you to add more activities :
The palettes (as we call them in BW world) show up on the left with the activities on the right. Since we are adding the Log Message activity I have selected it. Here’s a screenshot of what the page will show after you select the log activity. It’s takes you to the activity configuration. Read more about Tiles and activities here.
Just as in TIBCO’s other integration product’s there are different tabs. For the log activity there is a Configuration tab and an Input tab to provide the actual log message. Let’s keep the Log Level to Info and add something in the Input.
The Input screen is where things start getting interesting.
There’s a lot going on here. On the left hand side of the data mapper, you see the only input required for the activity called message. On the right hand side you see a bunch of things :
- The Previous Activity or Trigger output (the green markup)
- JSON manipulation functions
- The text field where the formula is save (the red markup)
I can now use some of the functions and the data. This is a drag and drop ready mapper. So I created the following formula to log the Accept header
string.concat("Accept Header Value is ", $TriggerData.headers.Accept)
As you can see I am using all the elements of the mapper. The input field also provides content assist for JSON functions. The great part here is everything is autosaved. This means I don’t need to go about hitting the save button and worry about losing my changes.
Now to configure my HTTP Response activity. In the Input Settings I defined a JSON schema as :
{ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": {}, "id": "http://example.com/example.json", "properties": { "id": { "id": "/properties/id", "type": "integer" }, "name": { "id": "/properties/name", "type": "string" }, "price": { "id": "/properties/price", "type": "number" } }, "type": "object" }
I used this editor online to generate my schema.
And voila I now see my objects in the Input to the Response activity.
That’s it. Clicking on the blue Push App button will automatically push the application to the cloud. You’ll be taken to the main screen with the App deploying to the cloud.
Now I can view the endpoint like any other TCI endpoint and test it out in the Swagger UI.
After Invoking it once, I get the desired response which was hard coded :
{ "id": "10", "name": "Aditya's Book", "price": "12.5" }
Now let’s go back to the log file to see the Accept headers. Clicking on the App and then clicking on the log tab will take you to the log file. I can now see that the log activity was executed.
This is just an introduction to Web Integrator. In future posts, we’ll see how you can connect to Salesforce data and also cover some more process design concepts like branching flows and designing error handlers.
To try out TIBCO Cloud Integration, access the free trial.
To learn more about Web Integrator – read the documentation here.