Joget | COMMUNITY RSS FeedConfluence Syndication Feedhttps://dev.joget.org/communityCustom HTMLAlya Ahmadtag:dev.joget.org,2009:page-66814410-202024-03-14T05:01:05Z2015-08-12T09:22:48Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~alya.k
">Alya Ahmad</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><span> <style type='text/css'>/*<![CDATA[*/
div.rbtoc1710825688932 {padding: 0px;}
div.rbtoc1710825688932 ul {margin-left: 0px;}
div.rbtoc1710825688932 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1710825688932'>
<ul class='toc-indentation'>
<li><a href='#CustomHTML-Introduction'>Introduction</a></li>
<li><a href='#CustomHTML-GetStarted'>Get Started</a></li>
<li><a href='#CustomHTML-CustomHTMLProperties'>Custom HTML Properties</a>
<ul class='toc-indentation'>
<li><a href='#CustomHTML-EditCustomHTML'>Edit Custom HTML</a></li>
<li><a href='#CustomHTML-AdvancedOptions'>Advanced Options</a></li>
</ul>
</li>
<li><a href='#CustomHTML-RelatedTutorials:'>Related Tutorials:</a></li>
</ul>
</div> </span></p><div class="confluence-information-macro confluence-information-macro-warning"><p class="title conf-macro-render">Prevent XSS Attack</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using <a href="https://dev.joget.org/community/display/DX7/Hash+Variable">Hash Variable</a> that uses URL parameter or user-inputted value in your custom JS scripts, ensure that these hash variable(s) are <strong>escaped</strong>!</p><p>Make use of hash variable escape keywords, see <a href="https://dev.joget.org/community/display/DX7/Hash+Variable#HashVariable-EscapingtheResultantHashVariable">Hash Variable - Escaping the Resultant Hash Variable</a>.</p><p><span style="color: rgb(66,66,66);">Use <span style="color: rgb(0,0,0);"> <strong>?javascript</strong> </span> hash variable escape. Example:</span></p><blockquote><p><span style="color: rgb(0,0,0);">#requestParam.id<strong>?javascript</strong>#</span></p></blockquote></div></div><h1 id="CustomHTML-Introduction">Introduction</h1><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><strong>Custom HTML</strong> in Form Builder can be used to achieve advanced form design.</div></p><h1 id="CustomHTML-GetStarted">Get Started</h1><p><span style="color: rgb(23,43,77);">The easiest way to see how the Custom HTML works is to use the existing built-in App Expenses Claims. Here are the steps:</span></p><ol><li>Start the <strong>Joget Server</strong> and open the <strong>App Center</strong>.<br/><br/></li><li>Log in as <strong>admin</strong> and click on the pencil icon on the <strong>Expenses Claim</strong> to open the <strong>Design App</strong>. (see Figure 1)<br/><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814410/advgrid_step1.png?version=1&modificationDate=1571902125000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814410/advgrid_step1.png?version=1&modificationDate=1571902125000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="71008321" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="advgrid_step1.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814410" data-linked-resource-container-version="20" alt=""></span> <br/><strong>Figure 1</strong> <br/><br/></li><li><span style="color: rgb(23,43,77);">Click on<span> </span> </span> <strong style="text-align: left;">Expense Claim Form </strong>and<span style="color: rgb(23,43,77);"> you will be directed to the<span> </span> </span> <strong style="text-align: left;">Form Builder.</strong> <br/><br/></li><li><p><strong>Hover</strong> the mouse over the <strong>Custom HTML</strong> element on the canvas and click on <strong>Edit</strong> to open up the Edit Custom HTML properties. (see Figure 2). </p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Take note!</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Confluence" data-theme="Confluence"><a href="setupCategory" target="_blank"></pre>
</div></div><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814410/figure2a.png?version=1&modificationDate=1571902489000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814410/figure2a.png?version=1&modificationDate=1571902489000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="71008323" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="figure2a.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814410" data-linked-resource-container-version="20" alt=""></span> <br/><strong>Figure 2</strong> <br/><br/></p></li><li><span style="color: rgb(23,43,77);">This Custom HTML is used to redirect to another page in the App when the user clicks on "Setup Category". </span> <br/><br/></li><li><span style="color: rgb(23,43,77);">To see it working, head back to the <strong>Design App</strong> and click the <strong>Launch</strong> button in the <strong>Userview</strong> column.</span> <br/><br/></li><li><span style="color: rgb(23,43,77);">Click on <strong>Create a New Expense Claim</strong> button on the <strong>Dashboard</strong>, fill up the necessary details and click <strong>Continue Next Screen</strong>. </span> <br/><br/></li><li><span style="color: rgb(23,43,77);">Here you will find the link. Click it to see it redirects you to the <strong>Setup </strong> <strong>Category</strong> page.</span> <br/><br/></li><li>Head back to the <strong>Design App</strong> and open up the <strong>Expenses Claims Apps</strong> under <strong>Userview</strong> column. <br/><br/></li><li>In <strong>Userview Builder</strong> and take a look at the properties of <strong>Setup Category</strong>. Note that the <a> href attribute used in Custom HTML element was using the <strong>CustomID</strong> to specify the page the link goes to. (see Figure 3)<br/><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814410/figure4a.png?version=1&modificationDate=1571974555000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814410/figure4a.png?version=1&modificationDate=1571974555000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="71630901" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="figure4a.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814410" data-linked-resource-container-version="20" alt=""></span> <br/><strong>Figure 3</strong></li></ol><h1 id="CustomHTML-CustomHTMLProperties">Custom HTML Properties</h1><h2 id="CustomHTML-EditCustomHTML">Edit Custom HTML</h2><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814410/properties.png?version=1&modificationDate=1571901929000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814410/properties.png?version=1&modificationDate=1571901929000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="71008320" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="properties.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814410" data-linked-resource-container-version="20" alt=""></span></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col/> <col/> </colgroup><tbody><tr><th class="confluenceTh">Name</th><th class="confluenceTh">Description</th></tr><tr><td class="confluenceTd">ID</td><td class="confluenceTd"><div class="content-wrapper"><p>Element ID will not be automatically be reflected in the database unless you toggled the <strong>Auto populate saved value </strong>and use the <input> element in the custom HTML.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">The <input> Element</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Any <input> element in the custom HTML will automatically create a database table column based on the name attribute. </p><p>To retrieve the value back, you can enable <strong>Auto Populate Saved Value? </strong>under Advanced Options below.</p></div></div><p><br/></p>Please see <a href="https://dev.joget.org/community/display/DX7/Form+Element">Form Element</a> for more information about defining the ID and the list of reserved IDs.<div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">Making it Hidden</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>You can name the ID as "hidden" and the content will be hidden away in the runtime/actual userview.</p></div></div><p><br/></p><p><br/></p></div></td></tr><tr><td colspan="1" class="confluenceTd">Custom HTML</td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><strong>Custom HTML</strong> in Form Builder can be used to achieve advanced form design by putting in any valid -</p><ol><li><p><strong>HTML</strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Sample</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Confluence" data-theme="Confluence"><b>this text is in bold</b></pre>
</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Sample</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Confluence" data-theme="Confluence"><input type="text" id="fname" name="fname" value=""></pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">The <input> Element</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Any <input> element in the custom HTML will automatically create a database table column based on the name attribute. </p><p>To retrieve the value back, you can enable <strong>Auto populate saved value? </strong>under Advanced Options below.</p></div></div></li><li><p><strong>JavaScript</strong> (jQuery is supported)<br/>Don’t forget to put in <script type="text/javascript"></script> block</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Sample</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Confluence" data-theme="Confluence"><script type="text/javascript">
alert("hello world");
</script></pre>
</div></div></li><li><p><strong>CSS</strong> <br/>Don’t forget to put in <style type="text/css"></style> block</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Sample</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Confluence" data-theme="Confluence"><style type="text/css">
body{
font-size: 100%;
}
</style> </pre>
</div></div></li></ol></div></td></tr></tbody></table></div><p><br/></p><h2 id="CustomHTML-AdvancedOptions">Advanced Options</h2><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="500" src="https://dev.joget.org/community/download/attachments/66814410/image-2024-1-12_17-27-16.png?version=1&modificationDate=1705051640000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814410/image-2024-1-12_17-27-16.png?version=1&modificationDate=1705051640000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="271123506" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image-2024-1-12_17-27-16.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814410" data-linked-resource-container-version="20" alt=""></span></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th class="confluenceTh">Name</th><th class="confluenceTh">Description</th></tr><tr><td class="confluenceTd">Label</td><td class="confluenceTd">Element Label to be displayed to the end-user.</td></tr><tr><td class="confluenceTd">Auto populate saved value?</td><td class="confluenceTd"><div class="content-wrapper"><p>Toggle to the auto-populate saved value.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">The <input> Element</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Any <input> element in the custom HTML will be automatically retrieved so long as the name attribute is the same as the database table column</p></div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Does not support the following input types: file, button, submit, reset & image</p></div></div></div></td></tr><tr><td class="confluenceTd">Sanitize Input Value?</td><td class="confluenceTd"><div class="content-wrapper"><p><span style="color: rgb(0,51,102);">Checking the box will s</span><span style="color: rgb(0,51,102);">anitize the input value before storing input data to database. Please see<span> </span></span><a style="text-align: left;" href="https://dev.joget.org/community/display/SANDBOX2/Form+Input+Sanitization" rel="nofollow">Form Input Sanitization</a></p></div></td></tr></tbody></table></div><h1 id="CustomHTML-RelatedTutorials:">Related Tutorials:</h1><ul><li><a href="https://dev.joget.org/community/display/DX7/Form+Input+Sanitization" rel="nofollow">Form Input Sanitization</a></li></ul>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Custom+HTML">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66814410&revisedVersion=20&originalVersion=19">View Changes Online</a>
</div>
</div>Alya Ahmad2015-08-12T09:22:48ZEnvironment VariableNabila Jahantag:dev.joget.org,2009:page-66815099-122024-03-10T18:50:36Z2015-08-12T09:22:51Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~nabila.jahan
">Nabila Jahan</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1710825689015 {padding: 0px;}
div.rbtoc1710825689015 ul {margin-left: 0px;}
div.rbtoc1710825689015 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1710825689015'>
<ul class='toc-indentation'>
<li><a href='#EnvironmentVariable-Introduction'>Introduction</a></li>
<li><a href='#EnvironmentVariable-IDGeneratorFieldProperties'>ID Generator Field Properties</a>
<ul class='toc-indentation'>
<li><a href='#EnvironmentVariable-EditIDGeneratorField'>Edit ID Generator Field</a></li>
</ul>
</li>
<li><a href='#EnvironmentVariable-HashVariables'>Hash Variables</a></li>
<li><a href='#EnvironmentVariable-RelatedLinks'>Related Links</a></li>
<li><a href='#EnvironmentVariable-CautionsAndWarnings'>Cautions And Warnings</a></li>
</ul>
</div></p><h1 id="EnvironmentVariable-Introduction">Introduction</h1><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p>Environment Variables are used to store commonly used parameters or settings in the application. Storing commonly used values in one place eases the migration and maintenance of the application developed. Environment variables can be retrieved by using the Environment Variable Hash Variable.</p><p>One can make use of the Environment Variable to store commonly used values in places like <a href="https://dev.joget.org/community/display/DX7/Email+Tool">Email Tool</a>, <a href="https://dev.joget.org/community/display/DX7/Database+Update+Tool">Database Update Tool</a>, and so on. Doing so makes it easier to manage setting/configuration changes.</p></div></p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">App Variable = Environment Variable</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Take note both <strong>App Variable</strong> and <strong>Environment Variable</strong> perform the same function</p></div></div><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" confluence-query-params="effects=drop-shadow" src="https://dev.joget.org/community/download/attachments/66815099/image2020-1-24_15-8-4.png?version=1&modificationDate=1579849686000&api=v2&effects=drop-shadow" data-image-src="https://dev.joget.org/community/download/attachments/66815099/image2020-1-24_15-8-4.png?version=1&modificationDate=1579849686000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="91160613" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-1-24_15-8-4.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815099" data-linked-resource-container-version="12" alt=""></span><br/>Figure 1: Properties & Export</p><p><br/></p><h1 id="EnvironmentVariable-IDGeneratorFieldProperties"><span style="color: rgb(83,83,83);">ID Generator Field Properties</span></h1><h2 id="EnvironmentVariable-EditIDGeneratorField"><strong><span style="color: rgb(83,83,83);">Edit ID Generator Field</span></strong></h2><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="500" confluence-query-params="effects=drop-shadow" src="https://dev.joget.org/community/download/attachments/66815099/image2020-1-24_15-38-15.png?version=1&modificationDate=1579851496000&api=v2&effects=drop-shadow" data-image-src="https://dev.joget.org/community/download/attachments/66815099/image2020-1-24_15-38-15.png?version=1&modificationDate=1579851496000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="91160624" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-1-24_15-38-15.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815099" data-linked-resource-container-version="12" alt=""></span></p><p>Figure 1: Add Env Variable</p><div class="table-wrap"><table class="relative-table wrapped confluenceTable" style="width: 91.3004%;"><colgroup><col style="width: 6.62513%;"/><col style="width: 70.8181%;"/></colgroup><tbody><tr><th style="text-align: left;" class="confluenceTh">Name</th><th style="text-align: left;" class="confluenceTh">Description</th></tr><tr><td style="text-align: left;" class="confluenceTd">ID</td><td style="text-align: left;" class="confluenceTd"><p>Env variable id. Only letters (a-z and A-Z), numbers (0-9) and underscore (_) are allowed in the ID field. ID cannot have space. Mandatory field.</p></td></tr><tr><td style="text-align: left;" class="confluenceTd">Remarks</td><td style="text-align: left;" class="confluenceTd">Optional, typically used as remarks to Joget developers.</td></tr><tr><td style="text-align: left;" class="confluenceTd">Value</td><td style="text-align: left;" class="confluenceTd"><p>Environment Variable value. Can be a number or a static value or a piece of <a href="https://dev.joget.org/community/display/DX7/Hash+Variable#HashVariable-BeanShellHashVariable" rel="nofollow">software code</a> (HTML, CSS, Javascript, Java, etc.).</p></td></tr></tbody></table></div><p><br/></p><h1 id="EnvironmentVariable-HashVariables">Hash Variables</h1><p>You can use <a href="https://dev.joget.org/community/display/DX7/Hash+Variable#HashVariable-EnvironmentVariableHashVariable">Hash Variable</a> to reference a value in Environment Variable.</p><p><br/></p><h1 id="EnvironmentVariable-RelatedLinks">Related Links</h1><ul><li><a href="https://dev.joget.org/community/display/DX7/Manage+Environment+Variable+using+Form" rel="nofollow">Manage Environment Variable using Form And BeanShell</a></li></ul><p><br/></p><h1 id="EnvironmentVariable-CautionsAndWarnings">Cautions And Warnings</h1><p>When importing apps into a new Joget platform, for example from development to production server, do update all the environment values you may have defined; IP addresses, domain name, database connection strings values, etc.</p><p>However, if it is an existing app in a production server, do be careful not to change any environment variable counters that are link to your form's "ID Generator Fields". This may affect the running numbers in the form's new records.</p><p><span style="color: rgb(85,85,85);">If you are using the ID Generator Field as "id", meaning it is a primary key value, be careful not to override the e</span><span style="color: rgb(85,85,85);">nvironment variable value </span><span style="color: rgb(85,85,85);">when inporting apps: do not click the "Show Advanced Options > Override environment variables" checkbox in Import App screen.</span></p><p><br/></p><p><br/></p><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Environment+Variable">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815099&revisedVersion=12&originalVersion=11">View Changes Online</a>
</div>
</div>Nabila Jahan2015-08-12T09:22:51ZInstalling Joget as a Windows ServiceAadrian Zarintag:dev.joget.org,2009:page-66814294-122024-02-29T08:18:14Z2014-04-29T07:44:04Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~aadrian
">Aadrian Zarin</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><br/></p><ol><li><p>Download the desired Tomcat version from its official site. You can click <a href="http://tomcat.apache.org/download-80.cgi" class="external-link" rel="nofollow">here</a> to get Tomcat 8. <div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">32 or 64 bits?</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Make sure that you match Tomcat with the version of Java that you are using.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></div></li><li><p>Make sure that you pick the bundle meant for Windows as highlighted below.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66814294/bundle.png?version=3&modificationDate=1653975641000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/bundle.png?version=3&modificationDate=1653975641000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66814301" data-linked-resource-version="3" data-linked-resource-type="attachment" data-linked-resource-default-alias="bundle.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li><p>Extract the content and put it into the Joget's installation directory. <br/>In this article, our Joget installation directory is <strong>C:\Joget-DX7-Enterprise\</strong><br/>At the time of writing, "apache-tomcat-8.5.54" is the version downloaded.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_14-51-25.png?version=1&modificationDate=1587711085000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_14-51-25.png?version=1&modificationDate=1587711085000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="101548450" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_14-51-25.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li><p>Copy the <strong>jw.war </strong>from<strong> existing tomcat's webapps </strong>folder into the new one (i.e. from \apache-tomcat-8.5.41\webapp\ to \apache-tomcat-8.5.54\webapp\)<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p><strong>Optional step</strong>: If you ever plan to start up Joget manually next time by running the usual batch file or through Windows Start Menu, you can modify <strong>joget.start</strong> to point to the new tomcat folder.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Existing code</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Confluence" data-theme="Confluence">set CATALINA_HOME=.\apache-tomcat-8.5.41</pre>
</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>New code</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Confluence" data-theme="Confluence">set CATALINA_HOME=.\apache-tomcat-8.5.54</pre>
</div></div></li><li><p>Open up <strong>\apache-tomcat-8.5.54\bin </strong>in your command prompt.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p>Run <strong>service.bat install <span style="color: rgb(66,66,66);">service_name Tomcat8JogetDX</span></strong>.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Command Prompt</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Confluence" data-theme="Confluence">C:\Joget-DX7-Enterprise\apache-tomcat-8.5.54\bin>service.bat install service_name Tomcat8JogetDX
Installing the service 'Tomcat8JogetDX' ...
Using CATALINA_HOME: "C:\Joget-DX7-Enterprise\apache-tomcat-8.5.54"
Using CATALINA_BASE: "C:\Joget-DX7-Enterprise\apache-tomcat-8.5.54"
Using JAVA_HOME: "C:\Joget-DX7-Enterprise\jre11.0.2"
Using JRE_HOME: "C:\Joget-DX7-Enterprise\jre11.0.2"
Using JVM: "C:\Joget-DX7-Enterprise\jre11.0.2\bin\server\jvm.dll"
The service 'Tomcat8JogetDX' has been installed.</pre>
</div></div></li><li><p>To verify, you may check in <strong>Computer Management -> Services</strong>.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_15-10-43.png?version=1&modificationDate=1587712244000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_15-10-43.png?version=1&modificationDate=1587712244000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="101548452" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_15-10-43.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span></p></li><li><p>Get back to the <strong>\apache-tomcat-8.5.54\bin</strong> folder. From the command prompt, runs the command <strong>tomcat8w.exe //ES/Tomcat8JogetDX</strong><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_15-11-46.png?version=1&modificationDate=1587712307000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_15-11-46.png?version=1&modificationDate=1587712307000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="101548453" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_15-11-46.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li>Navigate to <strong>Log On </strong>tab. The default value "Local Service" is known to not <strong>provide enough permission </strong>to run Joget. Change it by changing to using a local user account to run the service. Please read <a href="https://stackoverflow.com/a/63907950" class="external-link" rel="nofollow">https://stackoverflow.com/a/63907950</a> for more information.</li><li><p>Go to the <strong>Logging</strong> tab. Verify that the <strong>Log path </strong>is pointing to the correct location, by default, it should point it back to the <strong>logs </strong>folder of the current Tomcat already.<br/>Select the level of logging you wish for in the <strong>level</strong> drop-down list.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/> <span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" height="495" width="416" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-2-46.png?version=1&modificationDate=1587722568000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-2-46.png?version=1&modificationDate=1587722568000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="102268952" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_18-2-46.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li><p>Next, go to the <strong>Java</strong> tab,change the <strong>JavaVirtual Machine</strong> file path to the file path shown below and <strong>append</strong> the following lines in the <strong>Java Options</strong> field. This is to define the <strong>wflow</strong> home folder from where Joget will run. At the same time, configure the <strong>maximum memory pool</strong> accordingly (i.e. 1024).<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Append these lines</b></div><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Confluence" data-theme="Confluence">-Dwflow.home=C:\Joget-DX7-Enterprise\wflow
-javaagent:C:\Joget-DX7-Enterprise\wflow\aspectjweaver-1.8.5.jar
-javaagent:C:\Joget-DX7-Enterprise\wflow\glowroot\glowroot.jar</pre>
</div></div><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" height="494" width="416" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-4-33.png?version=1&modificationDate=1587722675000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-4-33.png?version=1&modificationDate=1587722675000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="102268953" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_18-4-33.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li><p>Go to <strong>startup </strong>tab, set the working path to your Joget's installation folder. Repeat it for <strong>shutdown </strong>tab too.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/> <span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" height="497" width="416" src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-6-20.png?version=1&modificationDate=1587722781000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66814294/image2020-4-24_18-6-20.png?version=1&modificationDate=1587722781000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="102268955" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2020-4-24_18-6-20.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66814294" data-linked-resource-container-version="12" alt=""></span><br/><br/></p></li><li><p>You can now start up Joget as a service.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li></ol><p>After you have successfully added <strong>Tomcat as a service</strong>, you may also want to <strong>add MySQL as a service</strong> and <strong>make Tomcat dependent on MySQL</strong> as well.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ol><li><a href="https://dev.joget.org/community/display/DX7/Installing+MySQL+as+a+Windows+Service">Installing MySQL as a Windows Service</a></li><li><a href="https://dev.joget.org/community/display/DX7/Adding+MySQL+service+as+a+Dependency+to+Tomcat+service">Adding MySQL service as a Dependency to Tomcat service</a></li></ol><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p>Reference: <a href="http://tomcat.apache.org/tomcat-8.0-doc/windows-service-howto.html" class="external-link" rel="nofollow">Apache Tomcat 8 - Windows service HOW-TO</a></p></div><br/></p><p><a href="http://tomcat.apache.org/tomcat-8.0-doc/windows-service-howto.html" class="external-link" rel="nofollow"> </a><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><a href="http://tomcat.apache.org/tomcat-8.0-doc/windows-service-howto.html" class="external-link" rel="nofollow"> </a></p><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Installing+Joget+as+a+Windows+Service">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66814294&revisedVersion=12&originalVersion=11">View Changes Online</a>
</div>
</div>Aadrian Zarin2014-04-29T07:44:04ZJoget Clustering using Tomcat Session ReplicationIrsyaduddin Faiztag:dev.joget.org,2009:page-248676418-62024-02-26T07:14:46Z2023-07-12T02:29:38Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~jogetfaiz
">Irsyaduddin Faiz</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<h3 id="JogetClusteringusingTomcatSessionReplication-TomcatSessionPersistence"><strong>Tomcat Session Persistence</strong></h3><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p><span>This article will explain on how to configure the Tomcat Persistent Manager,</span><span> which has the capability to swap active (but idle) sessions out to a persistent storage mechanism, as well as to save all sessions across a normal restart of Tomcat. </span></p></div></p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">Changes to the PersistentValve configuration</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Due to the recent changes in Tomcat, the PersistentValve configuration no longer works, so it is suggested to use load balancer with sticky sessions with the Tomcat session replication.</p></div></div><p><br/></p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">Note : This KB is only for the Tomcat configuration, for other clustering configurations eg. setting up shared directory etc please refer to Server Clustering Guide page <a href="https://dev.joget.org/community/display/DX8/Server+Clustering+Guide" rel="nofollow">here</a>.</div></div><p><span>In <em>server.xml</em> file, we need to add the jvmRoute.</span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence"><Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"></pre>
</div></div><p><span>In<em> catalina.properties</em>, add the</span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence">org.apache.catalina.session.StandardSession.ACTIVITY_CHECK=true</pre>
</div></div><p><span>to ensure that the persistent manager works correctly.</span></p><p><span>For this guide we use a JDBC Based Store to save sessions in individual rows of a preconfigured table in a database that is accessed via a JDBC driver. Create a database named tomcat and table with the following SQL queries:</span></p><p><strong><u>Using MySQL/MariaDB;</u></strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: sql; gutter: false; theme: Confluence" data-theme="Confluence">create database tomcat;
grant all privileges on tomcat.* to 'tomcat'@'%' identified by 'tomcat';
use tomcat;
create table tomcat_sessions (
session_id varchar(100) not null primary key,
valid_session char(1) not null,
max_inactive int not null,
last_access bigint not null,
app_name varchar(255),
session_data mediumblob,
KEY kapp_name(app_name)
);</pre>
</div></div><p><u><strong>Using MSSQL;</strong></u></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: sql; gutter: false; theme: Confluence" data-theme="Confluence">CREATE DATABASE tomcat;
CREATE LOGIN tomcat WITH PASSWORD = 'tomcat';
CREATE USER tomcat FOR LOGIN tomcat;
USE tomcat;
CREATE TABLE tomcat_sessions (
session_id VARCHAR(100) NOT NULL PRIMARY KEY,
valid_session CHAR(1) NOT NULL,
max_inactive INT NOT NULL,
last_access BIGINT NOT NULL,
app_name VARCHAR(255),
session_data VARBINARY(MAX),
);
CREATE INDEX kapp_name ON tomcat_sessions (app_name);
#For user permission on tomcat database
ALTER ROLE db_owner ADD MEMBER tomcat;</pre>
</div></div><p><u><strong>Using PostgreSQL;</strong></u></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: sql; gutter: false; theme: Confluence" data-theme="Confluence">-- Create database
CREATE DATABASE tomcat;
-- Create user and grant privileges
CREATE USER tomcat WITH PASSWORD 'tomcat';
GRANT ALL PRIVILEGES ON DATABASE tomcat TO tomcat;
ALTER DATABASE tomcat OWNER TO tomcat;
-- Connect to the database
\c tomcat tomcat;
-- Create table
CREATE TABLE tomcat_sessions (
session_id character varying(100) NOT NULL,
valid_session character(1) NOT NULL,
max_inactive integer NOT NULL,
last_access bigint NOT NULL,
app_name character varying(255),
session_data bytea,
CONSTRAINT tomcat_sessions_pkey PRIMARY KEY (session_id)
);
CREATE INDEX app_name_index
ON tomcat_sessions
USING btree
(app_name);</pre>
</div></div><p><span>In order for the JDBC Based Store to successfully connect to the database, we need to place the JAR file containing the correct JDBC driver into [TOMCAT_PATH]\lib\ directory. Take note that if using MySQL, place the MySQL JDBC driver and if using MSSQL place the MSSQL JDBC driver (same case for the PostgreSQL, need to use the PostgreSQL JDBC driver).<br/></span></p><p><span>Last but not least, add the following content into [TOMCAT_PATH]\conf\context.xml</span></p><p><u><strong>Using MySQL/MariaDB;</strong></u></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence"> <Resources cachingAllowed="true" cacheMaxSize="100000" />
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:mysql://joget-db-server-ip/tomcat?user=tomcat&password=tomcat"
driverName="com.mysql.jdbc.Driver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager></pre>
</div></div><p><u><strong>Using MSSQL;</strong></u></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence"> <Resources cachingAllowed="true" cacheMaxSize="100000" />
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:sqlserver://joget-db-server-ip:1433;databaseName=tomcat;user=tomcat;password=tomcat;encrypt=false;trustServerCertificate=false"
driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager></pre>
</div></div><p><u><strong>Using PostgreSQL;</strong></u></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: bash; gutter: false; theme: Confluence" data-theme="Confluence"> <Resources cachingAllowed="true" cacheMaxSize="100000" />
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:postgresql://[YourDBIPHere]:[YourDBPortHere]/tomcat?user=tomcat&amp;password=tomcat"
driverName="org.postgresql.Driver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="public.tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager> </pre>
</div></div><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><span>Additional note : For file based store method, you can refer to the Tomcat documentation </span><a href="https://tomcat.apache.org/tomcat-9.0-doc/config/manager.html" class="external-link" rel="nofollow"><span>here</span></a><span>.</span></p></div></div>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Joget+Clustering+using+Tomcat+Session+Replication">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=248676418&revisedVersion=6&originalVersion=5">View Changes Online</a>
</div>
</div>Irsyaduddin Faiz2023-07-12T02:29:38ZList Grid/Popup Selectbox - Pass field value to Datalist for filteringNabila Jahantag:dev.joget.org,2009:page-66815846-92024-02-21T03:45:26Z2015-11-19T04:12:01Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~nabila.jahan
">Nabila Jahan</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<div class="confluence-information-macro has-no-icon confluence-information-macro-tip"><div class="confluence-information-macro-body"><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' >In this article, we will use the "URL Request Parameters for Datalist" option of <a href="https://dev.joget.org/community/display/DX7/List+Grid">List Grid</a> or <a href="https://dev.joget.org/community/display/DX7/Popup+Select+Box">Popup Select Box</a> form element to refine the result of popup datalist selection.</div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></div><p>First, we will have to create a datalist and set the filter using <a href="https://dev.joget.org/community/display/DX7/Hash+Variable">Request Param Hash Variable</a>. In this sample, our request parameter name is "group" and we are using <a href="https://dev.joget.org/community/display/DX7/Advanced+Form+Data+Binder">Advanced Form Data Binder</a> to retrieve form data. You can use other binders and write your filter condition using the Request Param Hash Variable.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/datalist.png?version=1&modificationDate=1447906322000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/datalist.png?version=1&modificationDate=1447906322000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815854" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="datalist.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p>After we have our datalist ready, let make a form as following. In this form, we will have a Popup Select Box and a List Grid which will use the datalist we just created as popup selection dialog. We will have a select box which will be used to filter the datalist result and its field id is set to "filter".<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/sample_form.png?version=1&modificationDate=1447906322000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/sample_form.png?version=1&modificationDate=1447906322000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815853" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="sample_form.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p>Configure the "URL Request Parameters for Datalist" option of Popup Select Box and List Grid as following.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/configure.png?version=1&modificationDate=1447906321000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/configure.png?version=1&modificationDate=1447906321000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815852" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="configure.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p>By configuring this way, the element will retrieve the configured field value and pass it as a URL request parameter to the datalist when the popup select dialog is open. In this case, the value of the "filter" field will pass as the value of the "group" parameter. You can configure a default value if you want to. The default value will be used when the configured field returns an empty value.</p><p>Let us populate some data to our datalist for testing.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/sample_data.png?version=1&modificationDate=1447906321000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/sample_data.png?version=1&modificationDate=1447906321000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815851" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="sample_data.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p>Now, in our form, when the select box value is "Group2", the available result in our popup selection dialog will only shown the data which have group equal to "group2".<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/form.png?version=1&modificationDate=1447906321000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/form.png?version=1&modificationDate=1447906321000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815850" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="form.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815846/selection.png?version=1&modificationDate=1447906321000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815846/selection.png?version=1&modificationDate=1447906321000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815849" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="selection.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815846" data-linked-resource-container-version="9" alt=""></span></p><p><br/></p><p>The sample app for this article: <div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><a class="confluence-embedded-file" href="https://dev.joget.org/community/download/attachments/66815846/APP_form_how_to_url_params-1-20151119114709.jwa?version=1&modificationDate=1447906321000&api=v2" data-nice-type="null" data-file-src="https://dev.joget.org/community/download/attachments/66815846/APP_form_how_to_url_params-1-20151119114709.jwa?version=1&modificationDate=1447906321000&api=v2" data-linked-resource-id="66815848" data-linked-resource-type="attachment" data-linked-resource-container-id="66815846" data-linked-resource-default-alias="APP_form_how_to_url_params-1-20151119114709.jwa" data-mime-type="application/octet-stream" data-has-thumbnail="false" data-linked-resource-version="1" data-can-edit="false" aria-label="APP_form_how_to_url_params-1-20151119114709.jwa" draggable="false"><img src="https://dev.joget.org/community/s/8kxef7/9012/cuccqr/18.5.21/_/download/resources/com.atlassian.confluence.plugins.confluence-view-file-macro:view-file-macro-resources/images/placeholder-small-file.png" height="150" alt="" draggable="false" /><span class="title">APP_form_how_to_url_params-1-20151119114709.jwa</span></a></span></p><h3 id="ListGrid/PopupSelectboxPassfieldvaluetoDatalistforfiltering-RelatedElements">Related Elements</h3><p><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ul><li><a href="https://dev.joget.org/community/display/DX7/List+Grid">List Grid</a></li><li><a href="https://dev.joget.org/community/display/DX7/Popup+Select+Box">Popup Select Box</a></li><li><a href="https://dev.joget.org/community/display/DX7/Hash+Variable#HashVariable-RequestParameterHashVariable">Request Parameter Hash Variable</a></li><li><a href="https://dev.joget.org/community/display/DX7/Advanced+Form+Data+Binder">Advanced Form Data Binder</a></li></ul><p><br/></p><p><br/></p><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/pages/viewpage.action?pageId=66815846">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815846&revisedVersion=9&originalVersion=8">View Changes Online</a>
</div>
</div>Nabila Jahan2015-11-19T04:12:01ZVideo TutorialsPTtag:dev.joget.org,2009:page-66816052-82024-02-13T20:50:36Z2016-05-06T08:43:20Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~azrulhafiz0177
">PT</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1710825691142 {padding: 0px;}
div.rbtoc1710825691142 ul {margin-left: 0px;}
div.rbtoc1710825691142 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1710825691142'>
<ul class='toc-indentation'>
<li><a href='#VideoTutorials-HowtoDynamicallyChangetheOptionsofaSelectBoxorRadioButton'>How to Dynamically Change the Options of a Select Box or Radio Button</a></li>
<li><a href='#VideoTutorials-HowtouseDefaultFormOptionsBinder'>How to use Default Form Options Binder</a></li>
<li><a href='#VideoTutorials-HowtoDeployJogetonRedHatOpenShift'>How to Deploy Joget on Red Hat OpenShift</a></li>
<li><a href='#VideoTutorials-HowtocreateaCRUDviatheAppGenerator'>How to create a CRUD via the App Generator</a></li>
<li><a href='#VideoTutorials-HowtouseAJAXSubform'>How to use AJAX Subform</a></li>
<li><a href='#VideoTutorials-HowtoCreateaFormwithMultipleTabsusingMultiPagedForm'>How to Create a Form with Multiple Tabs using Multi Paged Form</a></li>
<li><a href='#VideoTutorials-FormBuilder-ShowandHideFormSections'>Form Builder - Show and Hide Form Sections</a></li>
<li><a href='#VideoTutorials-UsingCurrentUserHashVariableonFormandDatalist'>Using Current User Hash Variable on Form and Datalist</a></li>
<li><a href='#VideoTutorials-CreatingamultirowgridinForm'>Creating a multirow grid in Form</a></li>
<li><a href='#VideoTutorials-DynamicCascadingDropDownList'>Dynamic Cascading Drop Down List</a></li>
<li><a href='#VideoTutorials-TriggerDeadlinebasedonspecificDatevalue'>Trigger Deadline based on specific Date value</a></li>
<li><a href='#VideoTutorials-ControlWorkflowusingFormFieldValueusingWorkflowVariableMapping'>Control Workflow using Form Field Value using Workflow Variable Mapping</a></li>
<li><a href='#VideoTutorials-LearnaboutRunProcessActivityinProcessDesign'>Learn about Run Process Activity in Process Design</a></li>
<li><a href='#VideoTutorials-InstallingJogetWorkflowv5withOracle11ginDockerinUbuntu'>Installing Joget Workflow v5 with Oracle 11g in Docker in Ubuntu</a></li>
<li><a href='#VideoTutorials-SendingEmail'>Sending Email</a></li>
<li><a href='#VideoTutorials-CreatingaSQLChartusingUserviewBuilder'>Creating a SQL Chart using Userview Builder</a></li>
<li><a href='#VideoTutorials-Inbox'>Inbox</a></li>
<li><a href='#VideoTutorials-PostFormSubmissionProcessing'>Post Form Submission Processing</a></li>
<li><a href='#VideoTutorials-Learnhowtodesigndynamicformsthatchangeonuserinput'>Learn how to design dynamic forms that change on user input</a></li>
<li><a href='#VideoTutorials-HowtoaddJasperReportintoJogetWorkflowApp'>How to add JasperReport into Joget Workflow App</a></li>
<li><a href='#VideoTutorials-HowtoimportExcel/CSVfileintoJogetWorkflowForm'>How to import Excel/CSV file into Joget Workflow Form</a></li>
<li><a href='#VideoTutorials-HowtoaddDeadlinesintoWorkflowProcess'>How to add Deadlines into Workflow Process</a></li>
<li><a href='#VideoTutorials-JogetWorkflow-Format,List,Sort,andFilterusingtheDatePicker'>Joget Workflow - Format, List, Sort, and Filter using the Date Picker</a></li>
<li><a href='#VideoTutorials-InstallingJogetWorkflowv5inWindows'>Installing Joget Workflow v5 in Windows</a></li>
<li><a href='#VideoTutorials-InstallingJogetWorkflowv5EnterpriseinWindows'>Installing Joget Workflow v5 Enterprise in Windows</a></li>
<li><a href='#VideoTutorials-AddingSelectBoxorMultiSelectBoxwithAutocompletefeature'>Adding Select Box or Multi Select Box with Autocomplete feature</a></li>
<li><a href='#VideoTutorials-HowtoImportAppintoJogetWorkflow'>How to Import App into Joget Workflow</a></li>
<li><a href='#VideoTutorials-HowtoUploadaPluginintoJogetWorkflow'>How to Upload a Plugin into Joget Workflow</a></li>
<li><a href='#VideoTutorials-BasicPermissionControl'>Basic Permission Control</a></li>
<li><a href='#VideoTutorials-RequestforEnterpriseLicense'>Request for Enterprise License</a></li>
<li><a href='#VideoTutorials-HowtoProtectJogetWorkflowApp'>How to Protect Joget Workflow App</a></li>
<li><a href='#VideoTutorials-HowtoImportProtectedAppintoJogetWorkflow'>How to Import Protected App into Joget Workflow</a></li>
</ul>
</div></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup> <col style="width: 253.0px;"/> <col style="width: 303.0px;"/> <col style="width: 431.0px;"/> <col style="width: 275.0px;"/> </colgroup><tbody><tr><th colspan="1" class="confluenceTh">Category</th><th class="confluenceTh">Title / Description</th><th class="confluenceTh">Video</th><th class="confluenceTh">Related Knowledge Base Articles</th></tr><tr><td colspan="1" class="confluenceTd">Form</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtoDynamicallyChangetheOptionsofaSelectBoxorRadioButton">How to Dynamically Change the Options of a Select Box or Radio Button</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/vFFwI2jZ0Qs?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/Dynamic+Cascading+Drop-Down+List">Dynamic Cascading Drop-Down List</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd">Form</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtouseDefaultFormOptionsBinder">How to use Default Form Options Binder</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/NWzeKGEnKfU?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/Default+Form+Options+Binder">Default Form Options Binder</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd">Installation</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtoDeployJogetonRedHatOpenShift">How to Deploy Joget on Red Hat OpenShift</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/Wl8oqkLCgvk?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/Joget+on+Red+Hat+Marketplace">Joget on Red Hat Marketplace</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd">Form</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtocreateaCRUDviatheAppGenerator">How to create a CRUD via the App Generator</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/WXvH5EMl5TU?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/Generate+CRUD">Generate CRUD</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd">Form</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtouseAJAXSubform">How to use AJAX Subform</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/arYXY7TDOtA?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/AJAX+Subform">AJAX Subform</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd">Form</td><td colspan="1" class="confluenceTd"><h3 class="title style-scope ytd-video-primary-info-renderer" id="VideoTutorials-HowtoCreateaFormwithMultipleTabsusingMultiPagedForm">How to Create a Form with Multiple Tabs using Multi Paged Form</h3></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/eELNrRay58U?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><ul><li><a href="https://dev.joget.org/community/display/DX7/Multi+Paged+Form">Multi Paged Form</a></li></ul></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' >Form</div><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-FormBuilder-ShowandHideFormSections">Form Builder - Show and Hide Form Sections</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Show and hide form section based on the value of another form field.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/_v_KV91xow4?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Show+and+Hide+Form+Sections">Show and Hide Form Sections</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><br/></p><p><br/></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form, Datalist<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-UsingCurrentUserHashVariableonFormandDatalist">Using Current User Hash Variable on Form and Datalist</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Making use of the current user hash variable to pre-populate form field value and creating a datalist that is filtered based on the current user's information.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/iy6weP1tXJU?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/KBv5/Hash+Variable#HashVariable-CurrentUserHashVariable" rel="nofollow">Current User Hash Variable</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-CreatingamultirowgridinForm"><strong>Creating a multirow grid in Form</strong></h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to create a multirow grid form element in the form. In this example, we will be making use of Form Grid and Multirow Form Binder.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/4c9iDRKf_00?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Multirow+Form+Binder">Multirow Form Binder</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li><li><a href="https://dev.joget.org/community/display/DX7/Form+Grid">Form Grid</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-DynamicCascadingDropDownList"><strong>Dynamic Cascading Drop Down List</strong></h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to dynamically change the available selections in a select box by the use of grouping and relaying on other form field value.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/iT_4U4SiIiw?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Dynamic+Cascading+Drop-Down+List">Dynamic Cascading Drop-Down List</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Process<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-TriggerDeadlinebasedonspecificDatevalue"><strong>Trigger Deadline based on specific Date value </strong></h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to add new deadline and setting the deadline to a specific date time.<strong> </strong><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><strong> </strong></p><p><br/></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/7L_NFQxc2-s?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><p class="with-breadcrumbs"><a href="https://dev.joget.org/community/display/KBv5/Trigger+Deadline+based+on+specific+Date+value" rel="nofollow">Trigger Deadline based on specific Date value</a></p><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Process, Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-ControlWorkflowusingFormFieldValueusingWorkflowVariableMapping">Control Workflow using Form Field Value using Workflow Variable Mapping</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to control workflow using the form field value.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/S7qHytZUg6g?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><br/></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Process<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-LearnaboutRunProcessActivityinProcessDesign">Learn about Run Process Activity in Process Design</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn about the Run Process Activity on how it can prevent accidental start of process instances.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/1Ap02XKOWpc?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Map+Activities+to+Forms">Map Activities to Forms</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Installation<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-InstallingJogetWorkflowv5withOracle11ginDockerinUbuntu">Installing Joget Workflow v5 with Oracle 11g in Docker in Ubuntu </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to install Joget Workflow v5 with Oracle 11g. Oracle 11g is installed using Docker.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/tFfIeL0jXEs?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/KBv5/Running+Joget+Workflow+with+Oracle+11g" rel="nofollow">Running Joget Workflow with Oracle 11g</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Process<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-SendingEmail"><span>Sending Email </span></h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span>Learn to send out Emails from Workflow Process.</span></p><p><span>In the second part, you will learn to construct the email message dynamically using the hash variable.</span><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/wH3JcNICwlU?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/KBv5/Email+Tool" rel="nofollow">Email Tool</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Userview<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-CreatingaSQLChartusingUserviewBuilder">Creating a SQL Chart using Userview Builder </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to generate a graph in Joget Workflow.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/Mdzg055ajb0?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/KBv5/SQL+Chart" rel="nofollow">SQL Chart</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Userview<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-Inbox">Inbox</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Introduction to Inbox Userview Menu.</p><p>We talk about adding an Inbox to show all the assignments in an App through the Userview.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/KzDv5F-2woI?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/pages/viewpage.action?pageId=26117286">Inbox</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-PostFormSubmissionProcessing">Post Form Submission Processing </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn about executing Process Tool plugin upon Form submission using Joget Workflow v5's new Post Form Submission Processing feature.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/hMojGGR0yx4?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><br/></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-Learnhowtodesigndynamicformsthatchangeonuserinput">Learn how to design dynamic forms that change on user input </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>We will be showing you how to construct a dynamic select box with conditions depending on status and user's login. In addition to that, AJAX Subform will also be used to dynamically loads the subform based on the selection in the select box earlier.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/TXh_5_Wh26Y?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/AJAX+Subform">AJAX Subform</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li><li><a href="https://dev.joget.org/community/display/DX7/Default+Form+Options+Binder">Default Form Options Binder</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Userview<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoaddJasperReportintoJogetWorkflowApp">How to add JasperReport into Joget Workflow App </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>In this video, we will show you how to add JasperReport into Joget Workflow App easily.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/Iz-vW_b9F-E?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/JasperReports+Menu">JasperReports Menu</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form, Process<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoimportExcel/CSVfileintoJogetWorkflowForm">How to import Excel/CSV file into Joget Workflow Form</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to import in the Excel file into the Joget Workflow App using the Import Tool plugin. This will enable one to insert multiple records into the app easily.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/OWpEDZTPLwQ?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Import+Tool">Import Tool</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Process<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoaddDeadlinesintoWorkflowProcess">How to add Deadlines into Workflow Process</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>In this tutorial, we will show you how to add deadlines to your workflow process easily.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/kY7G1NPGePw?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Deadlines+and+Escalations">Deadlines and Escalations</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form, Datalist<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-JogetWorkflow-Format,List,Sort,andFilterusingtheDatePicker">Joget Workflow - Format, List, Sort, and Filter using the Date Picker </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to Format, List, Sort, and Filter using the Date Picker in Joget Workflow's Form and Datalist.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/olqYWeD3h0Q?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Format%2C+List%2C+Sort%2C+and+Filter+using+the+Date+Picker">Format, List, Sort, and Filter using the Date Picker</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Installation<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-InstallingJogetWorkflowv5inWindows">Installing Joget Workflow v5 in Windows </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to install Joget Workflow v5 Community Edition in Windows using the default installer bundle.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/9P8eyZm12zA?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Installation+on+Windows">Installation on Windows</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><span>Installation</span><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-InstallingJogetWorkflowv5EnterpriseinWindows">Installing Joget Workflow v5 Enterprise in Windows </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to install Joget Workflow v5 Enterprise Edition in Windows using the default installer bundle.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/r2rkOD0rIaY?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p><br/></p><ul><li><p><a href="https://dev.joget.org/community/display/DX7/Installation+on+Windows">Installation on Windows</a><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul><p><br/></p></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Form<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-AddingSelectBoxorMultiSelectBoxwithAutocompletefeature">Adding Select Box or Multi Select Box with Autocomplete feature </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn to create a select box with autocomplete functionality with Joget Workflow's Multi Select Box form element.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/bmyLr0Y4Lz4?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/DX7/Multi+Select+Box">Multi Select Box</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>General<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoImportAppintoJogetWorkflow"><strong> <span>How to Import App into Joget Workflow</span> </strong></h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span>Learn how to import App into Joget Workflow using App downloaded from Joget Marketplace.</span><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/Pbs6XKNLXVk?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><a href="https://dev.joget.org/community/display/KBv5/Import+App" rel="nofollow">Import App</a><p><br/><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Plugin<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoUploadaPluginintoJogetWorkflow">How to Upload a Plugin into Joget Workflow </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to upload plugins into Joget Workflow using the Currency Field Form Element Plugin downloaded from Joget Marketplace as an example.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/fGFWi7z6Jco?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><br/></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>App Design<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-BasicPermissionControl">Basic Permission Control </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>We talk about basic permission control in this video - Userview and Userview Category Permissions.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/fhEDRaF8TdI?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><p><a href="https://dev.joget.org/community/display/DX7/Permission+Control">Permission Control</a><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Platform<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-RequestforEnterpriseLicense">Request for Enterprise License </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn how to request for Joget Workflow Enterprise License.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/loT5iF2Ef3Q?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><p><a href="https://dev.joget.org/community/display/DX7/Activate+your+Joget+DX+Enterprise+License">Activate your Joget DX Enterprise License</a><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Platform<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoProtectJogetWorkflowApp">How to Protect Joget Workflow App </h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn about the Joget Workflow App Protection feature - How to request for App Protection.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/jiG8eMGd0RA?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><p><a href="https://dev.joget.org/community/display/DX7/Request+App+Protection">Request App Protection</a><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr><tr><td colspan="1" class="confluenceTd"><div class="content-wrapper"><p>Platform<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><h3 id="VideoTutorials-HowtoImportProtectedAppintoJogetWorkflow">How to Import Protected App into Joget Workflow</h3><p><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p>Learn about the Joget Workflow App Protection feature - How to import and use Protected App.<div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><iframe class="youtube-player" type="text/html" style="width: 400px; height: 300px"
src="//www.youtube.com/embed/hmcMZCOvZdc?wmode=opaque" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
</div></td><td colspan="1" class="confluenceTd"><div class="content-wrapper"><ul><li><p><a href="https://dev.joget.org/community/display/DX7/Activate+Protected+App">Activate Protected App</a><div class='bv-language-macro' data-language-code='zh_CN' data-display-name='Chinese' data-all-url-parameter='false' style='display: none'></div></p></li></ul></div></td></tr></tbody></table></div>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Video+Tutorials">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66816052&revisedVersion=8&originalVersion=7">View Changes Online</a>
</div>
</div>PT2016-05-06T08:43:20ZUser Notifications TutorialPTtag:dev.joget.org,2009:page-66815650-132024-02-13T20:49:27Z2011-10-03T09:37:39Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~azrulhafiz0177
">PT</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1710825692332 {padding: 0px;}
div.rbtoc1710825692332 ul {margin-left: 0px;}
div.rbtoc1710825692332 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1710825692332'>
<ul class='toc-indentation'>
<li><a href='#UserNotificationsTutorial-Introduction'>Introduction</a></li>
<li><a href='#UserNotificationsTutorial-SettingUptheUserNotificationPlugin'>Setting Up the User Notification Plugin</a></li>
<li><a href='#UserNotificationsTutorial-RelatedDocumentation'>Related Documentation</a></li>
</ul>
</div></p><h1 id="UserNotificationsTutorial-Introduction">Introduction</h1><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p>Usually, we design a process to solve the main business problem, like in the example shown below. We exclude explicit tools for sending out email notifications to avoid complicating the process flow design.</p><p>The <strong><a href="https://dev.joget.org/community/display/DX7/User+Notification" rel="nofollow">User Notification</a></strong> plugin is used to address this issue.</p></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" height="629" width="473" src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-20-4.png?version=1&modificationDate=1655086805000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-20-4.png?version=1&modificationDate=1655086805000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699451" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-20-4.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815650" data-linked-resource-container-version="13" alt=""></span><br/>Figure 1: Typical Process Design Flow<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><h1 id="UserNotificationsTutorial-SettingUptheUserNotificationPlugin">Setting Up the User Notification Plugin</h1><p><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ol><li><p>Go to <strong>Properties and Export</strong> in your app.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p>Go to <strong>Set Plugin Default Properties</strong>.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/></p></li><li><p>Select <strong>User Notification</strong>.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/></p></li><li><p>In the <strong>SMTP Settings</strong> tab, configure the email server as required. Sometimes, using gmail might cause problems such as not being able to send email. In that case, if one still insists in using gmail, they may opt to set up an app generated password instead of using the gmail password, or swap to using hotmail instead. The Host for hotmail is <a href="http://smtp-mail.outlook.com" class="external-link" rel="nofollow">smtp-mail.outlook.com</a> , the Port is 587 , the Security is TLS .<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/></p></li><li><p>In the <strong>Configure User Notification</strong> tab, customize your email template as needed. It should be a generic email template as it will be used for all activities under your app.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-26-46.png?version=1&modificationDate=1655087207000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-26-46.png?version=1&modificationDate=1655087207000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699455" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-26-46.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815650" data-linked-resource-container-version="13" alt=""></span><br/><br/></p></li><li><p>Under the <strong>Notification Link</strong> section, define the assignment link that will be shown at the end of the email message.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-28-21.png?version=1&modificationDate=1655087302000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815650/image2022-6-13_10-28-21.png?version=1&modificationDate=1655087302000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699456" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-28-21.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815650" data-linked-resource-container-version="13" alt=""></span><br/><br/></p></li><li><p><strong>Link to Userview Inbox</strong><br/>If you want to link it to your Userview Inbox, get the absolute URL to the inbox and key it in the <strong>URL</strong> field. Type "activityId" in the <strong>Parameter Name</strong> field and choose "As URL Request Parameter" in the <strong>Parameter Passover Method</strong> select box.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/><br/></p></li><li><p>In the last tab, you may select activities that you would like to exclude from Task Notification.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li></ol><p><strong>Note:</strong> The <strong>User Notification</strong> plugin is designed for all activities in an app and not just for a selected few, but only one User Notification plugin can be configured per app. Nevertheless, it is possible for you to <strong>manually</strong> handle the notification for a specific activity by placing a tool after that activity in your process design, and then excluding it in the <strong>Activity Exclusion</strong> list in the User Notification plugin.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><h1 id="UserNotificationsTutorial-RelatedDocumentation">Related Documentation</h1><p><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ul><li><a href="https://dev.joget.org/community/display/DX7/User+Notification+Plugin">User Notification Plugin</a></li></ul><p><br/></p><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/User+Notifications+Tutorial">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815650&revisedVersion=13&originalVersion=12">View Changes Online</a>
</div>
</div>PT2011-10-03T09:37:39ZUpdating Foreign Record using Form Data Update ToolPTtag:dev.joget.org,2009:page-66815720-62024-02-13T20:48:46Z2014-03-04T08:17:20Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~azrulhafiz0177
">PT</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p>When a form is mapped to a process activity, Joget will create a record row using the PID as the primary key in the Application Form table. If you are using the <a href="https://dev.joget.org/community/pages/viewpage.action?pageId=8717085">Form Data Update Tool (Enterprise)</a> to update the same Form, Joget would be able to locate the database table and matching the Primary Key (PK) using the PID.</p><p>Things get tricky if you are trying to update a Form that is NOT directly part of the flow. Joget will not be able to use the same PID to match the record row.</p></div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th class="confluenceTh"><p>Table Name:</p></th><th class="confluenceTh"><p>transactions</p></th></tr><tr><td class="confluenceTd"><p>PK</p></td><td class="confluenceTd"><p>id</p></td></tr><tr><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd"><p>name</p></td></tr><tr><td class="confluenceTd"><p>FK</p></td><td class="confluenceTd"><p>account_no</p></td></tr></tbody></table></div><p><strong>Figure 1: Transaction table which is mapped to the process activity.</strong><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col/><col/></colgroup><tbody><tr><th class="confluenceTh"><p>Table Name:</p></th><th class="confluenceTh"><p>accounts</p></th></tr><tr><td class="confluenceTd"><p>PK</p></td><td class="confluenceTd"><p>id</p></td></tr><tr><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd"><p>name</p></td></tr><tr><td class="confluenceTd"><p><br/></p></td><td class="confluenceTd"><p>expiry</p></td></tr></tbody></table></div><p><strong>Figure 2: Account table which is not part of the process activity but has relationship to the Transaction table.</strong><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815720/image2022-6-10_17-53-4.png?version=1&modificationDate=1654854786000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815720/image2022-6-10_17-53-4.png?version=1&modificationDate=1654854786000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="207749848" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-10_17-53-4.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815720" data-linked-resource-container-version="6" alt=""></span><br/><strong>Figure 3: Mapping of Form Data Update Tool for Account table.</strong></p><p>The solution is simple. One will simply need to define a "id" field in the <strong>Update Fields</strong> section. State the value that would correspond to the record identifier of the Form.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><h3 id="UpdatingForeignRecordusingFormDataUpdateTool-RelatedElements">Related Elements</h3><p><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ul><li><a href="https://dev.joget.org/community/display/DX7/Form+Data+Update+Tool">Form Data Update Tool</a></li></ul><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Updating+Foreign+Record+using+Form+Data+Update+Tool">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815720&revisedVersion=6&originalVersion=5">View Changes Online</a>
</div>
</div>PT2014-03-04T08:17:20ZFlow and SubflowPTtag:dev.joget.org,2009:page-66815707-42024-02-13T20:47:40Z2015-03-16T10:03:05Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~azrulhafiz0177
">PT</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><br/><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' ><p>A subflow provide a common sequence of activities to be used by several flows. You can include subflows in your flows in the same way as you include activity and tool. You can also connect subflows to other nodes in the same way.</p><p>A subflow provides the following benefits:</p></div><br/><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><ul><li><p>Reusability and reduced development time.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p>Consistency and increased maintainability of your similar flows (consider a subflow as analogous to a programming macro, or to inline code that is written once but used in many places).<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p>Flexibility to tailor a subflow to a specific context (for example, by updating the output queue or data source information).<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li><li><p>Asynchronous subflow can perform time-consuming tasks, such as writing data to an external database or emailing a message, without stalling main flow, the flow that triggered its execution.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p></li></ul><h3 id="FlowandSubflow-TypesofSubflow">Types of Subflow</h3><p><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><h4 id="FlowandSubflow-1.Synchronous">1. Synchronous</h4><p>A subflow run synchronously (relative to the flow that triggered its execution) and always inherits both the processing strategy and exception strategy employed by the triggering flow. While a subflow is running, processing on the triggering flow pauses, then resumes only after the subflow completes its processing and hands the message back to the triggering flow.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66815707/standard_synchronous.png?version=1&modificationDate=1426500185000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815707/standard_synchronous.png?version=1&modificationDate=1426500185000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815712" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="standard_synchronous.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815707" data-linked-resource-container-version="4" alt=""></span><br/>Case 1: Standard synchronous subflow<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66815707/subflow_example.png?version=1&modificationDate=1426500185000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815707/subflow_example.png?version=1&modificationDate=1426500185000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815711" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="subflow_example.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815707" data-linked-resource-container-version="4" alt=""></span><br/>Case 2: Using Subflow multiple times in a flow.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66815707/sync_example.png?version=1&modificationDate=1426500185000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815707/sync_example.png?version=1&modificationDate=1426500185000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815710" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="sync_example.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815707" data-linked-resource-container-version="4" alt=""></span><br/>Case 3: Same subflow used by multiple flows<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p><h4 id="FlowandSubflow-2.Asynchronous">2. Asynchronous</h4><p>An asynchronous flow run simultaneously and asynchronously in parallel to the flow that triggered its execution. When a flow trigger an asynchronous flow, thus triggering its execution, it simultaneously flow to the next activity processor in its own flow. Thus, the two flows – triggering and triggered – execute simultaneously and independently, each finishing on its own. This type of flow does not inherit processing or exception strategies from the triggering flow.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66815707/standard_asynchronous.png?version=1&modificationDate=1426500185000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815707/standard_asynchronous.png?version=1&modificationDate=1426500185000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815709" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="standard_asynchronous.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815707" data-linked-resource-container-version="4" alt=""></span><br/>Case 1: Standard asynchronous subflow<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" src="https://dev.joget.org/community/download/attachments/66815707/async_example.png?version=1&modificationDate=1426500185000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815707/async_example.png?version=1&modificationDate=1426500185000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="66815708" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="async_example.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815707" data-linked-resource-container-version="4" alt=""></span><br/>Case 2: Same subflow used by multiple flows<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><br/></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Flow+and+Subflow">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815707&revisedVersion=4&originalVersion=3">View Changes Online</a>
</div>
</div>PT2015-03-16T10:03:05ZSample Application with SubflowPTtag:dev.joget.org,2009:page-66815695-82024-02-13T20:47:09Z2013-09-06T16:57:48Z<div class="feed"> <p>
Page
<b>edited</b> by
<a href=" https://dev.joget.org/community/display/~azrulhafiz0177
">PT</a>
</p>
<div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
<p><style type='text/css'>/*<![CDATA[*/
div.rbtoc1710825692507 {padding: 0px;}
div.rbtoc1710825692507 ul {margin-left: 0px;}
div.rbtoc1710825692507 li {margin-left: 0px;padding-left: 0px;}
/*]]>*/</style><div class='toc-macro rbtoc1710825692507'>
<ul class='toc-indentation'>
<li><a href='#SampleApplicationwithSubflow-Introduction'>Introduction</a></li>
<li><a href='#SampleApplicationwithSubflow-Steps'>Steps</a></li>
<li><a href='#SampleApplicationwithSubflow-DownloadDemoApp'>Download Demo App</a></li>
</ul>
</div></p><p><br/></p><h1 id="SampleApplicationwithSubflow-Introduction">Introduction</h1><p><div class='bv-language-macro' data-language-code='en_GB' data-display-name='English' data-all-url-parameter='false' >This is a sample application meant to demonstrate the use of Subflow with each process maintaining its own Form table setup.</div><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><h1 id="SampleApplicationwithSubflow-Steps">Steps</h1><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-10-22.png?version=1&modificationDate=1655086223000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-10-22.png?version=1&modificationDate=1655086223000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699442" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-10-22.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span><br/><strong>Figure 1: Process A</strong></p><p>Process A will invoke Process B when the condition is met.<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-11-15.png?version=1&modificationDate=1655086276000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-11-15.png?version=1&modificationDate=1655086276000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699444" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-11-15.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span><br/><strong>Figure 2: Process A's Subflow entity Properties</strong><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-12-17.png?version=1&modificationDate=1655086338000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-12-17.png?version=1&modificationDate=1655086338000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699445" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-12-17.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span></p><p><strong>Figure 3: Process B (Subflow) Properties</strong></p><p>The Workflow Variable from Process A (statusA) (<em>see Figure 2</em>) will be passed into Process B's (statusB) (<em>see Figure 3</em>) and will also be returned upon completion of the Subflow (Process B) as it has been set to "In and Out".<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" height="457" width="702" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-12-53.png?version=1&modificationDate=1655086373000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-12-53.png?version=1&modificationDate=1655086373000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699446" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-12-53.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span><br/><strong>Figure 4: Process B</strong></p><p>Upon completion of "Approve B" in Process B, Workflow Variable from Process B (statusB) will be returned to Process A (statusA).<div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-13-34.png?version=1&modificationDate=1655086415000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-13-34.png?version=1&modificationDate=1655086415000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699447" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-13-34.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span><br/><strong>Figure 5: Form Table Setup</strong><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div><br/></p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border" draggable="false" width="800" src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-15-21.png?version=1&modificationDate=1655086522000&api=v2" data-image-src="https://dev.joget.org/community/download/attachments/66815695/image2022-6-13_10-15-21.png?version=1&modificationDate=1655086522000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="208699448" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="image2022-6-13_10-15-21.png" data-base-url="https://dev.joget.org/community" data-linked-resource-content-type="image/png" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8" alt=""></span><br/><strong>Figure 6: Demo of the Workflow</strong></p><p>Both processes maintain their own form table setup while being able to access each other's dataset seamlessly.</p><p><br/></p><h1 id="SampleApplicationwithSubflow-DownloadDemoApp">Download Demo App</h1><p><strong>Download</strong>: <a href="https://dev.joget.org/community/download/attachments/66815695/APP_test_process_subflow_dx_kb.jwa?version=1&modificationDate=1607506967000&api=v2" data-linked-resource-id="144441481" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="APP_test_process_subflow_dx_kb.jwa" data-linked-resource-content-type="application/octet-stream" data-linked-resource-container-id="66815695" data-linked-resource-container-version="8">APP_test_process_subflow_dx_kb.jwa</a></p><p><br/><div class='bv-language-macro' data-language-code='th_TH' data-display-name='Thai' data-all-url-parameter='false' style='display: none'></div></p>
</div>
<div style="padding: 10px 0;">
<a href="https://dev.joget.org/community/display/DX7/Sample+Application+with+Subflow">View Online</a>
·
<a href="https://dev.joget.org/community/pages/diffpagesbyversion.action?pageId=66815695&revisedVersion=8&originalVersion=7">View Changes Online</a>
</div>
</div>PT2013-09-06T16:57:48Z