We need to develop an e-commerce web application, every night the application needs to process orders received during the day and notify the customers via e-mail of the order status change.

To implement this scenario on Bluemix we can leverage the services that the platforms offers and that can be easily integrated in our application.

In order to schedule the order processes every night we can certainly use the Workload Scheduler service, we will use this service to periodically call a REST API in our application that will implement the business logic to process the orders.

In addition we need a database to store the orders, e-mail addresses and other customers information, for this we have decided to use a no-SQL database and then to use the Cloudant service

We also need a service to send the e-mails, we decide to use SendGrid service

Before you start this tutorial you need to deploy the application on your Bluemix account by clicking one of the links below:

Node.js version

Java version

Now you are ready to explore the features of the application lab.

First, go to your Bluemix dashboard and in the left menu click on services and then on workload-scheduler that it is the service istance just auto generated by the deploy procedure.

At the top of the page that will be open you will find the launch button of the application lab: Clicking and you'll be in.

Now you can create your first process by following these simple steps:

Create a processes library

Create a process:

in general: add a name and eventually a description and the validity dates

in triggers: click on new and then add a starting date and time in which to launch the process

in steps:

Click on new:

select RESTful:

then select your cloud agent:

in action set the service uri:

and finally click ok (after eventually fill also some of the other not mandatory fields)

Click on enable process and you're done.

From now the IBM Workload Scheduler every night at 23:00 (11PM) will process on its own all the customer orders received during the day.

The following article will show you how to create a custom control wrapper for an embedded YouTube player. Many of these steps are identical to those found in my previous article: Creating your own UI Control using Dojo so check it out for more details.

Create the control and component registry declarations for the new control

The main registries are located in (all paths are relative to the installation directory/application server deployment location):

c. Note the width, height and src attributes, they will be used in step #4.

width="560" height="315" src="//www.youtube.com/embed/5KLnuaSJxG8"

Add the control to an existing application

Finally, we add the control element to an existing application. For example, if you wanted to add a quick tutorial video to the incident application for new service desk agents:

