Hi there!
The topic I am going to talk about this time is related with utilizing Questetra, as well as system collaboration.
Management of master data associated with Questetra is one of the common agendas.
There are cases where you prepare an approval flow when registering/modifying/deleting master data, which Questetra will sometimes do automatically, and other cases where Questetra manages master data separately.
There are several ways to maintain the master data. I am going to summarize the kinds of methods there are and the advantages and disadvantages of each one, so I hope that it can be used as material for your future consideration.
Patterns of Master Data Management
The pattern varies depending on whether you keep the original master data externally (Salesforce/kintone/Google Spreadsheet, etc.) and whether you keep a copy of it internally in the event that the original is kept externally.
-
- Pattern 1: Original master data is retained outside Questetra, and is referenced each time
-
- Pattern 2: Original master data is retained outside Questetra, periodically referring to, and synchronizing with, the copy within Questetra
-
- Pattern 3: Original master data is retained inside Questetra
Pattern | Advantages | Disadvantages |
---|---|---|
1 | ・Changes in choices are reflected in real time ・Easy to hold multiple Data Items related to master ・Easy to list master data (depending on where you keep it) |
・It must be set up to return choices in xml format. (Needs to be created outside Questetra. Slightly larger volume) |
2 | ・Easy to hold multiple Data Items related to master ・Easy to list master data (depending on where you keep it) |
・Changes in choices are not reflected in real time ・Must be set up to periodically synchronize. (Volume is small, since scripts in Questetra applications can cope as long as the external system has APIs.) |
3 | Changes in choices are reflected in real time ・Can be realized with Questetra alone |
・It is necessary to consider when to hold multiple data items related to master ・Difficult to list master data |
Related manual M319: Register an Options-XML file to which the Process Model Definitions Refer to
* Since the master data held by Questetra has only two items, the Choice ID and the display data, when you want to manage multiple data items related to the master you should put the data including the separator in the display data part and divide it on the reference side. (For example, if it is the company name and the URL that you want to manage, set the display data part as “Foobar Corporation; https://foobar.com”, and on the reference side, configure the process to divide with semicolons and set it in a Data Item.)
*There are cases where you will want to change the options contents according to the Process/issue, but that is a slightly different agenda from this article. Please refer to the following site for that.
Related manual M208: Options at Downstream Step, Set by Upstream Step
There will be situations in which parent-child workflows are interlocking with multiple selected Data Items, but that is also a slightly different theme from that covered in this article. Please refer to the following site for that.
Related manual M410: Narrow Down “Product Name” List Display by Filtering with “Product Classification”
Details of Each Pattern
Pattern 1: Original master data is retained outside Questetra, and reference is made each time
The external data reference takes the form of an http access that returns the options xml.
For example, one method is to retain external data in a Google Spreadsheet, and prepare a Web application with Google Apps Script (GAS) to generate and return options xml.
I prepared a sample Google Spreadsheet using this method and released it as the following.
Sample Google Spreadsheet: Management of master data of countries in the world
In addition, to access this sample Google Spreadsheet with HTTP from a Select-type Data Item, please specify the following URL as shown below.
The GAS sample code for creating such a Google Spreadsheet is as follows.
var SHEET_ID = "xxxxx"; //input Google Sheet id
var SHEET_NAME = "Sheet1"; //input Sheet name
function doGet(e) {
return receive_(e);
}
function doPost(e) {
return receive_(e);
}
function receive_(e) {
var search_key = e.parameter['query'];
if (search_key == undefined) {
search_key = "";
}
var out = ContentService.createTextOutput(buildXml(search_key));
Logger.log(out.getContent());
return out;
}
function buildXml(search_key) {
var sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME)
var startRow = 2;
var numRows = sheet.getLastRow() - 1;
var dataRange = sheet.getRange(startRow, 1, numRows, 2);
var data = dataRange.getValues();
var out_string = '';
out_string += '\n';
for ( var i = 0; i < data.length; ++i) { var row = data[i]; var select_value = row[0]; var select_display = row[1]; if ((search_key == "") || (select_display.indexOf(search_key) >= 0)) {
out_string += '\n';
}
}
out_string += '';
Logger.log(out_string);
return out_string;
}
For details on how to prepare a web application on GAS, searching “Google Apps Script web application” will hit many articles, so please refer to those.
Pattern 2: Original master data is retained outside Questetra, periodically referencing it synchronously with the copy within Questetra
The API of an external service from Questetra will be called and the acquired data (usually JSON format) will be processed and imported with a Script Task. We have also prepared an Add-on for such processing.
If you want to keep external data in Salesforce, please refer to the following article for the implementation method.
Blog: How to Use Customer Data in Salesforce as Options
To use Google Spreadsheet, please refer to the following sample.
Workflow Sample Episode 502: “Master Reference” is for Eliminating the Fluctuation!
For kintone, please refer to the following sample.
Workflow Sample Episode 503: “Master Reference” is for Eliminating the Fluctuation! (kintone version)
Pattern 3: Original master data is retained inside Questetra
Even though it is possible to create your own options xml file and upload it, it is time-consuming to create a file and there’s no maintenance record. It will be much easier when you make that process into an App.
* Options XML: there are two ways in which to store XML: as system common, and to retain only for a specific App. In the former case, Service Task (Choices update) can be used, but in the latter case it can’t, so it can’t be applied as an App. Please take note.
Summary
There are various methods, some are suitable and others not so much, so please use each one properly according to the scenario.
Please feel free to ask any questions via Contact us, if you have any.
Pingback: RPA is Not the Only Automation! Various Examples of Automation by Cloud-based Workflow - Questetra
Pingback: Select-Type – Questetra Support
Pingback: Using Amazon RDS as an External Master (Terraform) – Questetra Support
Pingback: Using Amazon RDS as an External Master (AWS Console) – Questetra Support
Pingback: Using Kintone App as an External Master – Questetra Support
Pingback: Using a file in Lambda as an external master – Questetra Support