Questetra BPMS: Process, Concat All Strings
Concatenates all String-type data. Searches and joins string data and title strings stored as workflow data in Questetra BPM Suite. A line break is added between each data which is used for checking the existence of keywords.
Configs
A: Select HTTP_Authz Setting *
B: Set WF Platform URL (${var[applicationRoot]} or https: //../) * #{EL}
C: Set Process ID ( e.g., “123” ) * #{EL}
D: Select STRING DATA for Concatenated String (update)
E: Select STRING DATA for Concatenated String (new lines added)
Script (click to open)
// about Questetra Workflow API
// See https://online-demo-ja.questetra.net/s/swagger/index.html?urls.primaryName=Workflow%20API
// or "https://{YOUR}.questetra.net/s/swagger/index.html"
// about Questetra OAuth2 (for System Admin)
// Get ID&Secret: System Settings > API Clients > OAuth2 Clients > Add OAuthw Client
// (config "Redirect URL" = "https://s.questetra.net/oauth2callback" )
// (Scope: "read" or "any" )
// Set ID&Secret: Workflow App > Detail > OAuth2 Setting > (Get Refresh Token)
//////// START "main()" ////////
main();
function main(){
//// == Config Retrieving / 工程コンフィグの参照 ==
const strAuthzSetting = configs.get( "AuthzConfA" ); // required
engine.log( " AutomatedTask Config: Authz Setting: " + strAuthzSetting );
const applicationRoot = configs.get( "conf_ApplicationRoot" ) + ""; // required
const processId = configs.get( "conf_ProcessId" ) + ""; // required
const dataIdD = configs.get( "conf_DataIdD" ) + ""; // not required
const dataIdE = configs.get( "conf_DataIdE" ) + ""; // not required
// 'java.lang.String' (String Obj) to javascript primitive 'string'
engine.log( " AutomatedTask Config: Application Root: " + applicationRoot );
engine.log( " AutomatedTask Config: Process ID: " + processId );
//// == Data Retrieving / ワークフローデータの参照 ==
let concatenatedTextSource = engine.findDataByNumber( dataIdE );
//// == Calculating / 演算 ==
// get ProcessInstance via Questetra Workflow API
// com.questetra.bpms.core.event.scripttask.HttpClientWrapper
let apiRequest = httpClient.begin(); // HttpRequestWrapper
apiRequest = apiRequest.authSetting( strAuthzSetting ); // with "Authorization: Bearer XX"
// https://questetra.zendesk.com/hc/en-us/articles/360024574471-R2300#HttpRequestWrapper
apiRequest = apiRequest.queryParam( "processInstanceId", processId );
const apiUri = applicationRoot + "API/OR/ProcessInstance/view";
// request to API
engine.log( " AutomatedTask Trying: GET " + apiUri );
const response = apiRequest.get( apiUri );
const responseCode = response.getStatusCode() + "";
engine.log( " AutomatedTask ApiResponse: Status " + responseCode );
if( responseCode !== "200"){
throw new Error( "\n AutomatedTask UnexpectedResponseError: " +
responseCode + "\n" + response.getResponseAsString() + "\n" );
}
const responseStr = response.getResponseAsString() + "";
const responseObj = JSON.parse( responseStr );
//engine.log( responseStr );
// retrieve JSON
let concatenatedText = "";
concatenatedText += responseObj.processInstance.processInstanceTitle + "\n";
for( const key in responseObj.processInstance.data ){
if( responseObj.processInstance.data.hasOwnProperty(key) ) {
engine.log( key + ": " + responseObj.processInstance.data[key].dataType );
if( responseObj.processInstance.data[key].dataType === "STRING" ){
if( responseObj.processInstance.data[key].value == null ){
engine.log( " AutomatedTask Json: null string" );
}else{
concatenatedText += responseObj.processInstance.data[key].value + "\n";
}
}
}
}
concatenatedText = concatenatedText.replace(/[\n]*$/, "");
//// == Data Updating / ワークフローデータへの代入 ==
if( concatenatedText === "" ){
engine.log( " AutomatedTask DataUpdating: Concatenated Text empty" );
}
if( dataIdD !== "" ){
engine.setDataByNumber( dataIdD, concatenatedText );
}
if( dataIdE !== "" ){
if( concatenatedTextSource !== null ){
engine.setDataByNumber( dataIdE, concatenatedTextSource + "\n" + concatenatedText );
}else{
engine.setDataByNumber( dataIdE, concatenatedText );
}
}
} //////// END "main()" ////////
Download
2021-07-05 (C) Questetra, Inc. (MIT License)https://support.questetra.com/addons/questetra-bpms-process-concat-all-strings-2021/ The Add-on import feature is available with Professional edition.
Notes
It can also be used as a Data Item for full text search
It supports loop processing
It does not support Discussion type or Table type data
Capture
See also
Like this: Like Loading...
Related
Pingback: Questetra BPMS: Process, Concat All Strings – Questetra Support