a. Go To → System Configuration → Platform Configuration → Application Designer
b. Search for application 'INCIDENT'
c. Export application XML
d. Find an appropriate place for the video (such as a new tab) and add the following element (by default the example below will render a SmartCloud Control Desk video

NOTE: According to the component description, the element must be enclosed in one of the following element containers:

In order to tune Live Chat to provide the best service, you need to monitor data like number of chats waiting per chat queue and average wait time per chat request.

In SmartCloud Control Desk 7.5.1 there are no out-of-the-box reports or start center graphs for Live Chat, but all the data that is needed is stored in the database and start center portlets and reports can be written and customized to get the data needed.

The Live Chat functions use two main database tables: pmtcolivechat for current waiting and in progress chat data and pmtcolivechatstats to store completed chat data. The table pmtcolivechatstats needs to be pruned and managed accordingly in order to avoid unbounded growth.

Each row in the pmtcolivechat table is a waiting or in-progress chat. Each row contains information like who requested the chat, at what time the chat was requested, the Service Request the chat is about, which chat queue the chat request got routed to, status of the chat (either WAITING or CHATTING), and if the chat is in progress -- the chat agent who accepted the chat request and at what time the chat request got accepted.

After each chat request is completed, the data about the chat is moved to the pmtcolivechatstats database table. In addition to the data contained in the pmtcolivechat table, each row in this table contains:

information on how the chat ended and to make it easier to retrieve data,

the already calculated total time (in seconds) the user waited before an agent accepted their chat request and

the total time (also in seconds) the chat lasted.

Another piece of information each row contains is the number of chats each agent had at the time the chat ended. This is a way of tracking the number of simultaneous chats an agent has at a given time.

Now that you know the internal database structure of the Live Chat data you can be dangerous.

Before you can create portlets with data in the Start Center using the Live Chat database tables, an application needs to be created using each of the database tables mentioned above using the Application Designer application.

Once the applications are created and the corresponding sigoptions are granted, you can create queries in the applications and then add those queries to portlets in Start Centers.

Hi Everyone,Welcome to Useful Tiny Little Things, a series of topics that I will publish in the Process Automation blog.

This time I've created a wiki page, since this topic is a little too big for a blog post, but in the following I'll show how you can modify some properties on SmartCloud Control Desk to enable or disable parts of the User Interface and as well how to add new actions (buttons) to you toolbar and Navigation Bar. Hope you enjoy

My name is Leandro Cassa and I work at IBM on the Mobile development division, but in the past I've been working as level 3 leader, scrum master and product developer for IBM Tivoli SmartCloud Control Desk. The purpose of this series is to provide useful simple things that we sometimes have no idea exist. These tips apply to SmartCloud Control Desk, and other products based on Tivoli Process Automation Engine (TPAE).

To implement some conditional user interface use cases, SmartCloud Control Desk 7.x allows you to conditionally change the property values of your widgets. This is controlled in the Application Designer application by launching the “Configure Conditional Properties” window available under the Advanced tab of the Control Properties window for each control.

For a full list of properties that can be controlled by Conditional UI, please read this wiki article.

Tivoli process automation engine applications are comprised of user interface elements known as controls. In this post I'll show you how to quickly create a control using only Javascript (and some XML).

Create the control and component registry declarations for the new control

All controls are declared in the control and component registries. Each registry entry contains metadata about the control used by the framework to instantiate and render it.

The main registries are located in (all paths are relative to the installation directory/application server deployment location):

The rendering code queries the database through the framework REST provider. You can access data through a business object reference (mbo) or an object structure (os). In the example below, I'm using an object structure (which is just a collection of related business objects).

I'm omitting the 'dojo.requires' to save space; you can find the script in its entirety in Table 3.

a. The first step is to override JsonRest because we need to slightly modify the returned data structure before it can be consumed by the chart store. We can accomplish this by injecting a link into the promise chain returned by the (overridden) query function and return a pruned JSON block.

b. Next, we create the function that will be called when the page is ready. It will instantiate our custom JsonRest data store, associate it with a memory store for caching and then pass that to the chart for rendering.

All that's left is to incorporate our control in an existing application. I chose the View Asset dialog in the Self Service Center application.

a. Go To → System Configuration → Platform Configuration → Application Designer
b. Search for application 'SRMSSCTR'
c. Export application XML
d. Search for a dialog with id 'srmssviewasset'
e. Find an appropriate place for the chart. I created a new tab group and added a chart tab:

The progress map is a configurable user interface control that allows an agent to quickly determine an object's status in the context of its lifecycle. The control was updated in IBM SmartCloud Control Desk 7.5.1 to add support for Service Requests, Incidents and Problems in addition to Changes and this tutorial will show you how to add the feature to other applications.

Overview

The progress map is instantiated by a control element in the application definition. To see an example:

The flow sequence is simply a comma-delimited series of values that typically (and in the case of this example) correspond to domain valueids. Since we're tracking status, we're interested in the PRSTATUS Synonymdomain

We want the following state sequence to represent our PR lifecycle:

Canceled :: Waiting on Approval → Approved → Closed

So we set the value of the pmgui.progressmap.pr.seq property to:

PRSTATUS|CAN,PRSTATUS|WAPPR,PRSTATUS|APPR,PRSTATUS|CLOSE

a. (While still on the pmgui.progressmap.pr.seq record), set property values:

Many new User Interface features have
been introduced as part of the SmartCloud Control Desk 7.5.1 release to improve usability. This document contains detailed instructions on how to configure each of the new features.This document only covers the features that are new to the SmartCloud Control Desk 7.5.1 release. Please refer to this
blog entry to understand all the User Interface features that were introduced
in SmartCloud Control Desk 7.5.

Application Developers:

There are some great new application-level features available to help
improve the usability of your applications. If
you are a SmartCloud Control Desk or Tivoli process automation engine application developer you might choose to add some
of these new features to the applications that you manage for your
users. Many of the out-of-the-box SmartCloud Control Desk
applications have already been extended to use these new features, but
you'll need to add them to your own custom applications.

System Administrators:There are a set of system-level user interface enhancements that apply to all applications. System administrators upgrading from SmartCloud Control Desk 7.5 to 7.5.1 will have to manually enable most of these new system-level features after their upgrade process is finished. You need to make sure that your end users are ready for these changes to the look and feel of their product, and you might need to create some education material about the new capabilities of the user interface before turning on these new features in your SmartCloud Control Desk system.

I posted the following information in the Asset Management blog. I'm re-posting it here as it applies to Process Automation users of SmartCloud Control Desk as well.

Do you remember that movie Multiplicity
where Michael Keaton clones himself to become more productive? A
similar approach can be followed when using SCCD 7.5: if you want to
perform work in parallel to become more productive, you can launch
multiple browser tabs or windows as the same user. However, there are some limitations that you need to learn before attempting concurrent sessions.

When configuring the user interfaces (UIs) of products based on the Tivoli's process automation engine, like Service Request Manager, CCMDB, and Tivoli Asset Management for IT, you should consider the best practices for screen layout, UI style and accessibility. These best practices are described in this recent paper published on the Maximo wiki: