IBM InterConnect 2017 Bootcamp labs developers shouldn’t miss

When learning about new technologies and tools, it often helps to get one’s hands just a little bit dirty and see what really makes them work. That’s the idea behind the new Bootcamp labs at IBM InterConnect 2017, March 19-23 in Las Vegas.

These instructor-led labs run 3 to 4 hours, giving enrollees the opportunity to do hands-on work with new products and technologies. Attendees can find a deeper dive in these sessions led by subject matter experts…

IoT Platform to Maximo/TRIRIGA hands-on lab

Thursday, 8:30 AM – 12:15 PM, Mandalay Bay South Seas I1, Session ID: 7436A

This lab offers attendees a basic understanding of how connected operations work. Use a simulated temperature sensor (a gauge meter in Maximo) to send a temperature reading to the Internet of Things (IoT) Quickstart. The message is then sent to NODE-RED, which parses the message. When a reading changes, it goes into a REST-API call that inserts the meter reading into the referenced asset meter readings. The reading updates the measure point and triggers a work order using Maximo functionality, or if one chooses to do so, using a TRIRIGA work task…

[Admin: This post is related to the 02.06.15 post about exploring the TRIRIGA user group community, and the 06.07.16 post about using sensors with Watson IoT to create TRIRIGA work tasks.]

Continue reading

How do you call a nested resource using TRIRIGA OSLC API?

I am doing an interface proof-of-concept using TRIRIGA OSLC API and getting an error from calling a nested resource. I’m creating a new work task using the out-of-the-box Work Management Service Provider, but creating and assigning a person resource to the new work task fails with the error: “The nested resources are requested on property {0}, which is not linked to any resources.” This is how it’s being called using the Advanced REST Client…

Continue reading

How do you build a servlet proxy that accepts file uploads?

I’m trying to build a simple servlet proxy which takes a file input and uploads it to TRIRIGA. When I test it with the correct parameters, I receive this WebSphere error:

SRVE8020E: Servlet does not accept multipart requests

I plan on using the upload method. Currently, I’m stuck on getting the request to include the data. Here is a snippet of my code taking the parameters:

Part filePart = request.getPart("file");
Long recordId = Long.parseLong(request.getParameter("RecordID"));
String fieldName = request.getParameter("fieldName");
InputStream fileContent = filePart.getInputStream();

The upload to TRIRIGA is easy, but getting these parameters from the request is where I’m experiencing the issue… I’ve created a few classes before that are called using GET with parameters in the URL and everything worked fine. I’m just not sure if it supports POST with the multipart request… I will be triggering this from a UX application. Since it doesn’t support file/image uploads, I’m looking into building a custom solution using servlet proxies.

For that use case, another option in lieu of a servlet proxy is posting the file with an OSLC API. I know there are others that have done this. The following pull request on the vaadin-upload component was actually done to help facilitate this: Upload Mode with option RAW added. So essentially, it’s a direct post to the REST endpoint rather than a form post. Also, it’s worth mentioning that we do tentatively plan to add a TRIRIGA component for file upload in our next release, but hopefully this helps in the meantime.

Continue reading

Recipe: How do you use EnOcean sensors with Watson IoT RTI to create TRIRIGA work tasks?

For example, let’s say that a new System Administrator joins the company and needs to inspect the server room. The System Admin presses the switch on the door of the server room. Based on the pressed action, an event is generated from the switch sensor, which is connected to the IBM Watson IoT Platform. The IBM Watson IoT Real-Time Insights (RTI) analytics server captures the event in real time and alerts the Facility Manager for the server room. Based on the validation, the Facility Manager provides server room access to the System Admin and closes the work task in IBM TRIRIGA.


  • 1. EnOcean sensors.
  • 2. EnOcean smart gateway and software.
  • 3. IBM Watson IoT Platform and Real-Time Insights (RTI).
  • 4. TRIRIGA server (Version 10.5).


  • 1. Set up the EnOcean sensor and configure it with the EnOcean smart gateway.
  • 2. Create the EnOcean sensors as the devices, and the EnOcean smart gateway as the gateway in the IBM Watson IoT Platform.
  • 3. After the devices and gateways are registered, send the event and check the heartbeat of the sensors in the IBM Watson IoT Platform.
  • 4. Configure the Real-Time Insights (RTI) service to capture the EnOcean sensor events and feed the RTI rule for server room permission in TRIRIGA.
  • 5. Configure the custom REST in TRIRIGA using OSLC, Report Query, and Portal Builder.


[Admin: This post is related to the 03.23.16 post about using Real-Time Insights with TRIRIGA work orders to close a fridge door, and the 03.08.16 post about configuring a Watson IoT app on Bluemix to create TRIRIGA work orders. To see other related posts, use the Recipe tag or EnOcean tag.]

Continue reading

