Here is a great contribution from one of our active members. Thanks for sharing with the community!

Hi,

I just explored a nice to have feature by extending the ICM In-basket widget in v 5.2.1. vScroller feature will be inherited by the extended In-basket widget. This will be useful when there are too many work items in the queue or Inbox and user wants to return to the work item position after closing Work details page (to say when user is not happy to scroll all the way down to 100th work item :p). All we have to do is override the _renderContentList function in the extended In-basket widget. After rendering the In-basket content list call the scrollToRow function like below:

I'm sure many of you are still trying to get caught up on all the great things we released in 5.3.1 just six months ago. Welcome to the world of continuous delivery.

The ICM 5.3.1 release set the stage for many of the new capabilities we have added to ICM 5.3.2, especially its page layouts that supports the ability to place many more widgets on a page using its tab and column containers.

ICM 5.3.2 is also joined by releases of its underlying components including IBM Content Navigator 3.0.3, IBM Case Foundation 5.3 and IBM Content Foundation 5.5.

I recently posted a tip that describes how to use our script actions to add new document actions that can call new or custom actions added to the Content Navigator menus. While still a very handy tip, we have made it much easier for you to include a couple of the popular new items that were introduced in Content Navigator that involve the ability to easily edit documents directly from your content repositories.

To ensure these actions show up in the Case Manager client, make sure your Navigator desktop is configured to support them. If you don't see them in a normal Content Navigator document view, you won't see them in ICM either because our actions support both show and enable tests that will hide items that are not available at the moment.

I was recently reminded of a blog entry I had done a really long time ago that described a new feature we had added to the Inbasket widget that allowed you to programmatically wire in filter values so the user's list immediately contained the work items that were really important to them.

At that time, the inbound event to do this required that the filter properties be preconfigured on the in-basket.

We later added a new inbound filtering event that allows you to set a filter that is always respected, even after further filtering by the user, using any properties that are available on the queue.

The use case I was after was to be able to add the in-basket widget to a Case Details page and have it display only the work items for that specific case. The new freeform page layouts we added in 5.3.1 are great for making this a really viable capability since we can place the in-basket behind a tab so that it has the space it wants.

The key to this is that the F_CaseFolder guid is automatically added to each queue that Case Builder creates and since this version of the event does not require that the property be actually exposed as a user filter, we are good to go!

To try this out for yourself:

add the in-basket to your Case Details page. By default, the in-basket will display all work for the current user's role

set the configuration option in the in-basket to Do not populate the in-basket until the dynamic event is received. This is important to ensure things happen in the right order.

Have you ever gone to your favourite restaurant and the dish you were craving was not on the menu? You could always go with what is there, but that's not why it is your go-to place. You politely ask your server if the chef could perhaps prepare the dish in question given that the necessary ingredients appear in other items. His answer is "Of course! The Chef is always happy to experiment and create exactly what you desire if we have what is needed." Right answer...

Today, my fine reader, you are a customer in the Case Manager Cafe. The other day, you heard that the Navigator Bar and Grill had a fantastic new menu item called Edit in Desktop Apps; something that sounded so enticing that you knew you had to try it.

Unfortunately, the Navigator Bar and Grill is not where you usually spent your time. The Case Manager Cafe is right next to where you work.

You find a familiar case, open it, right-click on a document and scan the menu. Oh no! the Edit menu is not there at all! Are you to go home unsatisfied?

Fortunately I get to play Chef today and cook up that menu item. Even better, I'm going to prepare it right before your eyes! Let's begin.

When you are looking at the Case Information widget's settings in the Case Builder Page Editor, you will see that you can add and remove items from the right-click and toolbar menus that are displayed for a document filed in you case. In this situation, the Edit in Desktop Apps or Edit in Office Online do not appear (yet). We know those actions are available in the new IBM Content Navigator 3.0.1; the version that comes with ICM 5.3.1. The trick is knowing how to call them.

ICM has two handy utility menu and toolbar actions called Script Action and Event Action. The former lets you write javascript directly in the menu item. The latter lets you wire an event to something like a Script Adapter to kick off some more events. We are going to use the Script Action for our menu item.

