Creating a pop-up section

Sometimes we need to convert the standard RMP section to the pop-up form. In this article, I will describe how this can be achieved. These are the steps needed to create the pop-up section: First, you need to create your standard RMP section - you can add any form...

How to import data to Codejig application?

Data migration is one of the most important part of the software deployment process. When you create a new application for your own business or for a customer - you need to ensure that data can be easily transferred from old systems to Codejig app. The easiest and...

How to create a custom web page/dashboard in Codejig?

There are situations when you need to create a dashboard or a totally custom page within your Codejig application. You may wonder - is it even possible? You may be thinking that Codejig allows you to build only database driven applications and isn't flexible enough to...

How to create dependable dropdowns in Codejig?

Dropdowns, also called selection fields, are a great way to help users with data input. They also help people who use the collected data. Dropdowns ensure the entered information are always displayed in the same way. In this article I will show you how to create a...

Improve RMP Code using JavaScript Prototypes

This is a quick piece to document the benefits of using JavaScript prototypes within RMP. Note that this article assumes some familiarity with Object-Oriented Programming and/or the concept of prototypes within JavaScript. Files attached to this article can be...

How to prevent insertion of duplicate records?

One of the missing functionality in jam-py platform is a build in mechanism where we could set a certain columns on a record to be unique. Fortunately jam-py is a very flexible platform and we can add it using JavaScript. Assume we have a products table (catalog) with...

Working with dates in freemarker

Working with dates in RunMyProcess can be tricky. RMP is using very old version of freemarker language so most of the new features included in the latest releases such as "number_to_date" and similar won't work. In this short article I will demonstrate how to get and...

Initiating a process on a specific day each month

A project I'm currently working on required a process to be kicked off on the 1st of each month - this presented a bit of a problem. RMP's tools allow you to initiate recurring processes with a set number of days or hours between instances but there is no native way...

How to add files to the upload widget using CAPI

RMP is not perfect. Sometimes we need to display the files uploaded in one screen in the upload files widget in the other screen. Unfortunately the RMP is not doing that for us and we have to use the workaround described in this article. Create a CAPI with one task....

Trigger a process from outside of RunMyProcess

In this article I will describe how to trigger a process in RunMyProcess platform. This is useful when you want to integrate RMP with a 3rd party system. Basically the steps to achieve our goal are as follow: Create your process - the process will accept one parameter...

How to reset mandatory input fields in a dialog

In this short article I will demonstrate how to reset mandatory fields in dialog A custom widget for adding employees was created (all manadatory input fields) JQuery was used to open a dialog with the custom widget inside Each time the dialog is opened the input...

How to re-assign a task to a different user

In this article I will describe how to re-assign a task to a different user. There is no default functionality which enable user to re-assign a task to a different user. First we need to have a process with a minimum one manual task. The customer wants to have an...

Adding Translation to the email activity in BPM

In one of the latest version of RMP platform, users are able to use the translation tool. It is very useful feature which help interpreters translate RMP Applications to different languages. In this article I will describe how to add email translations as this is not...

Aggregate freemarker query with sum functionality

