{"id":142053,"date":"2023-02-09T16:10:58","date_gmt":"2023-02-09T07:10:58","guid":{"rendered":"https:\/\/support.questetra.com\/?page_id=142053"},"modified":"2023-06-27T10:52:01","modified_gmt":"2023-06-27T01:52:01","slug":"workflow-script-example","status":"publish","type":"page","link":"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/","title":{"rendered":"Workflow Script Example"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The No-Code development platform <strong>&#8220;Questetra BPM Suite&#8221;<\/strong> can also incorporate script codes (ECMAScript\/JavaScript) within Workflow-Apps. In other words, those who have coding skills can realize automation of &#8220;complex data processing&#8221; and &#8220;communication with external APIs&#8221;. Note that the script code is copyrighted. When using [ServiceTask] packaged (modularized) by a third party, you need to pay attention to the license conditions.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-attachment-id=\"142054\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-scripting\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-scripting\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=1200%2C675&#038;ssl=1\" alt=\"R2300: Workflow Script Example\" class=\"has-border-color wp-image-142054\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"1200\" data-attachment-id=\"142719\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/ads-process-modeler-en-960x1200-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?fit=960%2C1200&amp;ssl=1\" data-orig-size=\"960,1200\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ads-process-modeler-en-960&amp;#215;1200-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?fit=504%2C630&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?resize=960%2C1200&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-142719\" style=\"border-color:#009900;border-width:2px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?resize=252%2C315&amp;ssl=1 252w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?resize=504%2C630&amp;ssl=1 504w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/ads-process-modeler-en-960x1200-1.png?resize=768%2C960&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\" style=\"margin-top:var(--wp--preset--spacing--60);margin-right:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\">\n<li><a href=\".\/#process-level-methods\">Process level Methods<\/a>\n<ul class=\"wp-block-list\">\n<li>1-1. <a href=\".\/#process-property\">Access to Process Property<\/a><\/li>\n\n\n\n<li>1-2. <a href=\".\/#process-value\">Access to Process Value<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\".\/#workflowapp-level-methods\">WorkflowApp level Methods<\/a>\n<ul class=\"wp-block-list\">\n<li>2-1. <a href=\".\/#workflowapp-property\">Access to WorkflowApp Property<\/a><\/li>\n\n\n\n<li>2-2. <a href=\".\/#qdatapocket\">Access to WorkflowApp DataItems (QdataPocket)<\/a><\/li>\n\n\n\n<li>2-3. <a href=\".\/#serviceTask-configuration\">Access to ServiceTask Configuration<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\".\/#workflowplatform-level-methods\">WorkflowPlatform level Methods<\/a>\n<ul class=\"wp-block-list\">\n<li>3-1. Access to Environment Variable<\/li>\n\n\n\n<li>3-2. Access to System Settings<\/li>\n\n\n\n<li>3-3. Logging<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\" start=\"4\" style=\"margin-top:var(--wp--preset--spacing--60);margin-right:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);margin-left:var(--wp--preset--spacing--60)\">\n<li><a href=\".\/#Methods-for-Qdata\">Methods for {Qdata} (Questetra data objects)<\/a>\n<ul class=\"wp-block-list\">\n<li>4-0. <a href=\".\/#Handle-STRING\">Handle STRING<\/a><\/li>\n\n\n\n<li>4-1. <a href=\".\/#Handle-DECIMAL\">Handle DECIMAL<\/a><\/li>\n\n\n\n<li>4-2. <a href=\".\/#Handle-QUSER-QGROUP-QROLE\">Handle QUSER QGROUP QROLE<\/a><\/li>\n\n\n\n<li>4-3. <a href=\".\/#Handle-DATE-and-DATETIME\">Handle DATE and DATETIME<\/a><\/li>\n\n\n\n<li>4-4. <a href=\".\/#Handle-SELECT\">Handle SELECT<\/a><\/li>\n\n\n\n<li>4-5. <a href=\".\/#Handle-FILE\">Handle FILE<\/a><\/li>\n\n\n\n<li>4-6. <a href=\".\/#Handle-LIST-Table\">Handle LIST (Table)<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\".\/#Other-Supported-Methods\">Other Supported Methods<\/a>\n<ul class=\"wp-block-list\">\n<li>5-1. <a href=\".\/#Send-Email\">Send Email<\/a><\/li>\n\n\n\n<li>5-2. <a href=\".\/#Send-HttpRequest\">Send HttpRequest<\/a><\/li>\n\n\n\n<li>5-3. <a href=\".\/#Manipulate-String\">Manipulate String<\/a><\/li>\n\n\n\n<li>5-4. <a href=\".\/#Manipulate-XML\">Manipulate XML<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">0. Overview<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The task automation can be realized through set Script Code to the automated activity <strong>[ScriptTask]<\/strong> or implement the original automated activity <strong>[ServiceTasks]<\/strong> (Addon Auto-Steps). When a process token arrives at the automated activity ([ScriptTask] or [ServiceTask]), the corresponding script is executed.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 0a: Hello World\nengine.log( &quot;Hello World !&quot; );\nengine.log( &quot;Hello Server-side Automation !!&quot; );<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1807\" height=\"965\" data-attachment-id=\"142062\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/server-side-hello-world\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?fit=1807%2C965&amp;ssl=1\" data-orig-size=\"1807,965\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"server-side-hello-world\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?fit=1024%2C547&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?resize=1807%2C965&#038;ssl=1\" alt=\"\" class=\"wp-image-142062\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?w=1807&amp;ssl=1 1807w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?resize=590%2C315&amp;ssl=1 590w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?resize=1024%2C547&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?resize=768%2C410&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/server-side-hello-world.png?resize=1536%2C820&amp;ssl=1 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"script-engine\">0-1. Script engine<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The executable Script Code is <strong>JavaScript<\/strong> compliant with ECMAScript (by Ecma International): ECMAScript 2022 (as of 2022-12-12).<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66%\">\n<p class=\"wp-block-paragraph\">It is also possible to access Java objects. For example, use the <code>add()<\/code> method to add data to an <code>ArrayList<\/code> object. Use the <code>remove()<\/code> method to remove data, the <code>size()<\/code> method to get the number of elements, and the <code>get()<\/code> method to retrieve elements.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 0-2a: Access to Java object\nfor ( let i = 0; i &lt; filesInput.size(); i++ ){\n  const strInputFileName = filesInput.get(i).getName();\n  engine.log( strInputFileName );\n}\n\n\/*\n- java.util.ArrayList, `public int size()`\n    - Returns the number of elements in this list.\n- java.util.ArrayList, `public E get(int index)`\n    - Returns the element at the specified position in this list.\n*\/<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>GraalJS:\n<ul class=\"wp-block-list\">\n<li>engine-type: <code>2<\/code><\/li>\n\n\n\n<li>2020-10-12 <strong>RELEASED<\/strong> &#8211; <a href=\"https:\/\/support.questetra.com\/en\/versions\/version-1220\/\">BPMS v12.2<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><del>Nashorn<\/del>:\n<ul class=\"wp-block-list\">\n<li>engine-type: <code>1<\/code><\/li>\n\n\n\n<li>2018-06-11 <strong>RELEASED<\/strong> &#8211; <a href=\"https:\/\/support.questetra.com\/en\/versions\/version-1170\/\">BPMS v11.7<\/a><\/li>\n\n\n\n<li>2021-05-25 <strong>DEPRECATED<\/strong><\/li>\n\n\n\n<li>2022-04-11 <strong>OBSOLATE<\/strong> &#8211; <a href=\"https:\/\/support.questetra.com\/en\/versions\/version-140\/\">BPMS v14.0<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><del>Rhino<\/del>:\n<ul class=\"wp-block-list\">\n<li>engine-type: <code>0<\/code><\/li>\n\n\n\n<li>2013-10-07 <strong>RELEASED<\/strong> &#8211; <a href=\"https:\/\/japan.zdnet.com\/release\/30054194\/\" target=\"_blank\" rel=\"noreferrer noopener\">BPMS v9.7<\/a><\/li>\n\n\n\n<li>2020-11-13 <strong>DEPRECATED<\/strong><\/li>\n\n\n\n<li>2021-07-12 <strong>OBSOLATE<\/strong> &#8211; <a href=\"https:\/\/support.questetra.com\/en\/versions\/version-131\/\">BPMS v13.1<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-attachment-id=\"142103\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-script-task-overview\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-script-task-overview\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?resize=1200%2C675&#038;ssl=1\" alt=\"workflow script task overview\" class=\"has-border-color wp-image-142103\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-task-overview.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-attachment-id=\"142105\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-service-task-addon-overview\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-service-task-addon-overview\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?resize=1200%2C675&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-142105\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-service-task-addon-overview.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"versioning\">0-2. Versioning<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The code executed in <strong>[ScriptTask]<\/strong> depends on the Workflow-App (process model) version.\n<ul class=\"wp-block-list\">\n<li>The process token will flow with the app version at the time the process starts.<\/li>\n\n\n\n<li>The Script Code set in that version is executed.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The code executed in <strong>[ServiceTask]<\/strong> does <strong>not <\/strong>depend on the Workflow-App version.\n<ul class=\"wp-block-list\">\n<li>The latest Script Code at the time the token arrives is executed.<\/li>\n\n\n\n<li>(similar to a dynamic link library mechanism)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-attachment-id=\"142143\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-app-versions-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-app-versions-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?resize=1200%2C675&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-142143\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-app-versions-en.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">0-3. Type Error<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">JavaScript will quietly convert that value to the type it needs. (type coercion). However, when calling Java methods, a value conversion might be required. If the class is not accessible (including Lossy Conversion), a TypeError is thrown.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ &quot;java.lang.Integer&quot; to &quot;number&quot;\nlet num = processInstance.getProcessInstanceId() -\n          processInstance.getProcessInstanceSequenceNumber();\nengine.log( num.toString() );  \/\/ &quot;123444&quot;\n\n\n\/\/ &quot;java.lang.Boolean&quot; to &quot;boolean&quot;\nif( processInstance.getProcessInstanceDebug() ){\n  engine.log( &quot;match if&quot; );\n}else{\n  engine.log( &quot;match else&quot; );\n}  \/\/ &quot;match else&quot;<\/code><\/pre><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>engine.log( processInstance.getProcessInstanceId().toString() ); \/\/ ok\nengine.log( processInstance.getProcessInstanceId() );  \/\/ TypeError\n\n\/\/  Cannot convert &#39;123456&#39;(language: Java, type: java.lang.Integer)\n\/\/  to Java type &#39;java.lang.String&#39;: Invalid or lossy primitive coercion.\n\n\nengine.log( processInstance.getProcessInstanceDebug().toString() ); \/\/ ok\nengine.log( processInstance.getProcessInstanceDebug() );  \/\/ TypeError\n\n\/\/  Cannot convert &#39;false&#39;(language: Java, type: java.lang.Boolean)\n\/\/  to Java type &#39;java.lang.String&#39;: Invalid or lossy primitive coercion.<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"resources\">0-4. Resources<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The resources (data and objects) that Script can access are limited to the scope of data related to the process (process instance). For example, Scripts cannot access the Data stored in past processes unless REST APIs are used.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong><em>Process instance variables<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>[Process] properties<\/strong> &#8212; managed by workflow engine <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>[Process ID] : <code>p123<\/code><\/li>\n\n\n\n<li>[Start Time] : <code>2023-12-31 23:59<\/code><\/li>\n\n\n\n<li>[End Time] : <code>2024-01-01 01:23<\/code><\/li>\n\n\n\n<li>[Start User] : <code>{\"uid\":<\/code>45<code>, \"name\": \"tanaka\"}<\/code><\/li>\n\n\n\n<li>[Start Organization] : <code>{\"gid\": \"56\", \"name\": \"sales div\"}<\/code><\/li>\n\n\n\n<li>[Debug] : false<\/li>\n\n\n\n<li>etc.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>[Process] values<\/strong> &#8212; entered by task operators <strong><em>(Script READ-WRITE)<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li>[Process Title] : &#8220;Shipping to Suzuki&#8221;<\/li>\n\n\n\n<li><code>#{#q_Family_Name}<\/code> : &#8220;Suzuki&#8221;<\/li>\n\n\n\n<li><code>#{#q_Given_Name}<\/code> : &#8220;Ichiro&#8221;<\/li>\n\n\n\n<li><code>#{#q_Customer}<\/code> : &#8220;SUZUKI Ichiro&#8221;<\/li>\n\n\n\n<li><code>#{#q_Ship_Date}<\/code> : &#8220;2023-01-23&#8221;<\/li>\n\n\n\n<li><code>#{#q_Birth}<\/code> : &#8220;1970-01-01&#8221;<\/li>\n\n\n\n<li><code>#{#q_Age}<\/code> : <code>53<\/code><\/li>\n\n\n\n<li><code>#{#q_Attached}<\/code> : <code>[{\"name\": \"Invoice.txt\", \"Content-Type\": \"text\/plain\"}]<\/code><\/li>\n\n\n\n<li><code>#{#q_Care_Mark}<\/code> : <code>[{\"dnb\":\"NotBEND\"},{\"dry\":\"KeepDRY\"}]<\/code><\/li>\n\n\n\n<li><code>#{#q_Satisfaction}<\/code> : <code>[{\"3\":\"Neutral\"}]<\/code><\/li>\n\n\n\n<li>etc.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong><em>Process model variables<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>[Workflow App] properties<\/strong> &#8212; managed by workflow engine <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>[Workflow App ID] : <code>m2345<\/code><\/li>\n\n\n\n<li>[Workflow App version] : <code>567<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>[Workflow Diagram] definition &#8212; by process designer <em>(Script inaccessible)<\/em><\/li>\n\n\n\n<li><strong>[Data Item] definitions<\/strong> &#8212; set by process designer <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>[Data Type] : STRING<\/li>\n\n\n\n<li>[Item Name] : &#8220;Family Name&#8221;<\/li>\n\n\n\n<li>[Field Name] : &#8220;q_Family_Name&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>[ServiceTask] configuration<\/strong> &#8212; set by process designer <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>[Lower Limit of Random Number] : <code>0<\/code><\/li>\n\n\n\n<li>[Upper Limit of Random Number] : <code>10<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>Workflow Platform variables<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>System environment variable<\/strong> &#8212; <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>&#8220;Time zone&#8221; : &#8220;GMT+09:00&#8221;<\/li>\n\n\n\n<li>&#8220;Minute Offset&#8221; : <code>540<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>System Settings variable<\/strong> &#8212; set by system admin <em>(Script ReadOnly)<\/em>\n<ul class=\"wp-block-list\">\n<li>[Usr] : {&#8220;user id&#8221;:1,&#8221;email&#8221;:&#8221;SouthPole@questetra.com&#8221;},{},,<\/li>\n\n\n\n<li>[Role] : {&#8220;role id&#8221;:12,&#8221;role name&#8221;:&#8221;managers&#8221;},{},,<\/li>\n\n\n\n<li>[Master] : {&#8220;example.com&#8221;: &#8220;Example Inc&#8221;},{},,<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>[Process Log]<\/strong>, <strong>[Open Chat]<\/strong> &#8212; <strong><em>(Script WriteOnly)<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li><code>engine.log( \"Hello World !\" );<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"142148\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-script-code-process-data\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-script-code-process-data\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-142148\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-process-data.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large has-custom-border is-style-default\"><a href=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?ssl=1\" target=\"_blank\" rel=\"noreferrer noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"142069\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/workflow-script-code-accessibility\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"workflow-script-code-accessibility\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-142069\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-script-code-accessibility.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"process-level-methods\">1. Process level Methods<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"process-property\">1-1. Access to Process Property<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>JavaNum<\/strong> processInstance.getProcessInstanceId()\n<ul class=\"wp-block-list\">\n<li>Return: [Process ID] of this process instance<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QuserView<\/strong> processInstance.getProcessInstanceInitQuser()\n<ul class=\"wp-block-list\">\n<li>Return: [Process Start User]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> processInstance.getProcessInstanceInitQuserId()\n<ul class=\"wp-block-list\">\n<li>Return: ID of [Process Start User]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> processInstance.getProcessInstanceInitQuserName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of [Process Start User]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> processInstance.getProcessInstanceInitQgroup()\n<ul class=\"wp-block-list\">\n<li>Return: [Process Start Organization]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> processInstance.getProcessInstanceInitQgroupId()\n<ul class=\"wp-block-list\">\n<li>Return: ID of [Process Start Organization]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> processInstance.getProcessInstanceInitQgroupName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of [Process Start Organization]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> processInstance.getProcessInstanceStartDatetime()\n<ul class=\"wp-block-list\">\n<li>Return: [Process Start Time]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> processInstance.getProcessInstanceSequenceNumber()\n<ul class=\"wp-block-list\">\n<li>Return: [Process Sequence]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>boolean<\/strong> processInstance.getProcessInstanceDebug()\n<ul class=\"wp-block-list\">\n<li>Return: <code>true<\/code> if this Process instance is for debug<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>string<\/strong>: JavaScript string <em>(java.lang.String)<\/em><\/li>\n\n\n\n<li><strong>boolean<\/strong>: JavaScript boolean <em>(java.lang.Boolean)<\/em><\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong>: java.math.BigDecimal<\/li>\n\n\n\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n\n\n\n<li><strong>QgroupView<\/strong>: com.questetra.bpms.core.event.scripttask.QgroupView<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong>: com.questetra.bpms.util.AddableTimestamp<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 1-1: Get process properties\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nengine.log( processInstance.getProcessInstanceId().toString() );\n  \/\/ &quot;123456&quot;\nengine.log( processInstance.getProcessInstanceInitQuser().getEmail() );\n  \/\/ &quot;SouthPole@example.com&quot;\nengine.log( processInstance.getProcessInstanceInitQuserId().toString() );\n  \/\/ &quot;1&quot;\nengine.log( processInstance.getProcessInstanceInitQuserName() );\n  \/\/ &quot;SouthPole&quot;\nengine.log( processInstance.getProcessInstanceInitQgroup().getEmail() );\n  \/\/ &quot;all@example.com&quot;\nengine.log( processInstance.getProcessInstanceInitQgroupId().toString() );\n  \/\/ &quot;1&quot;\nengine.log( processInstance.getProcessInstanceInitQgroupName() );\n  \/\/ &quot;Org&quot;\nengine.log( processInstance.getProcessInstanceStartDatetime().toString() );\n  \/\/ &quot;2023-01-23 12:34&quot;\nengine.log( processInstance.getProcessInstanceSequenceNumber().toString() );\n  \/\/ &quot;12&quot;\nengine.log( processInstance.getProcessInstanceDebug().toString() );\n  \/\/ &quot;false&quot;\n\nlet num = processInstance.getProcessInstanceId() -\n          processInstance.getProcessInstanceSequenceNumber();\nengine.log( num.toString() );  \/\/ &quot;123444&quot;\n\nif( processInstance.getProcessInstanceDebug() ){\n  engine.log( &quot;match if&quot; );\n}else{\n  engine.log( &quot;match else&quot; );\n}  \/\/ &quot;match else&quot;<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"process-value\">1-2. Access to Process Value<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>string<\/strong> processInstance.getProcessInstanceTitle()\n<ul class=\"wp-block-list\">\n<li>Return: [Title] of this process<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> processInstance.setProcessInstanceTitle( stringTitle )\n<ul class=\"wp-block-list\">\n<li>Parameter: New [Title]&nbsp;to overwrite<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> engine.findData( <strong>QdataPocket<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter: Container definition (e.g. <code>{number:1,type:\"Numeric\",,,}<\/code>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> engine.findDataByVarName( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>Parameter: [Field Name] of this data container (QdataPocket)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> engine.findDataByName( stringItemName )\n<ul class=\"wp-block-list\">\n<li>Parameter: [Item Name]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> engine.findDataByNumber( stringDataDefinitionNumber )\n<ul class=\"wp-block-list\">\n<li>Parameter: Number<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> engine.findDataByNumber( numberDataDefinitionNumber )\n<ul class=\"wp-block-list\">\n<li>Parameter: Number<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong><em>{Qdata}<\/em><\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter: Data container definition<\/li>\n\n\n\n<li>Parameter: New data object to overwrite<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong><em>{Qdata}<\/em><\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter: [Field Name] of this data container (QdataPocket)<\/li>\n\n\n\n<li>Parameter: New data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByName( stringItemName, <strong><em>{Odata}<\/em><\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter: [Item Name] of this data container (QdataPocket)<\/li>\n\n\n\n<li>Parameter: New data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByNumber( stringDataDefinitionNumber, <strong><em>{Qdata}<\/em><\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter : Number of this data container (QdataPocket)<\/li>\n\n\n\n<li>Parameter: New data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByNumber( numberDataDefinitionNumber, <strong><em>{Qdata}<\/em><\/strong> )\n<ul class=\"wp-block-list\">\n<li>Parameter : Number of this data container (QdataPocket)<\/li>\n\n\n\n<li>Parameter: New data<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>if no data is stored, returns &#8220;<code>null<\/code>&#8221; instead of <strong><em>{Qdata}<\/em><\/strong>.<\/li>\n\n\n\n<li>if &#8220;<code>null<\/code>&#8221; is set as parameter, data will be deleted.<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>\n<ul class=\"wp-block-list\">\n<li>Something like a container that stores data<\/li>\n\n\n\n<li>The definition for each [Data Item] defined by process designer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong>\n<ul class=\"wp-block-list\">\n<li>The value (data or object) stored in each QdataPocket<\/li>\n\n\n\n<li>The value type depends on the definition of each [Data Item]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong> as Return\n<ul class=\"wp-block-list\">\n<li>if no data, <strong><em>{Qdata}<\/em><\/strong>: <em><code>null<\/code><\/em><\/li>\n\n\n\n<li>if [String], <strong><em>{Qdata}<\/em><\/strong>: <strong>string<\/strong> (java.lang.String)<\/li>\n\n\n\n<li>if [Numeric], <strong><em>{Qdata}<\/em><\/strong>: <strong>BigDecimal<\/strong><\/li>\n\n\n\n<li>if [Select], <strong><em>{Qdata}<\/em><\/strong>: <strong>ArrayList<\/strong> of <strong>ItemView<\/strong><\/li>\n\n\n\n<li>if [Date], <strong><em>{Qdata}<\/em><\/strong>: <strong>AddableDate<\/strong><\/li>\n\n\n\n<li>if [Datetime], <strong><em>{Qdata}<\/em><\/strong>: <strong>AddableTimestamp<\/strong><\/li>\n\n\n\n<li>if [File], <strong><em>{Qdata}<\/em><\/strong>: <strong>ArrayList<\/strong> of <strong>QfileView<\/strong><\/li>\n\n\n\n<li>if [User], <strong><em>{Qdata}<\/em><\/strong>: <strong>QuserView<\/strong><\/li>\n\n\n\n<li>if [Organization], <strong><em>{Qdata}<\/em><\/strong>: <strong>QgroupView<\/strong><\/li>\n\n\n\n<li>if [Table], <strong><em>{Qdata}<\/em><\/strong>: <strong>QtableMatrix<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong>: java.math.BigDecimal<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n\n\n\n<li><strong>AddableDate<\/strong>: com.questetra.bpms.util.AddableDate<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong>: com.questetra.bpms.util.AddableTimestamp<\/li>\n\n\n\n<li><strong>QfileView<\/strong>: com.questetra.bpms.core.event.scripttask.QfileView<\/li>\n\n\n\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n\n\n\n<li><strong>QgroupView<\/strong>: com.questetra.bpms.core.event.scripttask.QgroupView<\/li>\n\n\n\n<li><b>QtableMatrix<\/b> com.questetra.bpms.core.event.scripttask.ScriptListArray<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 1-2a: Get STRING, Set TITLE\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strCustomer = engine.findDataByVarName( &quot;q_Family_Name&quot; );\nengine.log( strCustomer ); \/\/ &quot;Suzuki&quot;\nlet strNewTitle = &quot;Shipping to &quot; + strCustomer;\nprocessInstance.setProcessInstanceTitle( strNewTitle );\n  \/\/ New Title: &quot;Shipping to Suzuki&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 1-2b: Get DATE, Set DECIMAL\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nmain();\nfunction main(){\n  const qdateBirth = engine.findDataByVarName( &quot;q_Birth&quot; );\n\n  const dateBirth  = convertAddabledate2Jsdate( qdateBirth );\n  engine.log( dateBirth.toISOString() ); \n  \/\/ case &quot;q_Birth&quot;=&quot;2000-04-01 (+09:00)&quot;, &quot;2000-03-31T15:00:00.000Z&quot;\n\n  const dateToday  = new Date();\n  const num8DigitBirth = dateBirth.getFullYear() * 10000 +\n                         (dateBirth.getMonth() + 1) * 100 +\n                         dateBirth.getDate();\n  const num8DigitToday = dateToday.getFullYear() * 10000 +\n                         (dateToday.getMonth() + 1) * 100 +\n                         dateToday.getDate();\n  \/\/ &quot;2000-04-01&quot; -&gt; &quot;20000401&quot;\n  const numAge = Math.floor((num8DigitToday - num8DigitBirth) \/10000);\n\n  engine.setDataByVarName( &quot;q_Age&quot;,\n                           new java.math.BigDecimal( numAge ) );\n  \/\/ case &quot;today&quot; = &quot;2023-02-01&quot; on +09:00, &quot;22&quot;\n}\n\nfunction convertAddabledate2Jsdate ( AddableDate ) {\n  let numMilliSec = AddableDate.getTime(); \/\/ Epoch milliseconds\n  return new Date( numMilliSec );\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 1-2c: Get SELECT, Set Multiline-STRING\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nmain();\nfunction main(){\n  let qcheckedNotices = engine.findDataByVarName( &quot;q_Handle_With_Care&quot; );\n  \/\/ `java.util.ArrayList`\n\n  if( qcheckedNotices === null ){\n    throw new Error( &quot;\\n AutomatedTask Error:&quot; +\n                     &quot; No Notices checked \\n&quot; );\n  }\n  engine.log( &quot; #of Notice: &quot; + qcheckedNotices.size() ); \/\/ &quot; #of Notice: 2&quot;\n\n  let arrNotices = []; \/\/ JavaScript `Array`\n  for ( let i = 0; i &lt; qcheckedNotices.size(); i++ ){\n    let strTmp = qcheckedNotices.get(i).getValue() + &quot;: &quot; +\n                 qcheckedNotices.get(i).getDisplay();\n    arrNotices.push( strTmp );\n  }\n\n  let strNotices = arrNotices?.join( &#39;\\n&#39; ) ?? &quot;&quot;;\n  \/\/ https:\/\/developer.mozilla.org\/docs\/Web\/JavaScript\/Reference\/Operators\/Optional_chaining\n\n  engine.setDataByVarName( &quot;q_Alert_Message&quot;, strNotices );\n  \/\/ &quot;frg: FRAGILE \uff0f \u5272\u308c\u7269\u6ce8\u610f&quot;\n  \/\/ &quot;dry: KEEP DRY \uff0f \u6c34\u6fe1\u308c\u6ce8\u610f&quot;\n}<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"workflowapp-level-methods\">2. WorkflowApp level Methods<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"workflowapp-property\">2-1. Access to WorkflowApp Property<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>JavaNum<\/strong> processInstance.getProcessModelVersion()\n<ul class=\"wp-block-list\">\n<li>Return: [Version] of WorkflowApp on which the process is running<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> processInstance.getProcessModelInfoId()\n<ul class=\"wp-block-list\">\n<li>Return: [App ID] of WorkflowApp<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> processInstance.getProcessModelInfoName()\n<ul class=\"wp-block-list\">\n<li>Return: [App Name] of WorkflowApp<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> processInstance.getProcessModelInfoCategory()\n<ul class=\"wp-block-list\">\n<li>Return: [Category] of WorkflowApp<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong>: java.math.BigDecimal<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 2-1: Get workflow-app properties\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nengine.log( processInstance.getProcessModelVersion().toString() );\n  \/\/ &quot;123&quot;\nengine.log( processInstance.getProcessModelId().toString() );\n  \/\/ &quot;23&quot;\nengine.log( processInstance.getProcessModelInfoName() );\n  \/\/ &quot;S101: Order Fulfillment&quot;\nengine.log( processInstance.getProcessModelInfoCategory() );\n  \/\/ &quot;Sales Div&quot;<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"qdatapocket\">2-2. Access to WorkflowApp DataItems (<strong>QdataPocket<\/strong>)<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>ArrayList<\/strong> engine.findDataDefinitions()\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QdataPocket<\/strong>)<\/li>\n\n\n\n<li>Return: List of all DataItem definitions<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong> engine.findDataDefinitionByVarName ( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>Return: DataItem definition (QdataPocket)<\/li>\n\n\n\n<li>Parameter: [Field Name] of DataItem<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong> engine.findDataDefinitionByName ( stringName )\n<ul class=\"wp-block-list\">\n<li>Return: DataItem definition (QdataPocket)<\/li>\n\n\n\n<li>Parameter [Item Name] of DataItem\n<ul class=\"wp-block-list\">\n<li>(If multiple with the same name, returns the first)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong> engine.findDataDefinitionByNumber ( stringDataDefinitionNumber )\n<ul class=\"wp-block-list\">\n<li>Return: DataItem definition (QdataPocket)<\/li>\n\n\n\n<li>Parameter: Number of DataItem<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong> engine.findDataDefinitionByNumber ( numberDataDefinitionNumber )\n<ul class=\"wp-block-list\">\n<li>Return: DataItem definition (QdataPocket)<\/li>\n\n\n\n<li>Parameter: Number of DataItem<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>QcolumnPocket<\/strong>: com.questetra.bpms.core.event.scripttask.SubDataDefinitionView<\/li>\n\n\n\n<li><strong>QtableMatrix<\/strong>: com.questetra.bpms.core.event.scripttask.ScriptListArray<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\" start=\"6\">\n<li><strong>string<\/strong> QDATAPOCKET.getVarName()\n<ul class=\"wp-block-list\">\n<li>Return: [Field Name] of DataItem definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QDATAPOCKET.getName()\n<ul class=\"wp-block-list\">\n<li>Return: [Item Name] of DataItem definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QDATAPOCKET.getNumber()\n<ul class=\"wp-block-list\">\n<li>Return: Number of DataItem definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>boolean<\/strong> QDATAPOCKET.matchDataType ( <code>stringDataType<\/code> )\n<ul class=\"wp-block-list\">\n<li>Return: <code>true<\/code>, if match with DataItem definition\n<ul class=\"wp-block-list\">\n<li>QDATAPOCKET:&#8221;String&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;STRING&#8221;\n<ul class=\"wp-block-list\">\n<li>more strictly &#8220;STRING_TEXTFIELD&#8221;, &#8220;STRING_TEXTAREA&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Numeric&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;DECIMAL&#8221;<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Select&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;SELECT&#8221;\n<ul class=\"wp-block-list\">\n<li>more strictly &#8220;SELECT_SINGLE&#8221;, &#8220;SELECT_CHECKBOX&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Date&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;DATE&#8221;\n<ul class=\"wp-block-list\">\n<li>more strictly &#8220;DATE_YMD&#8221;, &#8220;DATE_Y&#8221;, &#8220;DATE_YM&#8221;, &#8220;DATE_MD&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Datetime&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;DATETIME&#8221;<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;File&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;FILE&#8221;<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;User&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;QUSER&#8221;<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Organization&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;QGROUP&#8221;<\/li>\n\n\n\n<li>QDATAPOCKET:&#8221;Table&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;LIST&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Only for TABLE<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\" start=\"10\">\n<li><strong>ArrayList<\/strong> QDATAPOCKET.getSubDataDefinitions()\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QcolumnPocket<\/strong>)<\/li>\n\n\n\n<li>Return: List of all column definitions<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QtableMatrix<\/strong> QDATAPOCKET.createListArray()\n<ul class=\"wp-block-list\">\n<li>Return: Empty table object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QCOLUMNPOCKET.getVarName()\n<ul class=\"wp-block-list\">\n<li>Return: [Field Name] of column definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QCOLUMNPOCKET.getName()\n<ul class=\"wp-block-list\">\n<li>Return: [Item Name] of column definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QCOLUMNPOCKET.getNumber()\n<ul class=\"wp-block-list\">\n<li>Return: Number of column definition<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>boolean<\/strong> QCOLUMNPOCKET.matchDataType ( <code>stringDataType<\/code> )\n<ul class=\"wp-block-list\">\n<li>Return: <code>true<\/code>, if match with Column definition\n<ul class=\"wp-block-list\">\n<li>QCOLUMNPOCKET:&#8221;String&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;STRING&#8221;<\/li>\n\n\n\n<li>QCOLUMNPOCKET:&#8221;Numeric&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;DECIMAL&#8221;<\/li>\n\n\n\n<li>QCOLUMNPOCKET:&#8221;Select&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;SELECT&#8221;<\/li>\n\n\n\n<li>QCOLUMNPOCKET:&#8221;Date&#8221; &amp;&amp; <code>stringDataType<\/code>:&#8221;DATE&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"serviceTask-configuration\">2-3. Access to ServiceTask Configuration<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> configs.get ( stringConfigName )\n<ul class=\"wp-block-list\">\n<li>Parameter: &#8220;name&#8221; attribute of <code>&lt;config&gt;<\/code> element<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;TEXTFIELD&#8221;, &#8220;TEXTAREA&#8221;, &#8220;SELECT&#8221; (editable)\n<ul class=\"wp-block-list\">\n<li>Return: String value the process designer has entered<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;TEXTFIELD&#8221; (el-enabled), &#8220;TEXTAREA&#8221; (el-enabled)\n<ul class=\"wp-block-list\">\n<li>Return: String value evaluated<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;SELECT&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: Number of DataItem (QdataPocket)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;SELECT_ITEM&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: &#8220;value&#8221; attribute of <code>&lt;item&gt;<\/code> element<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;TOGGLE&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: String &#8220;true&#8221; or string &#8220;false&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;QUSER&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: String ID of User<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;OAUTH2&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: Name of [HTTP Authorization Setting]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong> configs.getObject( stringConfigName )\n<ul class=\"wp-block-list\">\n<li>Parameter: &#8220;name&#8221; attribute of <code>&lt;config&gt;<\/code> element<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;SELECT&#8221;\n<ul class=\"wp-block-list\">\n<li>Return: Data container (QdataPocket) configured by process designer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;SELECT_ITEM&#8221;\n<ul class=\"wp-block-list\">\n<li>(<strong>ItemView<\/strong> instead of <strong>QdataPocket<\/strong>)<\/li>\n\n\n\n<li>Return: Option object of <code>&lt;item&gt;<\/code> configured by process designer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;TOGGLE&#8221;\n<ul class=\"wp-block-list\">\n<li>(<strong>boolean<\/strong> instead of <strong>QdataPocket<\/strong>)<\/li>\n\n\n\n<li>Return: <code>true<\/code> or <code>false<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if <code>&lt;config&gt;<\/code> form-type: &#8220;QUSER&#8221;\n<ul class=\"wp-block-list\">\n<li>(<strong>QuserView<\/strong> instead of <strong>QdataPocket<\/strong>)<\/li>\n\n\n\n<li>Return: User configured by process designer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>else &#8220;TEXTFIELD&#8221;, &#8220;TEXTAREA&#8221;, &#8220;OAUTH2&#8221;, &#8220;SELECT&#8221; (editable entered)\n<ul class=\"wp-block-list\">\n<li>Return: <em><code>null<\/code><\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n\n\n\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"442\" data-attachment-id=\"142513\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/service-task-config-ui\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/service-task-config-ui.png?fit=744%2C442&amp;ssl=1\" data-orig-size=\"744,442\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"service-task-config-ui\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/service-task-config-ui.png?fit=744%2C442&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/service-task-config-ui.png?resize=744%2C442&#038;ssl=1\" alt=\"Service Task config ui\" class=\"has-border-color wp-image-142513\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/service-task-config-ui.png?w=744&amp;ssl=1 744w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/service-task-config-ui.png?resize=530%2C315&amp;ssl=1 530w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-html\" data-file=\"example.xml\" data-lang=\"HTML\"><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;service-task-definition&gt;\n\n&lt;label&gt;Service Task Addon Example&lt;\/label&gt;\n&lt;help-page-url&gt;https:\/\/support.questetra.com\/&lt;\/help-page-url&gt;\n&lt;summary&gt;&lt;\/summary&gt;\n\n&lt;configs&gt;\n  &lt;config name=&quot;SelectConfA1&quot; form-type=&quot;SELECT&quot; select-data-type=&quot;STRING&quot;&gt;\n    &lt;label&gt;A1: Select STRING DATA to Log Output&lt;\/label&gt;\n  &lt;\/config&gt;\n&lt;\/configs&gt;\n\n&lt;engine-type&gt;2&lt;\/engine-type&gt;\n&lt;license&gt;(C) Questetra, Inc. (MIT License)&lt;\/license&gt;\n&lt;last-modified&gt;2023-02-01&lt;\/last-modified&gt;\n\n&lt;script&gt;&lt;![CDATA[\/\/ GraalJS Script (engine type: 2)\n\/\/ ServiceTask Code Example 2-3: Data Logging\n\nmain();\nfunction main(){ \n  const strPocketFamilyName = configs.getObject( &quot;SelectConfA1&quot; );\n  const strFamilyName       = engine.findData( strPocketFamilyName );\n  engine.log( strFamilyName );\n}\n]]&gt;&lt;\/script&gt;\n\n&lt;icon&gt;iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\nYQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAAMSURBVBhXY1Da6AMAAhgBIOLgkG8AAAAASUVORK5CYII=&lt;\/icon&gt;\n\n&lt;\/service-task-definition&gt;<\/code><\/pre><\/div>\n\n\n\n<p class=\"has-ast-global-color-6-background-color has-background wp-block-paragraph\">Addon-XML Examples: <a href=\"https:\/\/support.questetra.com\/category\/addons\/\">https:\/\/support.questetra.com\/category\/addons\/<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"workflowplatform-level-methods\">3. WorkflowPlatform level Methods<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\">3-1. Access to Environment Variable<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> engine.getTimeZoneId()\n<ul class=\"wp-block-list\">\n<li>Return: TimeZoneId (e.g., &#8220;GMT+09:00&#8221;)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> engine.getTimeZoneOffsetInMinutes()\n<ul class=\"wp-block-list\">\n<li>Return: Offset time in minutes (e.g., <code>540<\/code>)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">3-2. Access to System Settings<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>QuserView<\/strong> &#8212; [User] info &#8212; <em>&#8220;4-2.quserDao&#8221;<\/em><\/li>\n\n\n\n<li><strong>QgroupView<\/strong> &#8212; [Organazation] info &#8212; <em>&#8220;4-2.qgroupDao&#8221;<\/em><\/li>\n\n\n\n<li><strong>QroleView<\/strong> &#8212; [Role] info &#8212; <em>&#8220;4-2.qroleDao&#8221;<\/em><\/li>\n\n\n\n<li><strong>ItemDao<\/strong> &#8212; [Master] info &#8212; <em>&#8220;4-4.itemDao&#8221;<\/em><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">3-3. Logging<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>null<\/code><\/strong> engine.log( stringMessage )\n<ul class=\"wp-block-list\">\n<li>Parameter: Log output to the console<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong> feedService.begin()\n<ul class=\"wp-block-list\">\n<li>Return: New OpenChat message (like a envelope)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong> OPENCHATFEED.setMessage( stringMessage )\n<ul class=\"wp-block-list\">\n<li>Return: OpenChat message<\/li>\n\n\n\n<li>Parameter: A string value for the new post message<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong> OPENCHATFEED.setShareQgroup( QgroupView_qorg )\n<ul class=\"wp-block-list\">\n<li>Return: OpenChat message<\/li>\n\n\n\n<li>Parameter: Scope of sharing (Shared Organization)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong> OPENCHATFEED.attachFile( QfileView_file )\n<ul class=\"wp-block-list\">\n<li>Return: OpenChat message<\/li>\n\n\n\n<li>Parameter: Attached file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong> OPENCHATFEED.attachLink( stringUrl )\n<ul class=\"wp-block-list\">\n<li>Return: OpenChat message<\/li>\n\n\n\n<li>Parameter: Attached URL<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> OPENCHATMSG.post()\n<ul class=\"wp-block-list\">\n<li>Return: ID of the posted message<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> feedService.getPostingLimit()\n<ul class=\"wp-block-list\">\n<li>Return: The maximum number of message posts<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Note: A summary of the JavaScript <code>Error<\/code> object is also output to the console.<\/p>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong>: com.questetra.bpms.core.event.scripttask.FeedServiceWrapper.FeedMessageWrapper<\/li>\n\n\n\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n\n\n\n<li><strong>QgroupView<\/strong>: com.questetra.bpms.core.event.scripttask.QgroupView<\/li>\n\n\n\n<li><strong>QroleView<\/strong>: com.questetra.bpms.core.event.scripttask.QroleView<\/li>\n\n\n\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 3-1a: Get Timezone\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strMsg = engine.getTimeZoneId() + &quot;\\n&quot; +\n             engine.getTimeZoneOffsetInMinutes();\n\nengine.log( strMsg );\n\/\/ &quot;GMT+09:00&quot;\n\/\/ &quot;540&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 3-1b: Post to OpenChat\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet OpenchatMsg = feedService.begin(); \/\/ Create FeedMessageWrapper\n    OpenchatMsg = OpenchatMsg.setMessage( &quot;Hello OpenChat&quot; );\nconst numPost   = OpenchatMsg.post();\nengine.log( &quot; AutomatedTask OpenChat Message ID: &quot;  + numPost );\n         \/\/ &quot; AutomatedTask OpenChat Message ID: 1902925&quot; and posted\n\/\/ engine.log( numPost ); \/\/ TypeError: java.lang.Integer to java.lang.String<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Methods-for-Qdata\">4. Methods for <strong><em>{Qdata}<\/em><\/strong> (Questetra data objects)<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong><em>{Qdata}<\/em><\/strong> as Return::\n<ul class=\"wp-block-list\">\n<li>STRING [String] \u2192 <strong>string<\/strong><\/li>\n\n\n\n<li>DECIMAL [Numeric] \u2192 <strong>BigDecimal<\/strong><\/li>\n\n\n\n<li>SELECT [Select] \u2192 <strong><em>ArrayList<\/em><\/strong> of <strong>ItemView<\/strong><\/li>\n\n\n\n<li>DATE [Date] \u2192 <strong>AddableDate<\/strong><\/li>\n\n\n\n<li>DATETIME [Datetime] \u2192 <strong>AddableTimestamp<\/strong><\/li>\n\n\n\n<li>FILE [File] \u2192 <strong><em>ArrayList<\/em><\/strong> of <strong>QfileView<\/strong><\/li>\n\n\n\n<li>QUSER [User] \u2192 <strong>QuserView<\/strong><\/li>\n\n\n\n<li>QGROUP [Organization] \u2192 <strong>QgroupView<\/strong><\/li>\n\n\n\n<li>LIST [Table] \u2192 <strong>QtableMatrix<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border is-style-default\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-attachment-id=\"142377\" data-permalink=\"https:\/\/support.questetra.com\/en\/tips\/workflow-script-example\/attachment\/qobj-is-returned-then\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?fit=1200%2C675&amp;ssl=1\" data-orig-size=\"1200,675\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"qobj-is-returned-then\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?resize=1200%2C675&#038;ssl=1\" alt=\"Returned Questetra object\" class=\"has-border-color wp-image-142377\" style=\"border-color:#009900;border-width:5px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?w=1200&amp;ssl=1 1200w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?resize=560%2C315&amp;ssl=1 560w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/qobj-is-returned-then.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-STRING\">4-0. Handle STRING<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>string<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>string<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>string<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>string<\/strong> )<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Values stored in the data type [String] are retrieved as values of type <code>java.lang.String<\/code>. But <code>java.lang.String<\/code> is considered identical to the JavaScript string literal <code>string<\/code>. The strict equality operator (===) returns <code>true<\/code>. Therefore, in this article, the return value is described as &#8220;<strong>string<\/strong>&#8220;. Note that there was a time (Rhino era) when Java <code>java.lang.String<\/code> (return value from Java object) and JavaScript <code>string<\/code> (JavaScript string literal) were distinguished. There are also some codes that describe type conversion such as &#8220;<code>+ ''<\/code>&#8220;.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-0: Strict equality in STRING\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strCustomer = engine.findDataByVarName( &quot;q_Family_Name&quot; );\nengine.log( strCustomer ); \/\/ &quot;Suzuki&quot;\nif ( strCustomer === &quot;Suzuki&quot; ) {\n  engine.log( &quot;Yes, Suzuki&quot; ); \/\/ &quot;Yes, Suzuki&quot;\n} else {\n  engine.log( &quot;No, Suzuki&quot; );\n}\nengine.setDataByVarName( &quot;q_Family_Name&quot;, &quot;Mr. &quot; + strCustomer );<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-DECIMAL\">4-1. Handle DECIMAL<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>BigDecimal<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>BigDecimal<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>BigDecimal<\/strong> )<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Values stored in data items (QdataPocket) of data type [Numeric\/Number] are of type `java.lang.BigDecimal` and can be handled in much the same way as numbers (`number`) of JavaScript primitive types. It can also be used with arithmetic operators and Math methods (e.g. &#8220;Math.floor()&#8221;). There is no Questetra original method.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Methods associated with data type [Numeric\/\u6570\u5024]\n<ul class=\"wp-block-list\">\n<li>JavaScript Number<\/li>\n\n\n\n<li>JavaScript Math<\/li>\n\n\n\n<li>java.lang.Long<\/li>\n\n\n\n<li>java.lang.Math<\/li>\n\n\n\n<li>java.math.BigDecimal<\/li>\n\n\n\n<li>java.text.DecimalFormat<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>BigDecimal<\/strong>: java.math.BigDecimal<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-1a: Get DECIMAL, Set DECIMAL\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet qnumberYear = engine.findDataByVarName( &quot;q_Year&quot; );\nlet numHarf = qnumberYear \/ 2;\n\n\/\/ engine.log( qnumberYear ); \/\/ TypeError: java.lang.BigDecimal to java.lang.String\n\/\/ engine.log( numHarf );     \/\/ TypeError: java.lang.Double to java.lang.String\n\n   engine.log( qnumberYear.toString() ); \/\/ &quot;2023&quot;\n   engine.log( numHarf    .toString() ); \/\/ &quot;1011.5&quot;\n\n\/\/ engine.setDataByVarName( &quot;q_Year&quot;, numHarf ); \/\/ validation error: not java.math.BigDecimal (java.lang.Double)\n   engine.setDataByVarName( &quot;q_Year&quot;, new java.math.BigDecimal( numHarf ) );\n     \/\/ &quot;1011&quot; stored ((depends on [Number of decimal places \/ \u5c0f\u6570\u70b9\u4ee5\u4e0b\u306e\u6841\u6570] ))<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Get DECIMAL, Use Java Formatter<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-1b: Get DECIMAL, Use Java Formater\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet qnumYear = engine.findDataByVarName( &quot;q_Year&quot; );\nlet qnumPi   = engine.findDataByVarName( &quot;q_Pi10digits&quot; );\n\nengine.log( qnumYear.toString() ); \/\/ &quot;2023&quot;\nengine.log( qnumPi  .toString() ); \/\/ &quot;3.1415926535&quot;\n\nlet strMsg = &quot;&quot;;\nstrMsg += &quot;\\n&quot; + new java.text.DecimalFormat(&#39;#,###.##&#39;).format( qnumYear );\nstrMsg += &quot;\\n&quot; + new java.text.DecimalFormat(&#39;#,###.##&#39;).format( qnumPi );\nstrMsg += &quot;\\n&quot; + new java.text.DecimalFormat(&#39;##0.00%&#39;) .format( qnumYear );\nstrMsg += &quot;\\n&quot; + new java.text.DecimalFormat(&#39;##0.00%&#39;) .format( qnumPi );\nengine.log( strMsg );\n\/*\n1,011\n3.14\n101100.00%\n314.16%\n*\/<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-QUSER-QGROUP-QROLE\">4-2. Handle QUSER QGROUP QROLE<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>QuserView<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>QuserView<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>QuserView<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>QuserView<\/strong> )<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>QgroupView<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>QgroupView<\/strong> )<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>QuserView<\/strong> quserDao.findByEmail( stringUserEmail )\n<ul class=\"wp-block-list\">\n<li>Return: User object (QuseView)<\/li>\n\n\n\n<li>Parameter: Email address registered in the user account<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QuserView<\/strong> quserDao.findById( numberUserId )\n<ul class=\"wp-block-list\">\n<li>Parameter: Id number registered in the user account<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> quserDao.findByQgroup( QgroupView_qorg )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QuserView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all users who belong to the Organization<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> quserDao.findByQgroupAndPosition( QgroupView_qorg, booleanIsLeader )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QuserView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all users who belong as Leader or Member<\/li>\n\n\n\n<li>Parameter: <code>true<\/code> if as Leader<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> quserDao.findByQrole( QroleView_qrole )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QuserView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all users who belong to the Role<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QUSERVIEW.getId()\n<ul class=\"wp-block-list\">\n<li>Return: ID of User<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QUSERVIEW.getName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of User<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QUSERVIEW.getEmail()\n<ul class=\"wp-block-list\">\n<li>Return: Email of User<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">QGROUP<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>QgroupView<\/strong> qgroupDao.findById( numberOrgId )\n<ul class=\"wp-block-list\">\n<li>Return: Organization object (QgroupView)<\/li>\n\n\n\n<li>Parameter: ID of Organization<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> qgroupDao.findByName( stringOrgName )\n<ul class=\"wp-block-list\">\n<li>Parameter: Name of Organization<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> qgroupDao.findParentQgroup( QgroupView_qorg )\n<ul class=\"wp-block-list\">\n<li>Parameter: QgroupView (Organization)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QgroupView<\/strong> qgroupDao.findPrimaryQgroup( QuserView_quser )\n<ul class=\"wp-block-list\">\n<li>Parameter: QuserView (User)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> qgroupDao.findByQuser( QuserView_quser )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QgroupView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all organizations which the User belongs to<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> qgroupDao.findByQuserAndPosition( QuserView_quser, booleanIsLeader )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QgroupView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all organizations which the User belongs to as Leader<\/li>\n\n\n\n<li>Parameter: <code>true<\/code> if as Leader<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QGROUPVIEW.getId()\n<ul class=\"wp-block-list\">\n<li>Return: ID of Organization<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QGROUPVIEW.getName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of Organization<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QGROUPVIEW.getEmail()\n<ul class=\"wp-block-list\">\n<li>Return: Email of Organization<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">QROLE<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>QroleView<\/strong> qroleDao.findById( numberId )\n<ul class=\"wp-block-list\">\n<li>Return: Role object (Qrole)<\/li>\n\n\n\n<li>Parameter: ID of Role<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QroleView<\/strong> qroleDao.findByName( stringName )\n<ul class=\"wp-block-list\">\n<li>Return: QroleView (Role)<\/li>\n\n\n\n<li>Parameter: Name of Role<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> qroleDao.findByQuser( QuserView_quser )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QroleView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all Roles which the User belongs to<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QROLEVIEW.getId()\n<ul class=\"wp-block-list\">\n<li>Return: ID of Role<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QROLEVIEW.getName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of Role<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n\n\n\n<li><strong>QgroupView<\/strong>: com.questetra.bpms.core.event.scripttask.QgroupView<\/li>\n\n\n\n<li><strong>QroleView<\/strong>: com.questetra.bpms.core.event.scripttask.QroleView<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-2a: Refer Platform, Set QUSER\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nconst numUid   = Math.ceil( Math.random() * 10 ) ; \/\/ 1 - 10\nconst quserWin = quserDao.findById( numUid ); \/\/ `null` or **QuserView**\nconst strEmail = quserWin?.getEmail() ?? &quot;(no winners)&quot;;\nengine.log( &quot;Winner: &quot; + strEmail );\n  \/\/ e.g., &quot;(no winners)&quot;, &quot;Winner: Midway@questetra.com&quot;,,,\nengine.setDataByVarName( &quot;q_Worker&quot;, quserWin ); \/\/ deleted if `null`<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-DATE-and-DATETIME\">4-3. Handle DATE and DATETIME<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>AddableDate<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>java.sql.Date<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>java.sql.Date<\/strong> )<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>java.sql.Timestamp<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>java.sql.Timestamp<\/strong> )<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>AddableDate<\/strong> new com.questetra.bpms.util.AddableDate()\n<ul class=\"wp-block-list\">\n<li>Return: Now<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> new com.questetra.bpms.util.AddableDate( numEpochMillisec )\n<ul class=\"wp-block-list\">\n<li>Return: Specified date<\/li>\n\n\n\n<li>Parameter: Epoch Millisec (from 1970-01-01 00:00 UTC)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> ADDABLEDATE.getTime()\n<ul class=\"wp-block-list\">\n<li>Return: Epoch Millisec (1970-01-01 00:00 UTC to ADDABLEDATE 00:00 JST)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> ADDABLEDATE.addDays( numDays )\n<ul class=\"wp-block-list\">\n<li>Return: N days in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> ADDABLEDATE.addMonths( numMonths )\n<ul class=\"wp-block-list\">\n<li>Return: N months in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> ADDABLEDATE.getFirstDateInMonth()\n<ul class=\"wp-block-list\">\n<li>Return: First day of the month<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableDate<\/strong> ADDABLEDATE.getLastDateInMonth()\n<ul class=\"wp-block-list\">\n<li>Return: Last day of the month<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLEDATE.getFirstTimeInDate()\n<ul class=\"wp-block-list\">\n<li>Return: <code>00:00<\/code> of the day<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> ADDABLEDATE.toString()\n<ul class=\"wp-block-list\">\n<li>Return (DATE_YMD): e.g. <code>2023-03-31<\/code><\/li>\n\n\n\n<li>Return (DATE_YM): e.g. <code>2023-03<\/code><\/li>\n\n\n\n<li>Return (DATE_Y): e.g. <code>2023<\/code><\/li>\n\n\n\n<li>Return (DATE_MD): e.g. <code>03-31<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">DATETIME<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>AddableTimestamp<\/strong> new com.questetra.bpms.util.AddableTimestamp()\n<ul class=\"wp-block-list\">\n<li>Return: Now<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> new com.questetra.bpms.util.AddableTimestamp( numEpochMillisec )\n<ul class=\"wp-block-list\">\n<li>Return: Specified date<\/li>\n\n\n\n<li>Parameter: Epoch Millisec (from 1970-01-01 00:00 UTC)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> ADDABLETIMESTAMP.getTime()\n<ul class=\"wp-block-list\">\n<li>Return: e.g. 1970-01-01 00:00 UTC to ADDABLETIMESTAMP JST<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.addMinutes( numMinutes )\n<ul class=\"wp-block-list\">\n<li>Return: N minutes in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.addHours( numHours )\n<ul class=\"wp-block-list\">\n<li>Return: N hours in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.addDays( numDays )\n<ul class=\"wp-block-list\">\n<li>Return: N days in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.addMonths( numMonths )\n<ul class=\"wp-block-list\">\n<li>Return: N months in the future (or past if negative)<\/li>\n\n\n\n<li>Parameter: Positive or negative integer<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.getFirstTimeInDate()\n<ul class=\"wp-block-list\">\n<li>Return: <code>00:00<\/code> of the day<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.getFirstTimeInMonth()\n<ul class=\"wp-block-list\">\n<li>Return: <code>00:00<\/code> of the first day of the month<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> ADDABLETIMESTAMP.getLastTimeInMonth()\n<ul class=\"wp-block-list\">\n<li>Return: <code>23:59<\/code> of the last day of the month<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> ADDABLETIMESTAMP.toString()\n<ul class=\"wp-block-list\">\n<li>Return: Local time (eg, &#8220;<code>2023-03-31 14:59<\/code>&#8220;)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">DateFormatter<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> dateFormatter.format( stringTimeZoneId, stringFormat, AddableDate_d )\n<ul class=\"wp-block-list\">\n<li>Return: Formatted datetime string<\/li>\n\n\n\n<li>Parameter: Time zone id (GMTOffsetTZ, RFC822TZ or ISO8601TZ)<\/li>\n\n\n\n<li>Parameter: Date and Time Pattern (<code>java.text.SimpleDateFormat<\/code>)\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html\" rel=\"nofollow\">https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html\" rel=\"nofollow\">https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Parameter: ADDABLEDATE (date)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> dateFormatter.format( stringTimeZoneId, stringFormat, AddableTimestamp_t )\n<ul class=\"wp-block-list\">\n<li>Return: Formatted datetime string<\/li>\n\n\n\n<li>Parameter: Time zone id<\/li>\n\n\n\n<li>Parameter: Date and Time Pattern<\/li>\n\n\n\n<li>Parameter: ADDABLETIMESTAMP (date time)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> dateFormatter.format( stringFormat, AddableTimestamp_t )\n<ul class=\"wp-block-list\">\n<li>Return: Formatted datetime string<\/li>\n\n\n\n<li>Parameter: Date and Time Pattern<\/li>\n\n\n\n<li>Parameter: ADDABLETIMESTAMP (date time)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong> dateFormatter.parse( stringParser, stringTime )\n<ul class=\"wp-block-list\">\n<li>Return: ADDABLETIMESTAMP (date time)<\/li>\n\n\n\n<li>Parameter: Date and Time Pattern<\/li>\n\n\n\n<li>Parameter: Formatted datetime string<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaScript.Date<\/li>\n\n\n\n<li>java.util.Locale<\/li>\n\n\n\n<li>java.util.Date<\/li>\n\n\n\n<li>java.sql.Date<\/li>\n\n\n\n<li>java.sql.Timestamp<\/li>\n\n\n\n<li>java.text.SimpleDateFormat<\/li>\n<\/ul>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>AddableDate<\/strong>: com.questetra.bpms.util.AddableDate<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong>: com.questetra.bpms.util.AddableTimestamp<\/li>\n\n\n\n<li><strong>DateFormatter<\/strong>: com.questetra.bpms.core.event.scripttask.DateFormatWrapper<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-3a: Get\/Set DATE, Get\/Set TIME\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\n\/\/ on JST (GMT+9) platform\nlet qDate1 = engine.findDataByVarName( &quot;q_date_ymd&quot; ); \/\/ as &#39;2023-03-31&#39;\nlet qDate2 = engine.findDataByVarName( &quot;q_date_ym&quot; );  \/\/ as &#39;2023-03&#39;\nlet qDate3 = engine.findDataByVarName( &quot;q_date_y&quot; );   \/\/ as &#39;2023&#39;\nlet qDate4 = engine.findDataByVarName( &quot;q_date_md&quot; );  \/\/ as &#39;03-31&#39;\nlet qTime1 = engine.findDataByVarName( &quot;q_datetime&quot; ); \/\/ &#39;2023-03-31 00:01&#39;\nlet qTime2 = qTime1.addMonths( -1 );\nlet qTime3 = qTime1.addMonths( -1 ).getLastTimeInMonth();\n\nengine.log( qDate1.getTime().toString() );\nengine.log( qDate2.getTime().toString() );\nengine.log( qDate3.getTime().toString() );\nengine.log( qDate4.getTime().toString() );\nengine.log( qTime1.getTime().toString() );\nengine.log( qTime2.getTime().toString() );\nengine.log( qTime3.getTime().toString() );\n\n\/*\n&quot;1680188400000&quot; (2023-03-31T00:00:00.000+09:00)\n&quot;1677596400000&quot; (2023-03-01T00:00:00.000+09:00)\n&quot;1672498800000&quot; (2023-01-01T00:00:00.000+09:00)\n&quot;954428400000&quot;  (2000-03-01T00:00:00.000+09:00)\n&quot;1680188460000&quot; (2023-03-31T00:01:00.000+09:00)\n&quot;1677510060000&quot; (2023-02-28T00:01:00.000+09:00)\n&quot;1677596399999&quot; (2023-02-28T23:59:59.999+09:00)\n*\/\n\nengine.setDataByVarName( &quot;q_datetime&quot;, qTime3 );    \/\/ as &#39;2023-02-28 23:59&#39;\n\/\/ engine.setDataByVarName( &quot;q_Ship_Date&quot;, qTime3 );\/\/ Type Error\nengine.setDataByVarName( &quot;q_date_ymd&quot;, new java.sql.Date( qTime3.getTime()) );\n                                                    \/\/ as &#39;2023-02-28&#39;<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Create DATE, Set DATE<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-3b: Create DATE, Set DATE\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet jsdateNow = new Date();\n\/\/ let jsdateNow = new Date( 2023, 2, 31, 0, 1, 23, 456 );\nlet qdateNow  = new com.questetra.bpms.util.AddableDate();\nlet qtimeNow  = new com.questetra.bpms.util.AddableTimestamp();\n\nengine.log( jsdateNow.getTime().toString() );\n            \/\/ &quot;1680188483456&quot; (2023-03-31T00:01:23.456+09:00)\nengine.log( qdateNow .getTime().toString() );\n            \/\/ &quot;1680188400000&quot; (2023-03-31T00:00:00.000+09:00)\nengine.log( qtimeNow .getTime().toString() );\n            \/\/ &quot;1680188483458&quot; (2023-03-31T00:01:23.458+09:00)\n\nengine.log( jsdateNow.toString() );\n                               \/\/ &quot;Fri Mar 31 2023 00:01:23 GMT+0900 (GMT+9)&quot;\nengine.log( qdateNow .toString() ); \/\/ &quot;2023-03-31&quot;\nengine.log( qtimeNow .toString() ); \/\/ &quot;2023-03-31 00:01&quot;\n\nengine.setDataByVarName( &quot;q_date_ymd&quot;,\n       new java.sql.Date( jsdateNow.getTime()) ); \/\/ as &#39;2023-03-31&#39;\nengine.setDataByVarName( &quot;q_date_ym&quot;,\n       new java.sql.Date( jsdateNow.getTime()) ); \/\/ as &#39;2023-03&#39;\nengine.setDataByVarName( &quot;q_date_y&quot;,\n       new java.sql.Date( jsdateNow.getTime()) ); \/\/ as &#39;2023&#39;\nengine.setDataByVarName( &quot;q_date_md&quot;,\n       new java.sql.Date( jsdateNow.getTime()) ); \/\/ as &#39;03-31&#39;\nengine.setDataByVarName( &quot;q_datetime&quot;,\n  new java.sql.Timestamp( jsdateNow.getTime()) ); \/\/ as &#39;2023-03-31 00:01&#39;<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\/acc<\/p>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Parse DATETIME<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-3c: Parse DATETIME\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nmain();\nfunction main(){\n\n\/\/ HEADER DATE: (email &quot;Date&quot;, http &quot;Last-Modified&quot;, etc)\nlet strHeaderTime1 = &quot;Sat, 01 Apr 2023 02:34:56 +0900 (JST)&quot;;\nlet strHeaderTime2 = &quot;Sat, 1 Apr 2023 02:34:56 +0900 (JST)&quot;;\nlet strHeaderTime3 = &quot;Fri, 31 Mar 2023 17:34:56 +0000 (UTC)&quot;;\nlet strHeaderTime4 = &quot;Fri, 31 Mar 2023 17:34:56 GMT&quot;;\nlet strHeaderTime5 = &quot;Fri, 31 Mar 2023 09:34:56 -0800 (PST)&quot;;\n\n\/\/ JSON DATE:\nlet strJsonTime6 = &quot;2023-04-01T02:34:56+09:00&quot;;\nlet strJsonTime7 = &quot;2023-03-31T17:34:56Z&quot;;\nlet strJsonTime8 = &quot;2023-03-31T09:34:56-08:00&quot;;\n\n\/\/\/\/ Parse on JST (GMT+9) platform\n\/\/ 1. Parsing with JavaScript constructor\n  \/\/ NOTE: If not ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ) \n  \/\/  Parsing of strings with `Date(str)` is strongly discouraged\nlet jsTime11 = new Date( strHeaderTime1 );\nlet jsTime12 = new Date( strHeaderTime2 );\nlet jsTime13 = new Date( strHeaderTime3 );\nlet jsTime14 = new Date( strHeaderTime4 );\nlet jsTime15 = new Date( strHeaderTime5 );\nlet jsTime16 = new Date( strJsonTime6 );\nlet jsTime17 = new Date( strJsonTime7 );\nlet jsTime18 = new Date( strJsonTime8 );\nengine.log( jsTime11.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime12.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime13.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime14.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime15.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime16.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime17.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( jsTime18.toISOString() ); \/\/ &quot;2023-03-31T17:34:56.000Z&quot;\nengine.log( &quot; --- &quot; );\n\n\/\/ 2. Parsing with JavaScript function\nlet jsTime26 = parseYmdhsAsLocal( strJsonTime6 );\nengine.log( jsTime26.toISOString() ); \/\/ &quot;2023-03-31T17:34:00.000Z&quot;\nengine.log( &quot; --- &quot; );\n\n\/\/ 3. Parsing with Java\nlet strParser1 = &quot;yyyy-MM-dd&#39;T&#39;HH:mm:ssXXX&quot;;\n  \/\/ https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html\n  \/\/ https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/java.base\/java\/text\/SimpleDateFormat.html\nlet strFormatter = strParser1;\nlet addableT316 = dateFormatter.parse( strParser1, strJsonTime6 );\nlet addableT317 = dateFormatter.parse( strParser1, strJsonTime7 );\nlet addableT318 = dateFormatter.parse( strParser1, strJsonTime8 );\nengine.log( dateFormatter.format( strFormatter, addableT316 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, addableT317 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, addableT318 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( &quot; --- &quot; );\n\nlet localeEn    = new java.util.Locale(&quot;en&quot;);\nlet javaParser2 = new java.text.SimpleDateFormat(\n                  &quot;EEE, d MMM yyyy HH:mm:ss XX (z)&quot;, localeEn );\nlet jdate321    = javaParser2.parse( strHeaderTime1 );\nlet jdate322    = javaParser2.parse( strHeaderTime2 );\nlet jdate323    = javaParser2.parse( strHeaderTime3 );\n\/\/let jdate324    = javaParser2.parse( strHeaderTime4 ); \/\/ Unparseable\nlet jdate325    = javaParser2.parse( strHeaderTime5 );\nengine.log( dateFormatter.format( strFormatter, jdate321 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate322 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate323 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\n\/\/engine.log( dateFormatter.format( strFormatter, jdate324 ) );\nengine.log( dateFormatter.format( strFormatter, jdate325 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( &quot; --- &quot; );\n\nlet javaParser3 = new java.text.SimpleDateFormat(\n                  &quot;EEE, dd MMM yyyy HH:mm:ss zzz&quot;, localeEn );\nlet jdate331    = javaParser3.parse( strHeaderTime1 );\nlet jdate332    = javaParser3.parse( strHeaderTime2 );\nlet jdate333    = javaParser3.parse( strHeaderTime3 );\nlet jdate334    = javaParser3.parse( strHeaderTime4 );\nlet jdate335    = javaParser3.parse( strHeaderTime5 );\nengine.log( dateFormatter.format( strFormatter, jdate331 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate332 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate333 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate334 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\nengine.log( dateFormatter.format( strFormatter, jdate335 ) ); \/\/ &quot;2023-04-01T02:34:56+09:00&quot;\n} \/\/ end of &quot;main()&quot;\n\nfunction parseYmdhsAsLocal ( strDate ){ \/\/ for &quot;jsTime26&quot;\n  const arrNumParts = strDate.match( \/\\d+\/g );\n  let numYear       = parseInt( arrNumParts[0], 10 );\n  let indexMonth    = parseInt( arrNumParts[1], 10 ) - 1;\n  let numDay        = parseInt( arrNumParts[2], 10 );\n  let numHours      = parseInt( (arrNumParts?.[3] ?? &quot;0&quot;), 10 );\n  let numMinutes    = parseInt( (arrNumParts?.[4] ?? &quot;0&quot;), 10 );\n  return new Date( numYear, indexMonth, numDay, numHours, numMinutes );\n}<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-SELECT\">4-4. Handle SELECT<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>ArrayList<\/strong> engine.findData( <strong>QdataPocket<\/strong> )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>ItemView<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> engine.findDataByVarName( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>ItemView<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>ArrayList<\/strong><code>&lt;stringIds&gt;<\/code> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>ArrayList<\/strong><code>&lt;stringIds&gt;<\/code> )<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The [Select] type data stored in each process is obtained as the <strong>ArrayList<\/strong> type. In case of the SELECT_SINGLE, its maximum size is 1; only one option can be stored. In case of SELECT_CHECKBOX, all selected option objects <strong>ItemView<\/strong> are stored. &#8212; SELECT_SINGLE: &#8220;size() == 1&#8221; or <code>null<\/code>, SELECT_CHECKBOX: &#8220;size() &gt;= 1&#8221; or <code>null<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can get a list of <strong>ItemView<\/strong>* by <strong><code>engine.findData()<\/code><\/strong> etc. However, update is done with a the list of <strong>string<\/strong> (via <strong><code>setData()<\/code><\/strong> etc). Refer to the master data stored in the workflow platform using the <code>itemDao.findByValue()<\/code> or <code>itemDao.findAll()<\/code> method.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>ItemView<\/strong> itemDao.findByValue( stringFileName, booleanIsShared, stringId )\n<ul class=\"wp-block-list\">\n<li>Return: One option (ItemView) extracted from [Master file\/\u9078\u629e\u80a2\u30de\u30b9\u30bf]<\/li>\n\n\n\n<li>Parameter: The registered name as [Master file\/\u9078\u629e\u80a2\u30de\u30b9\u30bf]<\/li>\n\n\n\n<li>Parameter: <code>true<\/code> if as shared<\/li>\n\n\n\n<li>Parameter: ID of the option<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> itemDao.findAll( stringFileName, booleanIsShared )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>ItemView<\/strong>)<\/li>\n\n\n\n<li>Return: List of all options in [Master file\/\u9078\u629e\u80a2\u30de\u30b9\u30bf]<\/li>\n\n\n\n<li>Parameter: The registered name as [Master file\/\u9078\u629e\u80a2\u30de\u30b9\u30bf]<\/li>\n\n\n\n<li>Parameter: <code>true<\/code> if as shared<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> ITEMVIEW.getValue()\n<ul class=\"wp-block-list\">\n<li>Return: ID of the option<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> ITEMVIEW.getDisplay()\n<ul class=\"wp-block-list\">\n<li>Return: Label of the option<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-4a: Get SELECT, Set SELECT\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet radioSelected = engine.findDataByVarName( &quot;q_Opinion&quot; );\n  \/\/ ArrayList &quot;size() == 1&quot; or `null`\n\nif ( radioSelected === null ){\n  let radioOverwrite = new java.util.ArrayList();\n      radioOverwrite.add( &quot;3&quot; ); \/\/ \u226a3,Neutral \uff0f \u3069\u3061\u3089\u3068\u3082\u8a00\u3048\u306a\u3044\u226b\n  engine.setDataByVarName( &quot;q_Opinion&quot;, radioOverwrite );\n  engine.log ( &quot;Radio box, Overwritten. (ID=3)&quot; );\n} else {\n  engine.log ( radioSelected.get(0).getValue() );   \/\/ &quot;2&quot;\n  engine.log ( radioSelected.get(0).getDisplay() ); \/\/ &quot;Agree \uff0f \u305d\u3046\u601d\u3046&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-4b: Get SELECT, Set SELECT\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strId    = engine.findDataByVarName( &quot;q_Opinion&quot; )?.get(0).getValue() ?? &quot;n\/a&quot;;\nlet strLabel = engine.findDataByVarName( &quot;q_Opinion&quot; )?.get(0).getDisplay() ?? &quot;&quot;;\n  \/\/ https:\/\/developer.mozilla.org\/docs\/Web\/JavaScript\/Reference\/Operators\/Optional_chaining\n  \/\/ https:\/\/developer.mozilla.org\/docs\/Web\/JavaScript\/Reference\/Operators\/Nullish_coalescing\n\nif ( strId === &quot;n\/a&quot; ){\n  let radioOverwrite = new java.util.ArrayList();\n      radioOverwrite.add( &quot;3&quot; ); \/\/ \u226a3,Neutral \uff0f \u3069\u3061\u3089\u3068\u3082\u8a00\u3048\u306a\u3044\u226b\n  engine.setDataByVarName( &quot;q_Opinion&quot;, radioOverwrite );\n  engine.log ( &quot;Radio box, Overwritten. (ID=3)&quot; );\n} else {\n  engine.log ( strId );    \/\/ &quot;2&quot;\n  engine.log ( strLabel ); \/\/ &quot;Agree \uff0f \u305d\u3046\u601d\u3046&quot;\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Get Checkbox SELECT<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-4c: Get SELECT, Set SELECT\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet checkboxSelected = engine.findDataByVarName( &quot;q_Care&quot; );\nlet arrKeyValue = [];\n\nif ( checkboxSelected === null ){\n  engine.log ( &quot;No Checkbox selected&quot; );\n} else {\n  for ( let i = 0; i &lt; checkboxSelected.size(); i++ ) {\n    arrKeyValue.push (\n      &#39;&quot;&#39; + checkboxSelected.get(i).getValue() +   &#39;&quot;: &#39; +\n      &#39;&quot;&#39; + checkboxSelected.get(i).getDisplay() + &#39;&quot;&#39;\n    );\n  }\n  engine.log ( arrKeyValue.join( &#39;,\\n&#39; ) );\n}\n\/*\n&quot;frg&quot;: &quot;FRAGILE \uff0f \u5272\u308c\u7269\u6ce8\u610f&quot;,\n&quot;dnb&quot;: &quot;DO NOT BEND \uff0f \u6298\u66f2\u53b3\u7981&quot;,\n&quot;dry&quot;: &quot;KEEP DRY \uff0f \u6c34\u6fe1\u308c\u6ce8\u610f&quot;\n*\/<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Get MASTER directly<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-4d: Get MASTER directly\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet optionSpecified = itemDao.findByValue(\n                        &quot;country-codes-iso-3166-1-2013-alpha2-en.xml&quot;,\n                        true,\n                        &quot;US&quot;\n                      )\nengine.log ( &quot;ID:    &quot; + optionSpecified.getValue() );\nengine.log ( &quot;LABEL: &quot; + optionSpecified.getDisplay() );\n\/*\nID:    US\nLABEL: United States\n*\/<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-FILE\">4-5. Handle FILE<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>ArrayList<\/strong> engine.findData( <strong>QdataPocket<\/strong> )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QfileView<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> engine.findDataByVarName( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QfileView<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>ArrayList<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>ArrayList<\/strong> )<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> QFILEVIEW.getName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of the file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QFILEVIEW.getLength()\n<ul class=\"wp-block-list\">\n<li>Return: Size of the file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QFILEVIEW.getContentType()\n<ul class=\"wp-block-list\">\n<li>Return: Content-Type of the file (e.g. &#8220;text\/plain; charset=Shift_JIS&#8221;, &#8220;text\/html&#8221; )<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> fileRepository.readFile ( <strong>QfileView<\/strong>, stringEncoding )\n<ul class=\"wp-block-list\">\n<li>Return: String of the file (up to 1MB)<\/li>\n\n\n\n<li>Parameter: Text File object<\/li>\n\n\n\n<li>Parameter: Character encoding (e.g. &#8220;UTF-8&#8221;, &#8220;Shift_JIS&#8221; or &#8220;UTF-16&#8221; )<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> fileRepository.readFile ( <strong>QfileView<\/strong>, stringEncoding, <code>function<\/code> )\n<ul class=\"wp-block-list\">\n<li>Parameter: Text File object<\/li>\n\n\n\n<li>Parameter: Character encoding<\/li>\n\n\n\n<li>Parameter: <code>function<\/code> be invoked after each line has been loaded. The argument is &#8220;stringLoadedLine&#8221;.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> fileRepository.readFile ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Byte array of the file (up to 1MB)<\/li>\n\n\n\n<li>Parameter: Binary File object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> fileRepository.readFile ( <strong>QfileView<\/strong>, numBytes, <code>function<\/code> )\n<ul class=\"wp-block-list\">\n<li>Parameter: Binary File object<\/li>\n\n\n\n<li>Parameter: Size of byte stream to load<\/li>\n\n\n\n<li>Parameter: <code>function<\/code> be invoked after the specified bytes have been loaded. The argument is the loaded binary.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong> BYTEARRAY.getLength()\n<ul class=\"wp-block-list\">\n<li>Return: Length of the byte array<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NewQfile<\/strong> new com.questetra.bpms.core.event.scripttask.NewQfile ( stringFileName, stringContentType, stringText )\n<ul class=\"wp-block-list\">\n<li>Return: Text file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NewQfile<\/strong> new com.questetra.bpms.core.event.scripttask.NewQfile ( stringFileName, stringContentType, stringCharset, stringText )\n<ul class=\"wp-block-list\">\n<li>Return: Text file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NewQfile<\/strong> new com.questetra.bpms.core.event.scripttask.NewQfile ( stringFileName, stringContentType, <strong>ByteArray<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Binary file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>NewQfile<\/strong> new com.questetra.bpms.core.event.scripttask.NewQfile ( stringFileName, stringContentType, <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Duplicated file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> NEWQFILE.getName()\n<ul class=\"wp-block-list\">\n<li>Return: Name of the file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> NEWQFILE.getLength()\n<ul class=\"wp-block-list\">\n<li>Return: Size of the file<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> NEWQFILE.getContentType()\n<ul class=\"wp-block-list\">\n<li>Return: Content-Type of the file (e.g. &#8220;text\/plain; charset=Shift_JIS&#8221;, &#8220;text\/html&#8221; )<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Encode Decode<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> hex.encodeToString ( <strong>ByteArray<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Hexadecimal values (e.g. &#8220;0101 1110&#8221; to &#8220;5E&#8221; )<\/li>\n\n\n\n<li>Parameter: Binary data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> base64.encodeToString ( <strong>ByteArray<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Base64-encoded string (e.g. &#8220;010000 010100&#8221; to &#8220;QU&#8221;)<\/li>\n\n\n\n<li>Parameter: Binary data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> base64.encodeToString ( stringOriginal )\n<ul class=\"wp-block-list\">\n<li>Return: Base64-encoded string<\/li>\n\n\n\n<li>Parameter: Original string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> base64.encodeToUrlSafeString ( stringOriginal )\n<ul class=\"wp-block-list\">\n<li>Return: Base64-encoded string (URL and Filename Safe)<\/li>\n\n\n\n<li>Parameter: Original string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> base64.decodeFromString ( stringEncoded )\n<ul class=\"wp-block-list\">\n<li>Return: Original string<\/li>\n\n\n\n<li>Parameter: Base64-encoded string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> base64.decodeFromUrlSafeString ( stringEncoded )\n<ul class=\"wp-block-list\">\n<li>Return: Original string<\/li>\n\n\n\n<li>Parameter: Base64-encoded string (URL and Filename Safe)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> base64.decodeFromUrlSafeStringToByteArray ( stringEncoded )\n<ul class=\"wp-block-list\">\n<li>Return: Original data<\/li>\n\n\n\n<li>Parameter: Base64-encoded string<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Digest Hash<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ol class=\"wp-block-list\">\n<li><strong>ByteArray<\/strong> digest.md5 ( <strong>ByteArray<\/strong> )<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.md5 ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: MD5 hash value<\/li>\n\n\n\n<li>Parameter: File object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha1 ( <strong>ByteArray<\/strong> )<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha1 ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: SHA1 hash value<\/li>\n\n\n\n<li>Parameter: File object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha256 ( <strong>ByteArray<\/strong> )<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha256 ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: SHA256 hash value<\/li>\n\n\n\n<li>Parameter: File object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha384 ( <strong>ByteArray<\/strong> )<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha384 ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: SHA384 hash value<\/li>\n\n\n\n<li>Parameter: File object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha512 ( <strong>ByteArray<\/strong> )<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> digest.sha512 ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: SHA512 hash value<\/li>\n\n\n\n<li>Parameter: File object<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>NewQfile<\/strong>: com.questetra.bpms.core.event.scripttask.NewQfile<\/li>\n\n\n\n<li><strong>QfileView<\/strong>: com.questetra.bpms.core.event.scripttask.QfileView<\/li>\n\n\n\n<li><strong>ByteArray<\/strong>: com.questetra.bpms.core.event.scripttask.ByteArrayWrapper<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-5a: Get FILE\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nmain();\n\nfunction main() {\n  let filesForInvoice = engine.findDataByVarName( &quot;q_Attached_Files&quot; );\n  if( filesForInvoice === null) {\n    throw new Error( &quot;\\n AutomatedTask RuntimeError:&quot; +\n                     &quot; Files not attached \\n&quot; );\n  }\n\n  let strTitleList = &quot;&quot;;\n  for ( let i = 0; i &lt; filesForInvoice.size(); i++ ) {\n    strTitleList += filesForInvoice.get(i).getContentType();\n    strTitleList += &quot;: &quot;;\n    strTitleList += filesForInvoice.get(i).getName();\n    strTitleList += &quot; (&quot;;\n    strTitleList += addThousandsSeparators ( filesForInvoice.get(i).getLength() );\n    strTitleList += &quot; byte) --- MD5: &quot;;\n    strTitleList += hex.encodeToString ( digest.md5( filesForInvoice.get(i) ) );\n    strTitleList += &quot;\\n&quot;;\n  }\n  engine.log ( strTitleList );\n\n\/*\napplication\/pdf: invoice001.pdf (41,896 byte) --- MD5: f77381a6ece4da84e15f999bcac389e1\ntext\/csv: invoice001-sjis.csv (2,576 byte) --- MD5: 67d4467d149b9ea6940b729b01c4c600\nimage\/jpeg: productA01.jpg (40,406 byte) --- MD5: 4dc051f8a57e12775bb4cf06cb389775\n*\/\n}\n\nfunction addThousandsSeparators ( num ) {\n  return num.toString().replace(\/(\\d)(?=(\\d{3})+(?!\\d))\/g, &#39;$1,&#39;);\n    \/\/ - Replace all &quot;{number}&quot; with &quot;{number},&quot;.\n    \/\/ - But only if immediately followed by the pattern `(\\d{3})+(?!\\d)`\n    \/\/   - `(\\d{3})`: three numeric characters\n    \/\/   - `(?!\\d)`: non-numeric character\n    \/\/ https:\/\/support.questetra.com\/ja\/addons\/string-batch-add-thousands-separators-2022\/\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-5b: Append Text FILE\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet filesFavorites = engine.findDataByVarName( &quot;q_Attached_Files&quot; ) ??\n                     new java.util.ArrayList(); \/\/ if &#39;null&#39;, create empty ArrayList\n\/\/ https:\/\/developer.mozilla.org\/docs\/Web\/JavaScript\/Reference\/Operators\/Nullish_coalescing\n\nlet strText = \n`\u543e\u8f29\u306f\u732b\u3067\u3042\u308b\u3002\u540d\u524d\u306f\u307e\u3060\u7121\u3044\u3002\u3069\u3053\u3067\u751f\u308c\u305f\u304b\u3068\u3093\u3068\u898b\u5f53\u304c\u3064\u304b\u306c\u3002\nI am a cat. As yet I have no name. I&#39;ve no idea where I was born.`;\n\nlet fileAppend = new com.questetra.bpms.core.event.scripttask.NewQfile (\n                   &quot;i-am-a-cat.txt&quot;,\n                   &quot;text\/plain&quot;,\n                   strText\n                 );\n\nfilesFavorites.add( fileAppend );\nengine.log ( &quot; Added file: &quot; + fileAppend.getName() );\n\nengine.setDataByVarName( &quot;q_Attached_Files&quot;, filesFavorites );\nengine.log ( &quot; Total #of files: &quot; + filesFavorites.size() );\n\/*\n Added file: i-am-a-cat.txt\n Total #of files: 4\n*\/<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Handle-LIST-Table\">4-6. Handle LIST (Table)<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"has-text-color wp-block-list\" style=\"color:#dd6600\">\n<li><strong>QtableMatrix<\/strong> engine.findData( <strong>QdataPocket<\/strong> )<\/li>\n\n\n\n<li><strong>QtableMatrix<\/strong> engine.findDataByVarName( stringFieldName )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setData( <strong>QdataPocket<\/strong>, <strong>QtableMatrix<\/strong> )<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> engine.setDataByVarName( stringFieldName, <strong>QtableMatrix<\/strong> )<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>QtableMatrix<\/strong> QDATAPOCKET.createListArray() &#8212; <em>&#8220;2-2-10.QdataPocket&#8221;<\/em>\n<ul class=\"wp-block-list\">\n<li>Return: Empty table object<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QTABLEMATRIX.get ( numRowIndex, numColIndex )<\/li>\n\n\n\n<li><strong>string<\/strong> QTABLEROW.get ( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>Return: Cell data as string\n<ul class=\"wp-block-list\">\n<li>STRING [String\/\u6587\u5b57] \u2192 e.g. &#8220;as entered by users&#8221;<\/li>\n\n\n\n<li>DECIMAL [Numeric\/\u6570\u5024] \u2192 e.g. &#8220;1234.56&#8221;<\/li>\n\n\n\n<li>SELECT [Select\/\u9078\u629e] \u2192 e.g. &#8220;id001&#8221;<\/li>\n\n\n\n<li>DATE [Date\/\u65e5\u4ed8] \u2192 e.g. &#8220;2023-03-31&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> QTABLEROW.getCols()\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>string<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>{Qcelldata}<\/strong> QTABLEMATRIX.getObject ( numRowIndex, numColIndex )<\/li>\n\n\n\n<li><strong>{Qcelldata}<\/strong> QTABLEMATRIX.getObject ( numRowIndex, stringFieldName )<\/li>\n\n\n\n<li><strong>{Qcelldata}<\/strong> QTABLEROW.getObject ( numColIndex )<\/li>\n\n\n\n<li><strong>{Qcelldata}<\/strong> QTABLEROW.getObject ( stringFieldName )\n<ul class=\"wp-block-list\">\n<li>Return: Cell data as object\n<ul class=\"wp-block-list\">\n<li>STRING [String\/\u6587\u5b57] \u2192 <strong>string<\/strong><\/li>\n\n\n\n<li>DECIMAL [Numeric\/\u6570\u5024] \u2192 <strong>BigDecimal<\/strong><\/li>\n\n\n\n<li>SELECT [Select\/\u9078\u629e] \u2192 <strong>ItemView<\/strong><\/li>\n\n\n\n<li>DATE [Date\/\u65e5\u4ed8] \u2192 <strong>AddableDate<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QtableRow<\/strong> QTABLEMATRIX.getRow ( numRowIndex )\n<ul class=\"wp-block-list\">\n<li>Return: Specified row<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> QTABLEMATRIX.getRows()\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>QtableRow<\/strong>)<\/li>\n\n\n\n<li>Return: All rows<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QTABLEMATRIX.size()\n<ul class=\"wp-block-list\">\n<li>Return: Number of rows<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> QTABLEROW.size()\n<ul class=\"wp-block-list\">\n<li>Return: Number of cells<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QtableRow<\/strong> QTABLEMATRIX.addRow()\n<ul class=\"wp-block-list\">\n<li>Appends empty row<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QtableRow<\/strong> QTABLEMATRIX.removeRow ( numRowIndex )\n<ul class=\"wp-block-list\">\n<li>Return: Deleted row<\/li>\n\n\n\n<li>Parameter: Row to delete<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QTABLEROW.put ( stringFirldName, stringNewData )\n<ul class=\"wp-block-list\">\n<li>Return: Original string (replaced by new data)<\/li>\n\n\n\n<li>Parameter: New data to overwrite the specified cell\n<ul class=\"wp-block-list\">\n<li>STRING [String\/\u6587\u5b57] \u2192 e.g. &#8220;as entered by users&#8221;<\/li>\n\n\n\n<li>DECIMAL [Numeric\/\u6570\u5024] \u2192 e.g. &#8220;1234.56&#8221;<\/li>\n\n\n\n<li>SELECT [Select\/\u9078\u629e] \u2192 e.g. &#8220;id001&#8221;<\/li>\n\n\n\n<li>DATE [Date\/\u65e5\u4ed8] \u2192 e.g. &#8220;2023-03-31&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>QtableRow<\/strong> QTABLEMATRIX.getSummary()\n<ul class=\"wp-block-list\">\n<li>Return: Summary row<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> QTABLEMATRIX.toXmlString()\n<ul class=\"wp-block-list\">\n<li>Return: Table string in XML<\/li>\n\n\n\n<li>e.g. &#8220;<code>&lt;list&gt;&lt;row&gt;&lt;col&gt;01&lt;\/col&gt;&lt;col&gt;1234.56&lt;\/col&gt;&lt;\/row&gt; &lt;summary&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;\/summary&gt;&lt;\/list&gt;<\/code>&#8220;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>QtableMatrix<\/strong>: com.questetra.bpms.core.event.scripttask.ScriptListArray<\/li>\n\n\n\n<li><strong>QtableRow<\/strong>: com.questetra.bpms.core.event.scripttask.ScriptListArray.ScriptListRow<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 4-6a: Get\/Edit\/Set TABLE\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\n\/\/ q_Invoice_Table\n\/\/ SELECT       STRING        DATE       DECIMAL     DECIMAL    DECIMAL(sum)\n\/\/ q_CategoryId q_Description q_ShipDate q_UnitPrice q_Quantity q_Amount\n\/\/                  \/\/ q_Amount(calc): q_UnitPrice * q_Quantity\n\/\/ q_CategoryId:\n\/\/   01,Simple Paper Fan UCHIWA\n\/\/   02,Foldable Paper Fan SENSU\n\nlet matrixInvoice = engine.findDataByVarName( &quot;q_Invoice_Table&quot; ) ??\n          engine.findDataDefinitionByVarName( &quot;q_Invoice_Table&quot; ).createListArray();\n\n\n\/\/\/ Case Empty\nif ( Number (matrixInvoice.size()) === 0 ) {\n  engine.log ( matrixInvoice.toXmlString() ); \/\/ &quot;&lt;list&gt;&lt;summary\/&gt;&lt;\/list&gt;&quot;\n  throw new Error( &quot;\\n AutomatedTask RuntimeError:&quot; +\n                   &quot; Table Data is empty \\n&quot; );\n}\n\n\n\/\/\/ Retrieve Process instance\nengine.log ( &quot;Table -- #row:&quot; + matrixInvoice.size() + \n                &quot; x #column:&quot; + matrixInvoice.getRow(0).size()  );\n          \/\/ &quot;Table -- #row:2 x #column:6&quot;\nengine.log ( matrixInvoice.getObject( 0, &quot;q_CategoryId&quot; ).getDisplay() );\n          \/\/ &quot;Simple Paper Fan UCHIWA&quot;\nengine.log ( matrixInvoice.toXmlString() );\n\/* (Line breaks added for readability)\n&lt;list&gt;\n&lt;row&gt;&lt;col&gt;01&lt;\/col&gt;&lt;col&gt;Cherry Blossom SAKURA&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;59.99&lt;\/col&gt;&lt;col&gt;3&lt;\/col&gt;&lt;col&gt;179.97&lt;\/col&gt;&lt;\/row&gt;\n&lt;row&gt;&lt;col&gt;02&lt;\/col&gt;&lt;col&gt;Bellflower KIKYO&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;69.99&lt;\/col&gt;&lt;col&gt;2&lt;\/col&gt;&lt;col&gt;139.98&lt;\/col&gt;&lt;\/row&gt;\n&lt;summary&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;319.95&lt;\/col&gt;&lt;\/summary&gt;\n&lt;\/list&gt;\n*\/\n\n\n\/\/\/ Overwrite\nlet rowFirstline   = matrixInvoice.getRow(0);\nlet strOverwritten = rowFirstline.put ( &quot;q_Description&quot;, &quot;Blue Lotus HASU&quot; );\nengine.log ( strOverwritten ); \/\/ &quot;Cherry Blossom SAKURA&quot;\nengine.log ( matrixInvoice.toXmlString() );\n\/* (Line breaks added for readability)\n&lt;list&gt;\n&lt;row&gt;&lt;col&gt;01&lt;\/col&gt;&lt;col&gt;Blue Lotus HASU&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;59.99&lt;\/col&gt;&lt;col&gt;3&lt;\/col&gt;&lt;col&gt;179.97&lt;\/col&gt;&lt;\/row&gt;\n&lt;row&gt;&lt;col&gt;02&lt;\/col&gt;&lt;col&gt;Bellflower KIKYO&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;69.99&lt;\/col&gt;&lt;col&gt;2&lt;\/col&gt;&lt;col&gt;139.98&lt;\/col&gt;&lt;\/row&gt;\n&lt;summary&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;319.95&lt;\/col&gt;&lt;\/summary&gt;\n&lt;\/list&gt;\n*\/\n\n\n\/\/\/ Append new line\nlet rowAppend = matrixInvoice.addRow();\nrowAppend.put ( &quot;q_Description&quot;, &quot;Keychain (free gift)&quot; );\nrowAppend.put ( &quot;q_UnitPrice&quot;, &quot;0.00&quot; );\nrowAppend.put ( &quot;q_Quantity&quot;, &quot;1&quot; );\nengine.log ( matrixInvoice.toXmlString() );\n\/* (Line breaks added for readability)\n&lt;list&gt;\n&lt;row&gt;&lt;col&gt;01&lt;\/col&gt;&lt;col&gt;Blue Lotus HASU&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;59.99&lt;\/col&gt;&lt;col&gt;3&lt;\/col&gt;&lt;col&gt;179.97&lt;\/col&gt;&lt;\/row&gt;\n&lt;row&gt;&lt;col&gt;02&lt;\/col&gt;&lt;col&gt;Bellflower KIKYO&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;69.99&lt;\/col&gt;&lt;col&gt;2&lt;\/col&gt;&lt;col&gt;139.98&lt;\/col&gt;&lt;\/row&gt;\n&lt;row&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;Keychain (free gift)&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;\n     &lt;col&gt;0.00&lt;\/col&gt;&lt;col&gt;1&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;\/row&gt;\n&lt;summary&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;319.95&lt;\/col&gt;&lt;\/summary&gt;&lt;\/list&gt;\n*\/\n\n\n\/\/\/ Remove line\nlet rowRemoved   = matrixInvoice.removeRow(1);\nengine.log ( matrixInvoice.toXmlString() );\n\/* (Line breaks added for readability)\n&lt;list&gt;\n&lt;row&gt;&lt;col&gt;01&lt;\/col&gt;&lt;col&gt;Blue Lotus HASU&lt;\/col&gt;&lt;col&gt;2023-02-28&lt;\/col&gt;\n     &lt;col&gt;59.99&lt;\/col&gt;&lt;col&gt;3&lt;\/col&gt;&lt;col&gt;179.97&lt;\/col&gt;&lt;\/row&gt;\n&lt;row&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;Keychain (free gift)&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;\n     &lt;col&gt;0.00&lt;\/col&gt;&lt;col&gt;1&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;\/row&gt;\n&lt;summary&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;&lt;\/col&gt;&lt;col&gt;319.95&lt;\/col&gt;&lt;\/summary&gt;&lt;\/list&gt;\n*\/\n\n\n\/\/\/ Update Process instance\nengine.setDataByVarName( &quot;q_Invoice_Table&quot;, matrixInvoice );\n\/*\n&quot;Simple Paper Fan UCHIWA&quot;  &quot;Blue Lotus HASU&quot;  &quot;2023-02-28&quot;  &quot;59.99&quot;  &quot;3&quot;  &quot;$179.97USD&quot;\n                        &quot;Keychain (free gift)&quot;               &quot;0.00&quot;  &quot;1&quot;  &quot;$0.00USD&quot;\n                                                                          &quot;$179.97USD&quot;\n*\/<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Other-Supported-Methods\">5. Other Supported Methods<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Send-Email\">5-1. Send Email<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>EmailMessage<\/strong> emailService.begin()\n<ul class=\"wp-block-list\">\n<li>Return: New message<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> emailService.getSendingLimit()\n<ul class=\"wp-block-list\">\n<li>Return: Max number of times to send per process (&#8220;10&#8221; as of 202301)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.addTo ( stringAddress, stringFullName )\n<ul class=\"wp-block-list\">\n<li>Return: Message which address to &#8220;To:&#8221; header is appended<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.addCc ( stringAddress, stringFullName )<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.addBcc ( stringAddress, stringFullName )<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setFrom ( stringAddress, stringFullName )<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setReplyTo ( stringAddress, stringFullName )<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setSubject ( stringSubject )<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setBody ( stringBody )\n<ul class=\"wp-block-list\">\n<li>Return: Message which plain text is set as Email Body (same &#8220;<code>setTextBody()<\/code>&#8220;)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setTextBody ( stringBody )\n<ul class=\"wp-block-list\">\n<li>Return: Message which plain text is set as Email Body<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.setHtmlBody ( stringHtml )\n<ul class=\"wp-block-list\">\n<li>Return: Message which html text is set as Email Body<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.addAttachment ( <strong>QfileView<\/strong> )\n<ul class=\"wp-block-list\">\n<li>Return: Message which file attached (up to 5MB)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong> EMAILMESSAGE.addAttachment ( stringFileName, stringContentType, stringText )\n<ul class=\"wp-block-list\">\n<li>Return: Message which file attached with encoding<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><em><code>null<\/code><\/em> EMAILMESSAGE.send()\n<ul class=\"wp-block-list\">\n<li>Send Email<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>EmailMessage<\/strong>: com.questetra.bpms.core.event.scripttask.EmailServiceWrapper.EmailMessageWrapper<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QfileView<\/strong>: com.questetra.bpms.core.event.scripttask.QfileView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-1a: Get Email-Limit\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet numLimit = emailService.getSendingLimit();\nengine.log ( numLimit.toString() ); \/\/ &quot;10&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-1b: Test Sending Email\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet EmailMsg = emailService.begin();\n    EmailMsg = EmailMsg.addTo ( &quot;example@example.com&quot;, &quot;test&quot; );\n    EmailMsg = EmailMsg.setFrom ( &quot;no-reply@example.com&quot;, &quot;No-Reply&quot; );\n    EmailMsg = EmailMsg.setSubject ( &quot;Test subject&quot; );\n    EmailMsg = EmailMsg.send(); \/\/ &quot;ERROR: Body is missing&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-1c: Test Sending Email\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet EmailMsg = emailService.begin()\n                 .addTo      ( &quot;example@example.com&quot;, &quot;test&quot; )\n                 .setFrom    ( &quot;no-reply@example.com&quot;, &quot;No-Reply&quot; )\n                 .setSubject ( &quot;Test2 subject&quot; )\n                 .setBody    ( &quot;Hello email, from Questetra&quot; )\n                 .send();<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Send-HttpRequest\">5-2. Send HttpRequest<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>HttpRequest<\/strong> httpClient.begin()\n<ul class=\"wp-block-list\">\n<li>Return: New request<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> httpClient.getRequestingLimit()\n<ul class=\"wp-block-list\">\n<li>Return: Max number of times to send per process (&#8220;10&#8221; as of 202301)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> httpClient.getOAuth2Token ( stringAuthSettingName )\n<ul class=\"wp-block-list\">\n<li>Return: AccessToken by referring to [HTTP Authorization Setting]\n<ul class=\"wp-block-list\">\n<li>Case &#8220;OAuth2&#8221;, &#8220;{AccessToken}&#8221;<\/li>\n\n\n\n<li>Case &#8220;TokenFixed&#8221;, &#8220;{enteredToken}&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.authSetting ( stringAuthSettingName )\n<ul class=\"wp-block-list\">\n<li>Return: Request in which &#8220;Authorization:&#8221; header is set by referring to [HTTP Authorization Setting]\n<ul class=\"wp-block-list\">\n<li>Case &#8220;OAuth2&#8221;, &#8220;Authorization: Bearer {AccessToken}&#8221;<\/li>\n\n\n\n<li>Case &#8220;TokenFixed&#8221;, &#8220;Authorization: Bearer {enteredToken}&#8221;<\/li>\n\n\n\n<li>Case &#8220;Basic Auth&#8221;, &#8220;Authorization: Basic {encodedUsernamePasswd}&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.googleOAuth2 ( <strong>QuserView<\/strong>, stringServiceName )\n<ul class=\"wp-block-list\">\n<li>Return: Request in which &#8220;Authorization:&#8221; header is set by referring to [Google Connectivity]<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.bearer ( stringToken )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.header ( stringName, stringValue )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.queryParam ( stringName, stringValue )\n<ul class=\"wp-block-list\">\n<li>Return: Request which URL-encoded Parameter is appended<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.body ( <strong>QfileView<\/strong> )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.body ( <strong>QfileView<\/strong>, stringContentType )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.body ( stringText, stringContentType )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.body ( <strong>ByteArray<\/strong>, stringContentType )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.formParam ( stringName, stringValue )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.multipart ( stringName, stringValue )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.multipart ( stringName, <strong>QfileView<\/strong> )<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong> HTTPREQUEST.multipart ( stringName, stringText, stringContentType, stringFileName )<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong> HTTPREQUEST.get ( stringUrl )<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong> HTTPREQUEST.post ( stringUrl )<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong> HTTPREQUEST.patch ( stringUrl )<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong> HTTPREQUEST.put ( stringUrl )<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong> HTTPREQUEST.delete ( stringUrl )<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> HTTPRESPONSE.getStatusCode()<\/li>\n\n\n\n<li><strong>ByteArray<\/strong> HTTPRESPONSE.getResponse()<\/li>\n\n\n\n<li><strong>string<\/strong> HTTPRESPONSE.getResponseAsString()<\/li>\n\n\n\n<li><strong>string<\/strong> HTTPRESPONSE.getContentType()<\/li>\n\n\n\n<li><strong>string<\/strong> HTTPRESPONSE.getCharset()<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> HTTPRESPONSE.getHeaderNames()\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>string<\/strong>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ArrayList<\/strong> HTTPRESPONSE.getHeaderValues ( stringHeaderName )\n<ul class=\"wp-block-list\">\n<li>(<strong>ArrayList<\/strong> of <strong>string<\/strong>)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong>HttpRequest<\/strong>: com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpRequestWrapper<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong>: com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpResponseWrapper<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>ByteArray<\/strong>: com.questetra.bpms.core.event.scripttask.ByteArrayWrapper<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-2a: Send HttpRequest\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\n\/\/\/ prepare request1\nlet dateTime = new Date( 2023, 0, 1, 0, 0, 0 ); \/\/ month: 0 start\nlet getUri1  = &quot;https:\/\/api.openweathermap.org\/data\/2.5\/onecall\/timemachine&quot;;\nlet request1 = httpClient.begin(); \/\/ HttpRequestWrapper\n    request1 = request1.queryParam( &quot;appid&quot;, &quot;e16cdxxxxxa76b5yyyyy22ba3zzzzz20&quot; ); \n    request1 = request1.queryParam( &quot;lat&quot;, &quot;43.0631985&quot; ); \n    request1 = request1.queryParam( &quot;lon&quot;, &quot;141.3238222&quot; ); \/\/ Sapporo\n    request1 = request1.queryParam( &quot;dt&quot;, ( dateTime.getTime() \/1000 + &quot;&quot; ) );\n    request1 = request1.queryParam( &quot;units&quot;, &quot;metric&quot; ); \n    request1 = request1.queryParam( &quot;lang&quot;, &quot;ja&quot; ); \n\n\/\/\/ try request1\nconst response1     = request1.get( getUri1 ); \/\/ HttpResponseWrapper\nengine.log( &quot; AutomatedTask ApiRequest1 Start: &quot; + getUri1 );\nconst response1Code = response1.getStatusCode() + &quot;&quot;;\nconst response1Body = response1.getResponseAsString() + &quot;&quot;;\nengine.log( &quot; AutomatedTask ApiResponse1 Status: &quot; + response1Code );\nif( response1Code !== &quot;200&quot;){\n  throw new Error( &quot;\\n AutomatedTask UnexpectedResponseError: &quot; +\n                    response1Code + &quot;\\n&quot; + response1Body + &quot;\\n&quot; );\n}\n\n\/\/\/ parse response1\nengine.log( response1Body );\n\/*\n{&quot;lat&quot;:43.0632,&quot;lon&quot;:141.3238,&quot;timezone&quot;:&quot;Asia\/Tokyo&quot;,&quot;timezone_offset&quot;:32400, ..\n*\/\n\/\/ https:\/\/support.questetra.com\/ja\/addons\/openweather-weather-history-get-by-time\/<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Manipulate-String\">5-3. Manipulate String<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>string<\/strong> escaper.escapeEcmaScript ( stringEcma )\n<ul class=\"wp-block-list\">\n<li>Return: Escaped string<\/li>\n\n\n\n<li>Parameter: ECMA string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> escaper.escapeJson ( stringJson )\n<ul class=\"wp-block-list\">\n<li>Return: Escaped string<\/li>\n\n\n\n<li>Parameter: JSON string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> escaper.escapeHtml ( stringHtml )\n<ul class=\"wp-block-list\">\n<li>Return: Escaped string<\/li>\n\n\n\n<li>Parameter: HTML string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> escaper.escapeXml ( stringXml )\n<ul class=\"wp-block-list\">\n<li>Return: Escaped string<\/li>\n\n\n\n<li>Parameter: XML string<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.splitJoin ( stringLines, stringJoiner )<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.splitJoin ( stringLines, stringPrefix, stringSuffix )<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.splitJoin ( stringLines, stringPrefix, stringSuffix, stringJoiner )\n<ul class=\"wp-block-list\">\n<li>Return: Joined string<\/li>\n\n\n\n<li>Parameter: Multiline string<\/li>\n\n\n\n<li>Parameter: e.g. &#8220;<code>&lt;br&gt;<\/code>&#8220;, &#8220;,&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.join ( collections, stringJoiner, function )<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.join ( collections, stringPrefix, stringSuffix, function )<\/li>\n\n\n\n<li><strong>string<\/strong> joiner.join ( collections, stringPrefix, stringSuffix, stringJoiner, function )\n<ul class=\"wp-block-list\">\n<li>Return: Joined string<\/li>\n\n\n\n<li>Parameter: collections data (e.g. Array, Map, Set, ArrayList,,,)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>java.util.HashMap<\/li>\n\n\n\n<li>java.util.regex.Pattern<\/li>\n\n\n\n<li>java.util.regex.Matcher<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-3a: Escape STRING\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strOriginal = &quot;Hold R&D share to &lt;10%.&quot;;\nengine.log ( escaper.escapeHtml ( strOriginal ) );\n\/\/ &quot;Hold R&D share to &lt;10%.&quot;<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-3b: Join STRINGS\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strMultiline = \n`line-1\nline-2\nline-3`;\n\/\/ https:\/\/developer.mozilla.org\/docs\/Web\/JavaScript\/Reference\/Template_literals\n\nengine.log ( joiner.splitJoin ( strMultiline, &quot;&lt;br&gt;&quot; ) );\n\/\/ &quot;line-1&lt;br&gt;line-2&lt;br&gt;line-3&quot;<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Manipulate-XML\">5-4. Manipulate XML<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><strong>XmlNode<\/strong> xpath.findNode ( <strong>XmlNode<\/strong>, stringXpath )<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> xpath.findNode ( stringXml, stringXpath )<\/li>\n\n\n\n<li><strong>XmlNodeList<\/strong> xpath.findNodeList ( <strong>XmlNode<\/strong>, stringXpath )<\/li>\n\n\n\n<li><strong>XmlNodeList<\/strong> xpath.findNodeList ( stringXml, stringXpath )<\/li>\n\n\n\n<li><strong>string<\/strong> xpath.findNodeText ( <strong>XmlNode<\/strong>, stringXpath )<\/li>\n\n\n\n<li><strong>string<\/strong> xpath.findNodeText ( stringXml, stringXpath )<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getNodeName()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getNodeValue()<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> XMLNODE.getNodeType()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODE.getParentNode()<\/li>\n\n\n\n<li><strong>XmlNodeList<\/strong> XMLNODE.getChildNodes()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODE.getFirstChild()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODE.getLastChild()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODE.getPreviousSibling()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODE.getNextSibling()<\/li>\n\n\n\n<li><strong>boolean<\/strong> XMLNODE.hasChildNodes()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getNamespaceURI()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getPrefix()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getLocalName()<\/li>\n\n\n\n<li><strong>boolean<\/strong> XMLNODE.hasAttributes()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getBaseURI()<\/li>\n\n\n\n<li><strong>string<\/strong> XMLNODE.getTextContent()<\/li>\n\n\n\n<li><strong>JavaNum<\/strong> XMLNODELIST.getLength()<\/li>\n\n\n\n<li><strong>XmlNode<\/strong> XMLNODELIST.item( numNth )<\/li>\n<\/ol>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>XmlNode<\/strong>: com.questetra.bpms.core.event.scripttask.XPathWrapper.NodeWrapper<\/li>\n\n\n\n<li><strong>XmlNodeList<\/strong>: com.questetra.bpms.core.event.scripttask.XPathWrapper.NodeListWrapper<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\/\/ ScriptTask Code Example 5-4a: Parse XML\n  \/\/ output by Questetra BPM Suite v14.2.2 (GraalJS)\n\nlet strRss =\n`&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;rss version=&quot;2.0&quot;&gt;\n  &lt;channel&gt;\n    &lt;title&gt;My Blog&lt;\/title&gt;\n    &lt;link&gt;https:\/\/www.example.com\/blog&lt;\/link&gt;\n    &lt;description&gt;A blog about technology, science, and culture.&lt;\/description&gt;\n    &lt;language&gt;en-us&lt;\/language&gt;\n    &lt;lastBuildDate&gt;Wed, 23 Feb 2023 20:00:00 GMT&lt;\/lastBuildDate&gt;\n    &lt;item&gt;\n      &lt;title&gt;How to Build a Chatbot&lt;\/title&gt;\n      &lt;link&gt;https:\/\/www.example.com\/blog\/chatbot&lt;\/link&gt;\n      &lt;description&gt;Learn how to build a chatbot with Python and TensorFlow.&lt;\/description&gt;\n      &lt;pubDate&gt;Tue, 21 Feb 2023 12:00:00 GMT&lt;\/pubDate&gt;\n    &lt;\/item&gt;\n    &lt;item&gt;\n      &lt;title&gt;The Science of Sleep&lt;\/title&gt;\n      &lt;link&gt;https:\/\/www.example.com\/blog\/sleep&lt;\/link&gt;\n      &lt;description&gt;Discover the latest research on sleep and its impact on health.&lt;\/description&gt;\n      &lt;pubDate&gt;Mon, 20 Feb 2023 10:00:00 GMT&lt;\/pubDate&gt;\n    &lt;\/item&gt;\n    &lt;item&gt;\n      &lt;title&gt;The Art of Storytelling&lt;\/title&gt;\n      &lt;link&gt;https:\/\/www.example.com\/blog\/storytelling&lt;\/link&gt;\n      &lt;description&gt;Explore the techniques and strategies behind great storytelling.&lt;\/description&gt;\n      &lt;pubDate&gt;Sat, 18 Feb 2023 15:00:00 GMT&lt;\/pubDate&gt;\n    &lt;\/item&gt;\n  &lt;\/channel&gt;\n&lt;\/rss&gt;`; \/\/ powered by ChatGPT\n\nengine.log ( xpath.findNodeText ( strRss, &quot;\/rss\/channel\/item\/title&quot; ) );\n  \/\/ &quot;How to Build a Chatbot&quot;\n\n\/\/\/ get 1st Node only\nlet xnodeT = xpath.findNode ( strRss, &quot;\/rss\/channel\/item\/title&quot; );\nengine.log ( xnodeT                   + &quot;&quot; ); \/\/ &quot;[object Object]&quot;\nengine.log ( xnodeT.getNodeName()     + &quot;&quot; ); \/\/ &quot;title&quot;\nengine.log ( xnodeT.getNodeValue()    + &quot;&quot; ); \/\/ &quot;null&quot;\nengine.log ( xnodeT.getNodeType()     + &quot;&quot; ); \/\/ &quot;1&quot;\nengine.log ( xnodeT.hasChildNodes()   + &quot;&quot; ); \/\/ &quot;true&quot; \u2193\u2605\nengine.log ( xnodeT.getNamespaceURI() + &quot;&quot; ); \/\/ &quot;null&quot;\nengine.log ( xnodeT.getPrefix()       + &quot;&quot; ); \/\/ &quot;null&quot;\nengine.log ( xnodeT.getLocalName()    + &quot;&quot; ); \/\/ &quot;title&quot;\nengine.log ( xnodeT.hasAttributes()   + &quot;&quot; ); \/\/ &quot;false&quot;\nengine.log ( xnodeT.getBaseURI()      + &quot;&quot; ); \/\/ &quot;null&quot;\nengine.log ( xnodeT.getTextContent()  + &quot;&quot; ); \/\/ &quot;How to Build a Chatbot&quot;\nengine.log ( xnodeT.getFirstChild().hasChildNodes() + &quot;&quot; ); \/\/ &quot;false&quot; \u2605\nengine.log ( xnodeT.getFirstChild().getNodeName()   + &quot;&quot; ); \/\/ &quot;#text&quot;\nengine.log ( xnodeT.getFirstChild().getNodeValue()  + &quot;&quot; ); \/\/ &quot;How to Build a Chatbot&quot;\nengine.log ( xnodeT.getFirstChild().getNodeType()   + &quot;&quot; ); \/\/ &quot;3&quot;\n\n\/\/ https:\/\/docs.oracle.com\/en\/java\/javase\/11\/docs\/api\/constant-values.html#org.w3c.dom.Node.ATTRIBUTE_NODE\n\/\/ https:\/\/docs.oracle.com\/javase\/jp\/11\/docs\/api\/constant-values.html#org.w3c.dom.Node.ATTRIBUTE_NODE\n\/\/ - ELEMENT_NODE: 1\n\/\/ - ATTRIBUTE_NODE: 2\n\/\/ - TEXT_NODE: 3\n\/\/ - CDATA_SECTION_NODE: 4\n\/\/ ...<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">6. appendix<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">6-1. Data types used in this reference<\/h4>\n\n\n\n<ul class=\"has-ast-global-color-6-background-color has-background wp-block-list\">\n<li><strong><em>JavaNum<\/em><\/strong>: java.lang.Integer, java.lang.Long, java.lang.Double,,,<\/li>\n\n\n\n<li><strong>BigDecimal<\/strong>: java.math.BigDecimal<\/li>\n\n\n\n<li><strong>ArrayList<\/strong>: java.util.ArrayList<\/li>\n\n\n\n<li><strong>QdataPocket<\/strong>: com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView<\/li>\n\n\n\n<li><strong>QcolumnPocket<\/strong>: com.questetra.bpms.core.event.scripttask.SubDataDefinitionView<\/li>\n\n\n\n<li><strong><em>{Qdata}<\/em><\/strong>: (super class)<\/li>\n\n\n\n<li><strong>OpenChatFeed<\/strong>: com.questetra.bpms.core.event.scripttask.FeedServiceWrapper.FeedMessageWrapper<\/li>\n\n\n\n<li><strong>QuserView<\/strong>: com.questetra.bpms.core.event.scripttask.QuserView<\/li>\n\n\n\n<li><strong>QgroupView<\/strong>: com.questetra.bpms.core.event.scripttask.QgroupView<\/li>\n\n\n\n<li><strong>QroleView<\/strong>: com.questetra.bpms.core.event.scripttask.QroleView<\/li>\n\n\n\n<li><strong>AddableDate<\/strong>: com.questetra.bpms.util.AddableDate<\/li>\n\n\n\n<li><strong>AddableTimestamp<\/strong>: com.questetra.bpms.util.AddableTimestamp<\/li>\n\n\n\n<li><strong>DateFormatter<\/strong>: com.questetra.bpms.core.event.scripttask.DateFormatWrapper<\/li>\n\n\n\n<li><strong>ItemView<\/strong>: com.questetra.bpms.core.event.scripttask.ItemView<\/li>\n\n\n\n<li><strong>QfileView<\/strong>: com.questetra.bpms.core.event.scripttask.QfileView<\/li>\n\n\n\n<li><strong>NewQfile<\/strong>: com.questetra.bpms.core.event.scripttask.NewQfile<\/li>\n\n\n\n<li><strong>ByteArray<\/strong>: com.questetra.bpms.core.event.scripttask.ByteArrayWrapper<\/li>\n\n\n\n<li><strong>QtableMatrix<\/strong>: com.questetra.bpms.core.event.scripttask.ScriptListArray<\/li>\n\n\n\n<li><strong>QtableRow<\/strong>: com.questetra.bpms.core.event.scripttask.ScriptListArray.ScriptListRow<\/li>\n\n\n\n<li><strong>EmailMessage<\/strong>: com.questetra.bpms.core.event.scripttask.EmailServiceWrapper.EmailMessageWrapper<\/li>\n\n\n\n<li><strong>HttpRequest<\/strong>: com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpRequestWrapper<\/li>\n\n\n\n<li><strong>HttpResponse<\/strong>: com.questetra.bpms.core.event.scripttask.HttpClientWrapper.HttpResponseWrapper<\/li>\n\n\n\n<li><strong>XmlNode<\/strong>: com.questetra.bpms.core.event.scripttask.XPathWrapper.NodeWrapper<\/li>\n\n\n\n<li><strong>XmlNodeList<\/strong>: com.questetra.bpms.core.event.scripttask.XPathWrapper.NodeListWrapper<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The No-Code development platform &#8220;Questetra BPM Suite&#8221; can also incorporate script codes (ECMAScript\/JavaScript) within Workflow-Apps. In other words, those who have coding skills can realize automation of &#8220;complex data processing&#8221; and &#8220;communication with external APIs&#8221;. Note that the script code is copyrighted. When using [ServiceTask] packaged (modularized) by a third party, you need to pay attention to the license conditions.<\/p>\n","protected":false},"author":2,"featured_media":142054,"parent":97486,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"footnotes":""},"class_list":["post-142053","page","type-page","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1",1200,675,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=560%2C315&ssl=1",560,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=768%2C432&ssl=1",768,432,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1024%2C576&ssl=1",1024,576,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1",1200,675,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=900%2C675&ssl=1",900,675,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=600%2C675&ssl=1",600,675,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=800%2C675&ssl=1",800,675,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1",1200,675,true]},"uagb_author_info":{"display_name":"IMAMURA, Genichi","author_link":"https:\/\/support.questetra.com\/en\/author\/imamuragenichi\/"},"uagb_comment_info":0,"uagb_excerpt":"The No-Code development platform \"Questetra BPM Suite\" can also incorporate script codes (ECMAScript\/JavaScript) within Workflow-Apps. In other words, those who have coding skills can realize automation of \"complex data processing\" and \"communication with external APIs\". Note that the script code is copyrighted. When using [ServiceTask] packaged (modularized) by a third party, you need to pay&hellip;","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9DiIh-AXb","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":137991,"url":"https:\/\/support.questetra.com\/en\/tips\/workflow-trigger-code-202211\/","url_meta":{"origin":142053,"position":0},"title":"Workflow Trigger Code 202211","author":"IMAMURA, Genichi","date":"2022-10-26","format":false,"excerpt":"\"\u65b0\u3057\u3044\u30d7\u30ed\u30bb\u30b9\" \u304c\u81ea\u52d5\u751f\u6210\u3055\u308c\u308b\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306f\u79c0\u9038\u3067\u3059\u3002\"\u81ea\u52d5\u958b\u59cb\" \u306f\u6539\u5584\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306e\u6700\u91cd\u8981\u8981\u7d20\u3068\u8a00\u3063\u3066\u3082\u904e\u8a00\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002Workflow \u30a2\u30d7\u30ea\u306b\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff3d\u3092\u914d\u7f6e\u3059\u308c\u3070\u3001\u300cWorkflow \u57fa\u76e4\u306e\u5916\u304b\u3089\u306e HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u300d\u306b\u3088\u3063\u3066\u65b0\u3057\u3044\u30d7\u30ed\u30bb\u30b9\uff08\u6848\u4ef6\uff09\u3092\u81ea\u52d5\u958b\u59cb\u3055\u305b\u308b\u3053\u3068\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u300c\u30bb\u30f3\u30b5\u30fc\u691c\u77e5\u3067\u5bfe\u5fdc\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u8d77\u52d5\u3059\u308b\u300d\u3001\u300c\u90e8\u5916\u8005\u304b\u3089\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u53d7\u4fe1\u3067\u56de\u7b54\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u8d77\u52d5\u3059\u308b\u300d\u3001\u3042\u308b\u3044\u306f\u300c\u30ea\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u3044\u3066\u6ca2\u5c71\u306e\u8abf\u67fb\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u4e00\u62ec\u3057\u3066\u8d77\u52d5\u3059\u308b\u300d\u3068\u3044\u3063\u305f\u5b9f\u88c5\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff08HTTP\uff09\uff3d\u3084\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff08Webhook\uff09\uff3d\u3092\u30ad\u30c3\u30af\u3059\u308bHTML\/JavaScript\u30b3\u30fc\u30c9\u3092\u4f8b\u793a\u3057\u307e\u3059\u3002","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"Workflow Trigger Code","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":138014,"url":"https:\/\/support.questetra.com\/ja\/tips\/workflow-trigger-code-202211\/","url_meta":{"origin":142053,"position":1},"title":"Workflow Trigger Code 202211","author":"IMAMURA, Genichi","date":"2022-10-26","format":false,"excerpt":"\"\u65b0\u3057\u3044\u30d7\u30ed\u30bb\u30b9\" \u304c\u81ea\u52d5\u751f\u6210\u3055\u308c\u308b\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306f\u79c0\u9038\u3067\u3059\u3002\"\u81ea\u52d5\u958b\u59cb\" \u306f\u6539\u5584\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306e\u6700\u91cd\u8981\u8981\u7d20\u3068\u8a00\u3063\u3066\u3082\u904e\u8a00\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002Workflow \u30a2\u30d7\u30ea\u306b\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff3d\u3092\u914d\u7f6e\u3059\u308c\u3070\u3001\u300cWorkflow \u57fa\u76e4\u306e\u5916\u304b\u3089\u306e HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u300d\u306b\u3088\u3063\u3066\u65b0\u3057\u3044\u30d7\u30ed\u30bb\u30b9\uff08\u6848\u4ef6\uff09\u3092\u81ea\u52d5\u958b\u59cb\u3055\u305b\u308b\u3053\u3068\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u300c\u30bb\u30f3\u30b5\u30fc\u691c\u77e5\u3067\u5bfe\u5fdc\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u8d77\u52d5\u3059\u308b\u300d\u3001\u300c\u90e8\u5916\u8005\u304b\u3089\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u53d7\u4fe1\u3067\u56de\u7b54\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u8d77\u52d5\u3059\u308b\u300d\u3001\u3042\u308b\u3044\u306f\u300c\u30ea\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u3044\u3066\u6ca2\u5c71\u306e\u8abf\u67fb\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u4e00\u62ec\u3057\u3066\u8d77\u52d5\u3059\u308b\u300d\u3068\u3044\u3063\u305f\u5b9f\u88c5\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff08HTTP\uff09\uff3d\u3084\uff3b\u30e1\u30c3\u30bb\u30fc\u30b8\u958b\u59cb\u30a4\u30d9\u30f3\u30c8\uff08Webhook\uff09\uff3d\u3092\u30ad\u30c3\u30af\u3059\u308bHTML\/JavaScript\u30b3\u30fc\u30c9\u3092\u4f8b\u793a\u3057\u307e\u3059\u3002","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"Workflow Trigger Code","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/10\/workflow-trigger-code.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":106397,"url":"https:\/\/support.questetra.com\/ja\/tips\/","url_meta":{"origin":142053,"position":2},"title":"Developer Tips","author":"IMAMURA, Genichi","date":"2021-05-06","format":false,"excerpt":"\"\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u57fa\u76e4\" \u3092\u4f7f\u3044\u3053\u306a\u3059\u305f\u3081\u306e\u30d2\u30f3\u30c8\u96c6\u3002","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/business-process-developer-tips.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/business-process-developer-tips.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/business-process-developer-tips.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/business-process-developer-tips.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/business-process-developer-tips.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":106379,"url":"https:\/\/support.questetra.com\/ja\/tips\/low-code-development-for-workflow-automation\/","url_meta":{"origin":142053,"position":3},"title":"\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u81ea\u52d5\u5316\u306e\u305f\u3081\u306e\u30ed\u30fc\u30b3\u30fc\u30c9\u958b\u767a","author":"IMAMURA, Genichi","date":"2021-05-06","format":false,"excerpt":"\u300c\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u5de5\u7a0b\u306e\u81ea\u52d5\u5316\u300d\uff08\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9\u3067\u306e\u7121\u4eba\u51e6\u7406\u5316\uff09\u3092\u5b9f\u73fe\u3057\u305f\u3044\u5834\u5408\u3001\u30a2\u30d7\u30ea\u8a2d\u8a08\u62c5\u5f53\u8005\u306f\u3001\u201d\u30d2\u30e5\u30fc\u30de\u30f3\u5de5\u7a0b\u201d \u3067\u306f\u306a\u304f \u201c\u81ea\u52d5\u51e6\u7406\u5de5\u7a0b\u201d \u3092\u914d\u7f6e\u3057\u307e\u3059\u3002\u5b9f\u73fe\u3057\u305f\u3044\u81ea\u52d5\u5316\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\uff1f \u305d\u3093\u306a\u5834\u5408\u306b\u306f\u3001\uff3b\u30b9\u30af\u30ea\u30d7\u30c8\u30bf\u30b9\u30af\uff3d\u3084\uff3b\u30b5\u30fc\u30d3\u30b9\u30bf\u30b9\u30af\uff08\u30a2\u30c9\u30aa\u30f3\uff09\uff3d\u306b\u3088\u308b\u5b9f\u88c5\uff08\u81ea\u52d5\u51e6\u7406\u5de5\u7a0b\u306e\u5b9f\u88c5\uff09\u3092\u691c\u8a0e\u3057\u307e\u3059\u3002","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"Low Code \u3067 Workflow\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/Workflow-Automation-with-Low-Code-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/Workflow-Automation-with-Low-Code-ja.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/Workflow-Automation-with-Low-Code-ja.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/Workflow-Automation-with-Low-Code-ja.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/Workflow-Automation-with-Low-Code-ja.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":142334,"url":"https:\/\/support.questetra.com\/ja\/tips\/workflow-script-example\/","url_meta":{"origin":142053,"position":4},"title":"Workflow Script Example","author":"IMAMURA, Genichi","date":"2023-02-09","format":false,"excerpt":"No-Code \u958b\u767a\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u300eQuestetra BPM Suite\u300f\u3067\u306f\u3001\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30a2\u30d7\u30ea\u5185\u306b Script Code \uff08ECMAScript\/JavaScript\uff09\u3092\u7d44\u307f\u8fbc\u3080\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\u8a00\u3044\u63db\u3048\u308c\u3070\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30ad\u30eb\u306e\u3042\u308b\u65b9\u306f \"\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u52a0\u5de5\" \u3084 \"\u5916\u90e8API\u3068\u306e\u901a\u4fe1\" \u3068\u3044\u3063\u305f\u9ad8\u5ea6\u306a\u81ea\u52d5\u5316\uff08\u7121\u4eba\u5316\uff09\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\u306a\u304a\u3001Script Code \u306b\u306f\u8457\u4f5c\u6a29\u304c\u767a\u751f\u3057\u307e\u3059\u3002\u7b2c\u4e09\u8005\u306b\u3088\u3063\u3066\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\uff08\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\uff09\u3055\u308c\u305f\uff3b\u30b5\u30fc\u30d3\u30b9\u30bf\u30b9\u30af\uff3d\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3001\u8a31\u8afe\u6761\u4ef6\uff08\u30e9\u30a4\u30bb\u30f3\u30b9\uff09\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"R2300: Workflow Script Example","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2023\/02\/workflow-scripting.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/pages\/142053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=142053"}],"version-history":[{"count":100,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/pages\/142053\/revisions"}],"predecessor-version":[{"id":147716,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/pages\/142053\/revisions\/147716"}],"up":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/pages\/97486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/142054"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=142053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}