Click the Add Submenu icon and name your new item Edit. We want to place our our item in a hierarchical menu the same way Navigator does.

And you were expecting something much more complicated right? Come on, you know me much better than that by now!

But wait, what great creation is complete without a few morsels à la carte? The Script Action also includes sections where you can round out your courses and enter script that controls the item's visibility and enabled state. Let's start by doing a bit of factoring. Replace your original execute script with the following.

For the item's visibility you want to ensure that the Edit Services are enabled for the user's desktop and repository. If not, trying to perform the action will fail. Here is the script that will do the test. This is also the first entry point into our scripts so it is where we will instantiate and store our action object for efficiency.

That's all there is to it. You can find the Action IDs of other Navigator menu items by going to the Navigator Settings area, selecting the Menu section and clicking on any menu item that is in one of the lists.

So there before you is the very thing you were craving.

For those of you that already have Navigator Action Plug-ins that you have written and want to get those to show up in ICM, here is a post from one of our readers that explains a quick way to do just that.

If you are like most people, the minute you find yourself with some extra space, you start looking for things to fill it up with.

This is a situation you may find yourself in as you start playing with the new layout feature in IBM Case Manager 5.3.1. As mentioned in a previous post, the new layout feature, with its flexible tab, column and title container widgets, lets you make better use of your ICM solution's screen real estate. The question then becomes "what can add now that I have the room?"

Custom page widgets are an obvious answer since they provide the best way of creating reusable components that deliver the exact capabilities needed by your solutions. The only catch is that they require a bit of development elbow grease to create. This is fine for feature rich widgets, but what if you just need a bit of text or graphics on your page? Although ICM's Website Widget has been used for that for a long time, it does require a separately managed web page to point at.

To address this, ICM 5.3.1 introduces a new Markup Widget. BOOM!

This widget gets added to your pages in the usual way and is then configured with, you guessed it, HTML markup, allowing it to display whatever your creativity can come up with. Just that alone would make this a pretty great new feature, but we didn't stop there.

The Markup Widget also supports an inbound widget wiring event that lets you push in the markup on the fly. Using this approach, you can catch outbound events from other widgets, generate up the markup dynamically in a Script Adapter Widget and then wire that into the Markup Widget for display. KA POW!

But like any great Super Hero, what you see on the surface often hides something infinitely more powerful. Wouldn't it be cool if not only could the Markup Widget display something interactive on the page, but interacting with it could also trigger events to other page widgets? Here's an example of just that!

Let's say we are building an ICM solution that allows our Super Heroes to use cases to track new Villains that try to disturb the peace. On our case search page, we want to provide a really fast way to enter a Villain name and find their cases in the Case List.

Now you too can fulfill your childhood dreams and be a super hero to your IBM Case Manager users by providing them with the attractive, informative, and interactive case pages they deserve in a fraction of the time (tights optional). YEAH!

When IBM Case Manager was first introduced, its powerful task model changed the way our clients built their case style solutions. No longer was it necessary to try and define and manage a giant process map that had to handle every possible route work had to move and any exceptions that might arise.

ICM tasks are defined as children of a case type and when activated, each task instance becomes a child of its parent case instance. With this relationship, tasks can be made smaller and more specific to the job they are trying to get done in support of a case.

There are several flavours of ICM tasks.

Automatic Tasks start on their own when a case is created or a precondition is met (like a property being set to a specific value or a document of a certain class being filed in the case). These tasks are usually associated with a workflow and will launch it when they start and become complete when the workflow completes.

Manual Tasks are similar to automatic tasks except that it is up to the case worker to decide when to start them.

Discretionary Tasks are like the other two except that they don't even show up in the case until a case worker adds one. They can be added to the case as many times as needed and are usually used to handle ad-hoc work assignments or exception processes.

To-do Tasks are a little different in that they are not associated with a workflow. Their job is to indicate that something needs to be done or that some data needs to be checked off or collected. The case worker marks them as complete.