In this article I will describe how to create an aggregate freemarker query with sum functionality Use the below example in your CAPI or Process {"$match" : { "start_date_year" : 2016 } } { "$group" : { "_id" : { "employee_id": "$employee_id", "days_substracted":...

How to add comment in freemarker

Freemarker comments are similar to HTML comments, but they are delimited by . Comments will be ignored by FreeMarker, and will not be written to the output. They works also as multi line comment.

How to sort results in the report widget?

Sometimes we are required to sort the results displayed in the report widget by the particular column. In this article, I will sow you a sample query, which automatically sort the data by the values in the given column. So, let's imagine that we have the following...

How to make movable rows in report widget

Sometimes it is required to give user ability to rearrange the order of data in the report widget. In this article I will describe how to achieve this. In order to make movable rows in report widget, place and configure your report widget on the form. Then add a JS...

How to validate an array widget

In this article, I will present how to validate an array widget dynamically, only when user decide to enter some details into the widget. Usually to validate the form in RunMyProcess we would use: RMPApplication.getInvalidWidgets() function, which return the array of...

How to import data from CSV file

Data migration is a very important aspect of developing and implementing a new IT system in place of the older solutions. This causing a problems with data import between old and new system. In this article I will describe one of the method of importing data using the...

Adding menu to RunMyProcess application

If you want to add a standard menu to your RunMyProcess application, you must read this article, where I am explaining in details, how to do it. First, you need to create a new custom widget UI. Then, you will be able to configure the menu content in the "Menu...

How to apply a visibility logic in user interfaces

Sometimes we want to display/hide certain fields in our form depend on the values selected in the other field. In this article I will show you how to apply a visibility logic in user interfaces. Let's say we have two list widgets in our UI with the following id's:...

How to use javascript in BPM?

This is really clever. So far we have been using only freemarker as a back end language while designing the processes in RunMyProcess. In this article I will demonstrate how to use javascript instead. So, we can paste any javascript bit of code between the special...

Set of JavaScript Date functions

In this article I will present a set of JavaScript date functions which will help you convert or manipulate the dates in the RMP applications. Calculate last day of month in JavaScript function calcLastDayOfMonth(myMonth){ // myMonth is a number of the month where 0...

Querying the date ranges from the collection

Sometimes we need to get records from the collection which have been created between the particular dates. This is of course only possible if we save the record with the current timestamp. In this article, I will show a sample freemarker query where you could query...

How to create an aggregate query in freemarker

In this example I will show you how to create a sample aggregate Freemarker query. You can use it in the process or in composite API. Let's imagine that we have a sample data in the collection and we want to return all the campaigns id's for a given...

How to modify the width of the column in reports on mobile

Sometimes we need to modify the width of the columns in the report widget when the report is displayed on mobile device. Unfortunately in the current version of the platform - there is no setting for this value. We can specify the general width of the column which...

Securing RMP applications

Fujitsu RMP is generally a very secure platform. By default all the applications are available only through the secure connection (https), user interfaces are rendered in the back end of the platform - making difficult to explore the web page elements, and of course...

Using Aggregate to Query Embedded Documents

MongoDB is a document driven database that allows for documents to be stored within documents but it is not obvious to start with how these documents can be queried against to retrieve relevant results from your query. To access these documents we need to use the...

How to create a primary key validation function

Sometimes when the user creates a new entry in the collection through the form, we may need to check if the entered primary key is not saved already in the collection. In this article I will show the function to validate the data before inserting new record. So, one...

How to select an item in dropdown (list) widget

OK, sometimes we have to programmatically select a particular value in the dropdown (list) widget in RunMyProcess. To do this we can use the following command: id_of_your_list_widget.setSelectedLabel("The label you want to select"); DONE

How to create a sliding menu for RMP application

In this article I will describe how to create a sliding menu for RMP application. It seems to be a really straightforward job in XXI century to add the standard sliding menu on the UI which will be displayed on mobile devices. Unfortunately majority of the most...

How to pass the line number from the report widget

Sometimes we want to make some calculations on the data stored in the selected row in the report widget. In this article I will demonstrate how to pas the row id and collect the data from this row using JavaScript. Let's consider the following scenario. We have a...

How to get link parameters

This article describes how in JavaScript retrieve the link (url) parameters. The original function was found at: stackoverflow.com Imagine the sample link with parameters: www.test.com/test.html?a=1&b=2&c=3. To get the values for a, b and c we can use the...

How to work with array widget

Array widget in RMP platform is a very useful tool, which may help you manipulate data in the easiest possible way. Unfortunately the functionality of the widget is poorly documented on the RMP website, thus I have created this article to explain the hidden features...

How to transpose objects for array widget

Working with data received from mongoDB collection can be tricky. RMP platform however offer a great widget which will help with the task. The only problem with working on these data is their format. MongoDB stores the data as a collections of objects. Array widget on...

How to query a big data

This article explains how to query a big data from a collection(RunMyProcess database). In fact, using the standard functions provided by the platform, it’s possible to read MAX 1000 records. But, for many applications it could happen that we have more than 1000...

Getting data from collection using freemarker

In this article I will try to describe the best way to load the data from the collection using freemarker query. This solution can be used while designing Business Process Models (BPM's) using Fujitsu RunMyProcess platform. To get the data from the collection in the...

Which barcodes the native RMP app can scan

Quite recently I have been asked by one of the customer what barcodes are supported in the native Fujitsu RunMyProcess app. Here is the full list of all supported barcode standards. The app is using a device camera to "scan" the barcode and insert the scanned value to...

CSS tips for modifying the default Fujitsu RMP user interface

Sometimes customers require to modify the default RMP user interface to match their company layout standards. To modify the default RMP user interface, you need to add a custom css file where you define a new page layout. In this article I will show you how to create...

How to create a case insensitive query in freemarker

Sometimes we need to pull some data from the collection, where the searched parameter may be stored using upper or lower case. This causing problems when you are using pattern to get this data. In this article, I will describe how to create a case-insensitive query....

Populating the drop-down list from the collection

Let's imagine that we have some data in the collection. We want to use some of this data to populate the dropdown list in our user interface. In this article I will describe how to do it. This are our sample data we will use in the example: [{ "profile_name" : "2L",...

Creating an output xml message from the xForm

How to populate a table with a data received from the database, add new columns where users could add some informations and send everything in output message? In this article I would like to explain how in Cordys populate a table with the data received from the...