How do you upload 6K locations with several attachments each?

For our primary data load, we’re required to upload 6500 locations, and each location has several attachments. How can this be done in TRIRIGA in the most efficient way? The Document Manager allows you to upload multiple files for only 1 record.

You’d want to use an integration, for example, Integration Object (Database scheme), CBA SOAP API, or the OSLC REST API. All of those handle document attachments. Our API documentation is here.

I will note though that our Document Manager stores all documents in the TRIRIGA database schema. It’s not intended to be a replacement for a true Enterprise Content Management (ECM) solution. If you expect to have tens or hundreds of thousands of documents, I would advise considering an alternative approach, such as FileNet or Documentum. The idea is that you’d have a purpose-built ECM solution handle the document storage as the source, and then integrate TRIRIGA with that, using the same APIs mentioned above. We are also exploring a more direct platform level content management integration utilizing Content Management Interoperability Services (CMIS), but we don’t expect that to be available until the end of the year at the earliest.

[Admin: This post is related to the 12.02.16 post about integrating with other CMIS or ECM solutions.]

Continue reading

Recipe: How do you configure a Watson IoT app on Bluemix to create TRIRIGA work orders?

In a smart building, it is imperative to monitor the smooth functioning of facilities operations. One of the critical parameters to monitor is the temperature of the facility. IBM TRIRIGA is an integrated workplace management system (IWMS) which increases the operational, financial, and environmental performance of facilities.

With real-time sensor data, the monitoring of critical parameters, like temperature, also becomes real-time. Any deviation from the standard process, like a temperature increase, should trigger a work order. IBM TRIRIGA can be used to raise that work order. This recipe guides you on how to address such deviations using the IBM Watson Internet of Things (IoT) Platform on IBM Bluemix, and the IBM TRIRIGA platform.


  • 1. IBM Bluemix account.
  • 2. IBM Watson IoT quick-start application with an IoT sensor URL.
  • 3. Cloud instance of a TRIRIGA server.

Recipe flow

This recipe is demonstrated and documented using IBM Bluemix. The IBM Bluemix Watson IoT boiler plate application provides a sample Node Red flow which allows subscribing to device events.

The URL ( simulates the device ID which becomes an Input to the Watson IoT Node Red App. Once the device ID is put in the Node Red input node, a JSON message is sent over MQTT to the Watson IoT. Based on the temperature threshold (>45 degrees) that invokes the TRIRIGA REST API, the TRIRIGA OSLC receives the REST parameters with the JSON payload to create the work order (work task) in TRIRIGA…


[Admin: For convenience, here are the meanings of the acronyms: JavaScript Object Notation (JSON), MQ Telemetry Transport (MQTT), Representational State Transfer (REST), Application Program Interface (API).]

Continue reading

Introducing the TRIRIGA integration options

TRIRIGA provides multiple options for data exchange and the options range from very simple data dump using text file to a sophisticated real-time REST API… Although there are additional options for data exchange, we will focus mostly on the OSLC (REST API) and Integration Objects. A lot has already been talked about CBA (SOAP API) (erstwhile known as BusinessConnect)…

  • The TRIRIGA Applications layer consists of configuration related to OSLC Manager and Resources. It also consist of configuration related to the Integration Object, although Integration Object in essence is really an extension to the platform.
  • The TRIRIGA Application Platform layer consists of the underlying code base which enables interaction with the TRIRIGA applications.
  • The Systems Integration Layer consists of code base which provides inter-connectivity options for the data exchange.

Let’s have a quick introduction to these technologies starting with CBA.

  • Connector for Business Applications (CBA): CBA is essentially an extension to the underlying TRIRIGA application platform and you can programmatically perform nearly any action using CBA which you could perform using the application itself. Catch is, to use CBA, you potentially need to be a Java rock star. You need to understand Java in depth to a level where you can create a client tool or code to consume the Web Services utilising SOAP construct and be able to write Java code to handle the request and response from CBA…
  • Integration Objects: Integration Object is a great initiative in trying to bridge the gap between the old and complex data exchange technology and the emerging requirements from customers who are looking for more simpler methods to exchange data. Integration Object is built utilising the platform tools and a set of custom Java code. It has a user-friendly field mapping tool and overall fairly easy to grasp. It allows you to look at the failures through the UI and potentially resubmit the transactions…
  • Open Services for Lifecycle Collaboration (OSLC): OSLC is essentially a set of specifications which were developed (and being improved) to promote integration of software development life-cycle and to allow seamless integration between different software. The OSLC specifications builds on various standard like REST and supports HTTP verbs through CRUD (Create, Read, Update, Delete) options and is essentially a step towards building a hypermedia (extended hypertext) system to enable machine to machine interaction (read IoT)…

[Admin: This post is related to the 01.12.16 post about API documentation.]

Continue reading