Container Tasks, as their name implies, are containers of other tasks. They have the same settings as the other task types, but their job is simply to activate or enable any of their children when they start.

Custom Tasks are ones where empowered case workers can create a new workflow on the fly to handle something that not been predefined as part of the case solution but may be one that is now commonly needed.

All of these task types have a varying amount of setup associated with them and are usually defined upfront as part of the solution. What if a case worker just wants a simple way to remind themselves or others of something that needs to be done?

This is where IBM Case Manager 5.3.1's new Quick Tasks come in. They are true ICM task objects that get associated to a case but they are also quick in that a case worker can create a list of them as fast as they can type. Quick Tasks were added to the existing To-Do widget.

Unlike To-do Tasks, they can also optionally be assigned to another case worker, given a due date, contain document attachments and have their own discussion thread.

And for those of you who like a little scripting fun, the To-do widget now includes an incoming wiring event that lets you create one of more Quick Tasks programmatically using the following payload:

Like Custom Tasks, Quick Task are enabled/disabled on each case type. Once enabled, you can use role specific pages that include the To-do widget configured to display both Quick Tasks and To-do Tasks or one or the other.

It has been said that beauty is in the eyes of the beholder. With the large number of IBM Case Manager beholders, it never hurts to try and look your best.

ICM 5.3.1 and its underlying user interface framework, IBM Content Navigator, underwent a bit of a visual style update to help present your critical business content and activities in a cleaner and and more modern way. The "classic" style is still available and can be set from your Navigator Settings administrative area.

With ICM 5.3.1, these updated looks are only the beginning. Let's explore the first of its new capabilities.

One of ICM's most powerful features is the ability to customize its user interface with its page designer and widgets. A base set of widgets are provided out of the box and this set can be extended with custom widgets created by our partners or technical teams at our clients. Once created, the custom widgets are registered into the ICM Case Builder and become available in your widget palette, ready to be dragged and dropped onto your pages using one of the prebuilt layouts provided.

But what do you do if your solution needs lots of page widgets? How do you lay them out on your pages so that your users can easily get to them but without making the pages too busy?

ICM 5.3.1 introduces a new Free Form page layout!

When this layout is selected for your page, a new set of Container Widgets appear in your widget palette.

You can now start mixing and matching the various containers; filling them with your page widgets or even other container widgets. The example below shows the Case Toolbar widget above a Tab Container. The first tab then contains a Column Container set to display two columns. The first column contains the Properties widget above a Title Container that, in turn, contains the new Markup widget (more of this chameleon next time). The Title Container is configured to have a twisty so it can be collapsed to hide all the widgets in it.

We've even added a new setting on the Case Information widget to hide its built-in tabs when there is only one panel being displayed in the widget. That way you can put the widget on your page multiple times with each having lots of screen real estate under its own tab provided by a Tab Container.

The widgets can still be wired together in the usual way, even when they are located on different tabs.

So with IBM Case Manager 5.3.1's stylish modern looks and fancy new moves, it's ready to make an appearance in your case solutions. You might find out that this beauty has more surprises in store!

Here's another fun IBM Case Manager client scripting customization that is really easy, but super helpful for some solutions.

IBM Content Navigator has a nice built in feature to allow users to export the content of a displayed list to a .csv file which is compatible with your favourite spreadsheet, Wouldn't it be nice if you could do the same thing with the ICM Case List?

ICM Case Builder lets you create toolbar buttons or menu items that execute some script that you enter. Your script is called with a payload that includes context for the action itself and the page widget it belongs to. For this example, we are going to add an Export toolbar button to the Case List widget by opening the Cases page (or whichever page you have your Case List on) and clicking the widget settings icon (the gear) and going to the Toolbar tab.

Once there, add a new toolbar button and set its Action to Script Action then enter the following JavaScript.

That's it! Save and deploy your solution and go to your case list and find a few cases to export. Click your new toolbar button and Ta Da! You will have a nice .csv file waiting for you in your downloads folder.

The majority of this script uses the ICN JS API since most ICM widgets are built on components provided my the Navigator framework. Have al look and see what else you do to make your ICM solutions great.