Questions and discussion about using ProcessMaker: user interface, running cases & functionality
amosbatto wrote: Tue Aug 22, 2017 5:46 pm I just randomly flipped through parts of the book, and it looks pretty good. I hope that you have good sales of the book.

Would you like me to make this post a sticky announcement on the forum for the next week (so it stays at the top of the list of posts)? We are always happy to see others promoting the use of ProcessMaker.

I have two observations about the book. In the beginning when installing PM with Bitnami, you should mention that Bitnami installations are generally only used for testing and developing processes. A manual installation is recommended when using processes in production, because Bitnami installations cannot be upgraded to later versions and Bitnami installations are generally slower and use more resources than manual installations.

In your JavaScript code, I recommend only using jQuery selectors. For example, you use code like this that mixes standard JavaScript and jQuery:
Code: Select all
//Register comments handler to button events
document.getElementById("form\[comment_button\]").onclick = addComments;
$("form").submit( addComments );
First of all, you don't need to escape the [ and ] characters in standard Javascript, so this will work:
Code: Select all
document.getElementById("form[comment_button]").onclick = addComments;
However, the PM Developers don't recommend using document.getElementById() to obtain the elements of a form, because the developers say that it might not always work in the ProcessMaker Mobile App, although I haven't seen an example where it doesn't work. However, it is necessary to use the custom helper functions setValue(), getValue() and setOnchange() which only work with jQuery, instead of the value and onchange properties in standard JavaScript. To avoid problems and possible confusion, we recommend always using jQuery(), even though it may be more complicated in some instances.

Officially, we recommend that you use code like this:
Code: Select all
$("#comment_button").find("button").on("click", addComments);
I personally don't like using the find() function because you have to know what HTML element you are searching for ("button", "div", "input", "select", "textarea", etc.) with each type of control, so I directly select the element through its ID "form[id]" which requires escaping the square brackets [ and ] with \\:
Code: Select all
$("#form\\[comment_button\\]").on("click", addComments );
I also don't see much reason to use .on() instead of .click() which is a shorthand that does the same thing:
Code: Select all
$("#form\\[comment_button\\]").click( addComments );
Some people find escaping with jQuery selectors to be very confusing, so they use this code:
Code: Select all
$("[id='form[comment_button]']").click( addComments );
No matter which method that you choose, I do recommend using jQuery() in all instances, so that people get used to using jQuery and won't try to use document.getElementById().value and document.getElementById().onchange which will cause problems.

If you want me to review your code in the entire book, you can email me a copy of your book at and I will look at it when I have time.
Terrific! I have just purchased a copy (I couldn't resist at that price)!
I am new to Data Science
Due to the growing demand for expertise in data sciences, job opportunities across various industries are increasing significantly worldwide. Go for Data Science Course in Pune to perform efficient analysis using modern data analysis software and Get an industry-recognized Data Scientist Certificate.
By Yogesh
Hi Team,

I have one developed project, it is related with credit card request when i tried to submit my first form then i am facing below error:
DOMDocument::loadHTML(): Tag o:p invalid in Entity, line: 7

Please suggest me, How can i resolved this issue.
Dialog Box upon form Load

Hi jab3asus, have you considered using the confi[…]

Hi sgtourism, The completed date for a task can b[…]

Hi alisoroush7, I believe that the ad hoc users m[…]

Hi jab3asus, You may want to consider using the s[…]