Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
ProcessMaker Query Language (PMQL) data types indicate the type of ProcessMaker Platform data to find: for Requests, Tasks, or Collection records.
ProcessMaker Query Language (PMQL) uses three data types. A data type specifies to which ProcessMaker Platform data the PMQL syntax applies. Syntax indicates how to interpret (parse) that data.
Request
When performing PMQL search queries from any of the pages accessible from the Requests top menu option, PMQL uses the Request
data type to apply PMQL syntax. Selecting any PMQL search result displays the Request summary for that result.
The Request
PMQL data type can use the following PMQL properties:
Task
When performing PMQL search queries from any of the pages accessible from the Tasks top menu option, PMQL uses the Task
data type to apply PMQL syntax. Selecting any PMQL search result displays the Task summary for that result.
The Task
PMQL data type can use the following PMQL properties:
Collection
The Collection
PMQL data type can use the following PMQL properties:
Use PMQL to search through Requests, Tasks, and Collection records in your ProcessMaker Platform Spring 2023 instance.
ProcessMaker Query Language (PMQL) is a custom language to search ProcessMaker Platform data. Similar in ways to search query language (SQL), which is a standard language for storing, manipulating and retrieving data in databases, use PMQL to find Requests, Tasks, and Collection record information.
Use PMQL in the following ways:
Requests: Perform advanced searches to find Request summaries.
Tasks: Perform advanced searches through your Tasks.
Collection records: Search through the records in a Collection.
To understand how to use PQML, understand the basic concepts how to compose a PMQL search query:
Syntax: Syntax specifies how to compare, combine, exclude, or group the "building blocks" of a PMQL search query. An example of a comparative operator is to compare if the last name of a Request participant is (or is not) "Canera".
Data types: Data types specify which type of ProcessMaker Platform data to search. There are three data types in PMQL: Request
, Task
, and Collection
.
Properties: Properties are the "building blocks" from which to compose PMQL queries regardless of which data type a PMQL query applies. Some PMQL properties are a Process name, Request or Task status, who started a Request (also known as the Request starter), Request participants, and dates associated with Requests, Tasks, or Collection records.
1. Requests
Perform advanced searches to find Request summaries that match specific criteria. This can help in filtering and locating specific requests quickly.
2. Tasks
Use PMQL to sift through your Tasks efficiently. This is especially useful for managing large volumes of tasks by filtering them based on various parameters.
3. Collection Records
Search through the records in a Collection to find the information you need. This can significantly streamline the process of managing and accessing large data sets within collections.
Understanding PQML
To effectively use PMQL, familiarize yourself with the following basic concepts:
Syntax Learn how to use comparative operators to construct your search queries. For example, checking if the last name of a Request participant is "Canera".
Data Types Understand the three main data types in PMQL: Request, Task, and Collection, to ensure you're searching through the correct dataset.
Properties Explore the various properties that can be used in PMQL queries, such as Process name, status, Request starter, participants, and dates associated with your data.
When performing PMQL search queries from any Collection accessible from the Collections sidebar iconin the Admin top menu option, PMQL uses the Collection
data type to apply PMQL syntax. PMQL search queries apply to records within the displayed Collection. Selecting any PMQL search result displays the Collection record for that result.
Use these ProcessMaker Query Language (PMQL) properties for Request PMQL search queries.
The following ProcessMaker Query Language (PMQL) properties apply to the Request
data type to perform PMQL search queries from any of the pages accessible from the Requests top menu option. Selecting any PMQL search result displays the Request summary for that result.
completed
: Request's Completion Datetimecompleted
property represents when the Request completes.
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
KeywordUse the NOW
keyword to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than operator (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
second
minute
hour
day
See Example 2 how this property can apply to Service Level Agreement (SLA) contract compliance.
Purpose of the search: Find completed Requests for the Purchase Request Process between February 3, 2020, and February 10, 2020.
This example uses the AND
operator to search for multiple required property values.
This example uses the request
property. The request
property value ("Purchase Request Process"
) is not case-sensitive.
Purpose of the search: Find completed Requests for the "SLA for Purchase Request Process" that started on or after March 1, 2020, but did not complete on or prior to March 4, 2020, for purchase orders submitted through the New York or Chicago branches that are at least $10 million.
This example uses the data
object that represents Request data. The following Request variables store Request data that this PMQL search query references:
Branch: The Branch
Request variable stores to which company branch office a purchase request was submitted. Different branch offices might have different Service Level Agreement (SLA) contract requirements for which they must comply. For example, the New York and Chicago offices must complete a purchase request within three (3) days; the Charlotte office must complete requests within five (5) days.
TotalCost: The TotalCost
Request variable stores the total amount for the purchase request.
This example uses the OR
operator to search for any of multiple properties within an AND
operator to find those Requests associated with either the New York or Chicago branches.
Use a PMQL search query similar to this example to monitor which Requests completed past the sanctioned time period a SLA contract allows. In this example, if a Request completes three (3) days or later from when it starts for high-profile purchase requests and/or for flagship offices, then a company executive can apologize to the client for the late service delivery.
created
: Request's Creation Datetimecreated
property represents when the Request was created.
The created
property is similar to the started
property, in that when a Request starts, it is created. The created
property applies to when our API creates a Request, while the started
property pertains to when a user uses the user interface to start a Request.
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
KeywordUse the NOW
keyword to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than operator (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
second
minute
hour
day
Purpose of the search: Find Requests for the Employee Onboarding Process that were created on or after July 1, 2020.
Note the following:
This example uses the AND
operator to search for multiple required property values.
This example uses the request
property. The request
property value ("Employee Onboarding Process"
) is not case-sensitive.
Purpose of the search: Find created Requests for the Student Enrollment Process that have been canceled or encountered an error.
Note the following:
This example uses multiple operators: AND
and OR
. The AND
operator searches for multiple required properties while the OR
operator within one of the AND
operators searches for any of multiple property values.
This example uses the status
property that uses the canceled
and error
values.
data
object: Search Request Data for Specific Request InformationUse the data
JSON object to search for Request data associated with the sought Request(s). The data
JSON object represents Request data: each Request's JSON data model contains the accumulation of all JSON objects and arrays for that Request. The data
JSON object also contains the record data for a Collection. The key names for each JSON object or array derive from the Variable Name setting values in the Screens used for Tasks in each Request or any data injected into that Request's JSON data model by Scripts run via Script Task elements or calls to the RESTful Application Program Interface (API).
Using the data
JSON object in PQML search queries helps answer the question "Which Request(s) have specific information in them that I seek?" Use operators to compare the value for a particular Screen control to find Requests that only contain the value(s) you seek. For example:
Search for Requests that apply to a specific customer in a Loan Request Process.
Search for Requests in a Purchase Request Process in which a purchase request amount is greater than $500 but less than $10,000.
Search for which registered conference attendees that were required to enter their job title are similar to "Product Manager," such as "Project Manager."
To determine what the Variable Name setting is for a control that stores Request information you seek, do one of the following:
View the Screen for the Task in which Request participants enter the information you seek, and then make note of the pertinent control's Variable Name setting. Note that your user account or group membership must have the Screens: View Screens permission.
View the Data tab in the summary for a completed Request to view the data from a completed Request, and then use the specific key name (represented in red-colored text) to search Request information from that control. Spaces are allowed between operators. Example: data.last_name = "Canera"
. Note that your user account or group membership must have the Requests: Edit Request Data permission. Ask your Administrator if you do not see the Data tab in completed Requests.
The data
JSON object precedes the Variable Name setting value, as noted above. Use JSON dot notation to reference sub-properties in the referenced Screen control if necessary.
Purpose of the search: Find Requests that the business customer named Acme Products submitted in a Loan Request Process.
When submitting a business loan request, the business must enter the business's name into a Line Input control of which its Variable Name setting is BusinessName
.
Note the following:
The examples for the data
object use the AND
operator to require all properties in the PMQL search query to be required.
These examples also use the request
property. The request
property value (such as"Loan Request Process"
) is not case-sensitive.
Purpose of the search: Find Requests associated with the Purchase Request Process in which the total purchase request cost amount is greater than $500 but less than $10,000.
A Line Input control of which its Variable Name setting is TotalCost
stores the total cost amount of the purchase request. This example uses two AND operators, one which determines the cost range.
id
: Request ID Numberid
property represents the Request ID number associated with the sought Request's Process as displayed in the # column of Request pages.
This id
property only applies to Request-related PMQL search queries, and is distinct from the id
property for the Task
data type or for the id
property for the Collection
data type.
Purpose of the search: Find Requests that are newer than Request ID 5.
Purpose of the search: Find Requests newer than Request ID 5 but older or the same as Request ID 10.
This example uses the AND
operator to require multiple property values for the search.
modified
: Datetime Request Was Last Modifiedmodified
property represents when the Request was last modified. A Request modifies when its JSON object model is changed from a Script, a user action, an application program interface (API) call, or any other means.
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
KeywordUse the NOW
keyword to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than operator (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
second
minute
hour
day
Purpose of the search: Find Requests for the Student Enrollment Process that were modified on or after July 1, 2020 but before July 8, 2020.
Note the following:
This example uses the AND
operator to search for multiple required property values.
This example uses the request
property. The request
property value ("Student Enrollment Process"
) is not case-sensitive.
Purpose of the search: Find modified Requests for the Student Enrollment Process for Seniors in all Engineering-related majors except Mechanical Engineering in which their grade point average (GPA) is or less than 2.5.
Note that PMQL search queries are case sensitive. This example uses the data
object that represents Request data. The following Request variables store Request data that this PMQL search query references:
Grade: The Grade
Request variable stores which grade for each student is this year.
Major: The Major
Request variable stores the major for each student.
GPA: The GPA
Request variable stores the GPA for each student as a string. To do a numerical comparison, this example uses the CAST
function to convert the text to a number.
participant
: Request Participant by User Nameparticipant
property represents the user name(s) of the person(s) that have participated in the sought Request. Request participants display in the Participants column of Request pages.
Enter the participant
property value in quotation marks. Example: "lcanera"
. The property value is not case-sensitive.
Purpose of the search: Find Requests that started two days ago associated with the Account Opening Process in which lcanera
and jlowell
have participated.
Note the following:
This example uses the AND
operator to search for multiple required property values.
This example uses the request
property. The request
property value ("Account Opening Process"
) is not case-sensitive.
This example uses the NOW
keyword to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than operator (<
) followed by the number of chronological units to search for Requests of that age. Note that the chronological unit of measurement is singular (day
).
Purpose of the search: Find all Requests for Processes with IDs 10 and 12 except those in which bfrizzel
has participated.
Note that this example uses the process_id
property, which is the Process's ID number.
process_id
: Process ID Number Associated with the Requestprocess_ID
property represents the Process ID number associated with the sought Request(s).
Process IDs do not display in the Processes page. However, if you have Process permissions to edit Process models, then determine the Process ID by doing the following:
View your Processes. The Processes page displays.
From the Web browser address bar, note the number immediately after modeler/
. This number is the Process ID to use with the process_id
property.
Purpose of the search: Find Requests associated with Process IDs are 3 and 7. This example uses the OR
operator to search for any of multiple properties.
Purpose of the search: Find Requests that exclude those for Process ID 5. This example uses the Not Equal To operator (!=
) to exclude Process ID 5.
request
: Request Namerequest
property represents the name of the sought Request(s).
Request names display in the Name column of Request pages. The Name column displays the Process name associated with the Request.
Enter the request
property value in quotation marks. Example: "ProcessName"
. The property value is not case-sensitive.
Purpose of the search: Find all Requests associated with the Loan Approval Process.
Purpose of the search: Find in-progress Requests associated with the Loan Approval Process and are at least three days old.
Note the following:
This example uses the status
property. The status
property values (such as "in progress"
) are not case-sensitive.
This example uses the NOW
keyword to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime two days ago. Note that the unit of chronological measurement (day
) is singular.
requester
: Requester's User Namerequester
property represents the user name of the person who started the sought Request (called the Request starter).
Enter the requester
property value in quotation marks. Example: "lcanera"
. The property value is not case-sensitive.
Purpose of the search: Find all Requests started by either jlowell
or sparkles
. This example uses the OR
operator to search for any of multiple properties.
Purpose of the search: Find canceled Requests started by either jlowell
or sparkles
on or after July 1, 2020 associated with Processes that contain "Course" followed by any five characters in its name.
Note the following:
This example uses multiple operators: AND
and OR
. The AND
operator searches for multiple required properties while the OR
operator within one of the AND
operators searches for any of multiple property values.
This example uses the started
property to search for when Requests started by a particular date. Note that PMQL interprets strings in the format YYYY-MM-DD HH:MM:SS
as dates and can be used in comparative queries if that string is in quotation marks ("2020-01-01 00:00:00"
).
This example uses the request
property. The request
property value ("Course_____"
) is not case-sensitive.
This example uses the LIKE
operator: functioning as a wildcard, each underscore character (_
) represents one wildcard character up to the number of underscores in the string that is in quotation marks.
started
: Datetime Request Startedstarted
property represents when the Request starts.
The started
property is similar to the created
property, in that when a Request starts, it is created. The created
property applies to when our API creates a Request, while the started
property pertains to when a user uses the user interface to start a Request.
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
KeywordUse the NOW
keyword to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than operator (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
second
minute
hour
day
Purpose of the search: Find Requests for the Travel Request Process that started on or after January 1, 2020, but before March 1, 2020.
Note the following:
This example uses the AND
operator to search for multiple required property values.
This example uses the request
property. The request
property value ("Travel Request Process"
) is not case-sensitive.
Purpose of the search: Find Requests for the Travel Request Process that started after March 1, 2020, in which their expected travel cost is at least $1,500, the departure date is later than March 7, 2020, and the return date is later than March 14, 2020. This example uses the data
object that represents Request data.
Note the following:
TotalCost: The TotalCost
Request variable stores the calculated total cost of the travel request.
Departure: The Departure
Request variable stores the requested departure date.
Return: The Return
Request variable stores the requested return date from travel.
status
: Request Statusstatus
property represents the status(es) for the sought Request(s).
Enter the status
property value in quotation marks. Example: "in progress"
. Values for the status property are not case-sensitive.
Use the following values for the status
property:
In Progress: The sought Request is in-progress.
Completed: The sought Request is completed. Using the "completed"
value is identical to using the completed
property.
Canceled: The sought Request has been canceled.
Error: The sought Request has an error.
Purpose of the search: Find completed Requests associated with the Student Enrollment Process in which the either lcanera
or bfrizzel
are Request participants.
Note the following:
This example uses multiple operators: AND
and OR
. The AND
operator searches for multiple required properties while the OR
operator within one of the AND
operators searches for any of multiple property values.
This example uses the request
property. The request
property value ("Student Enrollment Process"
) is not case-sensitive.
This example uses the participant
property. The participant
property value (such as "lcanera"
) is not case-sensitive.
Purpose of the search: Find completed Requests associated with the University Admission Process that completed at or prior to June 15, 2020.
Note that PMQL interprets strings in the format YYYY-MM-DD HH:MM:SS
as dates and can be used in comparative queries if that string is in quotation marks ("2020-06-15 00:00:00"
).
Use special characters, such as &, within PMQL searches when getting Request, Task, or Collection data.
Learning this powerful tip how to perform PMQL searches via API calls allows you to perform PMQL searches without using the ProcessMaker user interface. However, having experience making API calls, which is an advanced skill most often performed by software developers and administrators, makes understanding this tip easier.
Understanding how to perform API calls is outside the scope of this topic.
For example, the following API call that gets Collection records from Collection ID 2
that contain tables & chairs
in their names does not work because after the property collection data.name
there are specials characters such as the =
, "
, space
, and &
.
pm_server_name
represents the name of your ProcessMaker Platform instance.
Follow these steps to make that includes a special character in a ProcessMaker Platform API call:
Ensure that your Administrator has created client authentication for your user account. If not, contact your Administrator.
Copy the special character(s) in your ProcessMaker Platform API endpoint call into the URI converter Website, and then click to encode the special character(s) to be URI-compliant.
Referencing the example above, copy all the content after data.name
from the API endpoint URL to encode it. The encoding tool converts the characters ="tables & chairs"
to %3D%22tables%20%26%20chairs%22
.
Paste the URI-encoded special character(s), and then replace the non-encoded special character(s) in your API endpoint URL.
Referencing the example above, replace the ="tables & chairs"
in the ProcessMaker Platform API endpoint URL with %3D%22tables%20%26%20chairs%22
as follows:
https://pm_server_name/api/1.0/collections/collection/2/records?pmql=data.Name%3D%22tables%20%26%20chairs%22
Call the ProcessMaker Platform API endpoint that now includes the URI-encoded special character(s).
Use these ProcessMaker Query Language (PMQL) properties for Collection record PMQL search queries.
The following ProcessMaker Query Language (PMQL) properties apply to the Collection
data type to perform PMQL search queries from any of the pages accessible from the Collections sidebar icon in the Admin top menu option. PMQL search queries apply to records within the displayed Collection. Selecting any PMQL search result displays the Collection record for that result.
created
: Record's Creation DatePurpose of the search: Find Collection records created on or after March 14, 2020.
Purpose of the search: Find Collection records created one day ago for newly registered Freshmen students in which their academic interests include engineering-related majors except software engineering.
Note the following:
This example uses LIKE
operator with the %
wildcard to search for any Task name that includes the characters engineering
as an academic interest, but excludes those records with software
preceding any academic interest.
PMQL search queries are case sensitive. This example uses the lower
function to ensure all options from AcademicInterests
are evaluated regardless of their case sensitivity.
data
object: Search Collection Data for Specific Record InformationUse the data
JSON object to search for sought Collection records. The data
object stores the accumulated data from Screen controls used to create and edit records in its Collection by referencing the controls' Variable Name setting values.
All JSON objects and arrays within the JSON object named data
is the accumulation of data for each Collection. Each Request also stores its Request data in a data
JSON object. The key names for each JSON object or array derive from the Variable Name setting values in the Screens used for that Collection or any data injected into that Collection's JSON data model by Scripts or calls to the RESTful Application Program Interface (API).
To determine what the Variable Name setting is for a control that stores Collection record information you seek, view the Screen that contains the control into which the sought data was entered and/or edited. Collections use as many as two Screens: one into which to enter data when a record in that Collection is created, and one from which record data is edited. The same Screen may be used for both purposes. Note that your user account or group membership must have the Screens: View Screens permission.
The data
JSON object precedes the Variable Name setting value, as noted above. Use JSON dot notation to reference sub-properties in the referenced Screen control if necessary.
Purpose of the search: Find Collection records in which Business majors have enrolled in at least 18 credits this semester.
When submitting which courses to enroll that semester, each student must enter the following information into a Screen that becomes data in that Collection record when that Screen is submitted:
Note the following:
Purpose of the search: Find Collection records in which employment candidates had programming experience in at least JavaScript and Python and had "Manager" in a job title.
When submitting a job application, each candidate must enter the following information into a Screen that becomes data in that Collection record when that Screen is submitted:
A Select List control of which its Variable Name setting is CodingLanguages
stores the JSON object value of programming languages in which the employment candidate has experience.
id
: Collection Record ID Numberid
property represents the ID number for the sought record(s) from the currently displayed Collection.
modified
: Datetime Record Last Modifiedmodified
property represents when the record was last modified from the currently displayed Collection. A record modifies when the contents of the a record changes from any of the following:
A record is manually changed by a user that has permission to edit records in that record's Collection.
A Script adds or modifies data in a record.
A record is modified via the RESTful API.
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
Keywordsecond
minute
Purpose of the search: Find Collection records modified less than 30 minutes ago.
Purpose of the search: Find Collection records modified one day ago associated with students whose graduation year is 2022 and who last met their advisor more than six months ago.
GraduationYear: The GraduationYear
control stores at which year a student graduates. This value is stored as a string.
AdvisorMeetingDate: The AdvisorMeetingDate
control stores at which date a student met with her or his advisor.
Note the following:
Use these ProcessMaker Query Language (PMQL) properties for Task PMQL search queries.
completed
: Datetime Task Completedcompleted
property represents when the Task completes. The completed
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that created the sought Task(s).
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
Keywordsecond
minute
hour
day
Purpose of the search: Find completed Tasks named Student Registration in the Student Enrollment Process that completed after they were due three days ago.
Note the following:
Purpose of the search: Find completed Tasks named Submit Employment Application in the Candidate Review Process in which employment candidates had programming experience in at least JavaScript and Python and had "Manager" in a job title.
created
: Task's Creation Datetimecreated
property represents when the Request creates the Task. The created
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that created the sought Task(s).
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
Keywordsecond
minute
hour
day
See Examples 1 and 2 how this property can apply to Service Level Agreement (SLA) contract compliance.
Purpose of the search: Find created Tasks from two hours ago named Package Purchased Items in the Fulfill Purchase Delivery Process that started less than 30 minutes ago.
Note the following:
Use a PMQL search query similar to this example to monitor how much time passes from when a Task was created and that Task starts. A PMQL query similar to this example can determine which Tasks are being started later than the sanctioned time period a Service Level Agreement (SLA) contract allows from when that Task was created. For example, if a SLA contract states that a Task applicable to the contract must start within 1.5 hours from when its Request creates it, use a PMQL search query similar to this example to find only those Tasks that started less than 30 minutes ago, therefore longer than the 1.5 hours allowed by the SLA contract.
Purpose of the search: Find created Tasks associated with the Node Identifier setting value node_6
in Requests associated with Process ID 12 from two hours ago that have completed less than 30 minutes ago.
Note the following:
Use a PMQL search query similar to this example to monitor how much time passes from when a Task was created and that Task completes. A PMQL query similar to this example can determine which Tasks are being completed later than the sanctioned time period a Service Level Agreement (SLA) contract allows from when that Task was created. Unlike Example 1 that identifies the Task to monitor by its name, this example identifies the Task by its Node Identifier setting value in a specified Process model. Otherwise, this example serves a similar purpose to monitor SLA contract compliance as does Example 1.
data
object: Search Request Data for Specific Request InformationUse the data
JSON object to search for Request data associated with the sought Task(s). The data
JSON object represents Request data: each Request's JSON data model contains the accumulation of all JSON objects and arrays for that Request. The data
JSON object also contains the record data for a Collection. The key names for each JSON object or array derive from the Variable Name setting values in the Screens used for Tasks in each Request or any data injected into that Request's JSON data model by Scripts run via Script Task elements or calls to the RESTful Application Program Interface (API).
Search for Requests that apply to a specific customer in a Loan Request Process.
Search for Requests in a Purchase Request Process in which a purchase request amount is greater than $500 but less than $10,000.
Search for which registered conference attendees that were required to enter their job title are similar to "Product Manager," such as "Project Manager."
To determine what the Variable Name setting is for a control that stores Request information you seek, do one of the following:
View the Screen for the Task in which Request participants enter the information you seek, and then make note of the pertinent control's Variable Name setting. Note that your user account or group membership must have the Screens: View Screens permission.
The data
JSON object precedes the Variable Name setting value, as noted above. Use JSON dot notation to reference sub-properties in the referenced Screen control if necessary.
Purpose of the search: Find in-progress Tasks named Approve Semester Courses in the Student Enrollment Process in which Business majors have enrolled in at least 18 credits this semester.
When submitting which courses to enroll that semester, each student must enter the following information into a Screen that becomes Request data when that Screen is submitted:
Note the following:
Purpose of the search: Find completed Tasks named Submit Leave Request in the Leave Request Process in which the reason those employees requested leave was illness between the dates March 15, 2020, and April 30, 2020.
When submitting a leave request, each employee must select from one of several options in a Checkbox control to indicate the reason for the leave request. The Checkbox control has a Variable Name setting of LeaveType
; the option that indicates the reason is for medical leave has an option value of Medical
. Therefore, to find those completed Tasks in which the reason for leave is illness, use the following in the PMQL search query: data.LeaveType = "Medical"
. The PMQL search query is case sensitive.
Note the following:
PMQL interprets strings in the format YYYY-MM-DD HH:MM:SS
as dates and can be used in comparative queries if that string is in quotation marks ("2020-03-15 00:00:00"
).
due
: Datetime Task Is or Was Duedue
property represents when the Task is or was due. The due
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that created the sought Task(s).
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
Keywordsecond
minute
hour
See Example 2 how this property can apply to Service Level Agreement (SLA) contract compliance.
Purpose of the search: Find Tasks named Loan Review that are due in two days for the Loan Approval Process.
Note the following:
Purpose of the search: Find Tasks that completed 20 minutes ago that were past due for Requests associated with process ID 25.
Note the following:
element_id
: Task Node Identifier from the Process Modelelement_id
property is the Node Identifier setting value from the Process model for the sought Task's element. The element_id
property applies to Form Task, Manual Task, and/or Script Task elements from the Process model that started the sought Task(s).
Enter the node identifier value in the PMQL search query within quotation marks. The node identifier value is not case-sensitive. Example: "node_15"
.
Select the Form Task, Manual Task, or Script Task element from the Process model from which to include in the PMQL search query. Panels to configure this element display.
Expand the Advanced panel if it is not presently expanded. The Node Identifier setting value displays.
See Example 2 how this property can apply to Service Level Agreement (SLA) contract compliance.
Purpose of the search: Find in-progress Tasks associated with the Node Identifier setting value node_4
in Requests associated with Process ID 10.
Note the following:
Purpose of the search: Find in-progress Tasks associated with the Node Identifier setting value node_4
in Requests associated with Process ID 10 that started two days ago.
Note the following:
Use a PMQL search query similar to this example to monitor which started Tasks are at risk of completing past the sanctioned time period a Service Level Agreement (SLA) contract allows. For example, if a SLA contract states that a Task applicable to the contract must complete within three (3) days from when it starts, use a PMQL search query similar to this example to find only those Tasks that started two days ago to determine which are at risk of not complying with the SLA contract.
id
: Task ID Numberid
property represents the Task ID number for the sought Task(s). The id
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that started the sought Task(s).
modified
: Datetime Task Last ModifiedPurpose of the search: Find Tasks modified 20 minutes ago named Loan Information in the Loan Application Process.
Note the following:
Purpose of the search: Find any Task modified between 30 minutes ago and one hour which have "approval" in its name from Requests associated with Process ID 25.
Note the following:
process_id
: Process ID Number Associated with the Taskprocess_ID
property represents the Process ID number associated with the sought Task(s). The process_ID
property applies to Form Task, Manual Task, and/or Script Task elements from the Process model associated with the Process ID that started the sought Task(s).
From the Web browser address bar, note the number immediately after modeler/
. This number is the Process ID to use with the process_id
property.
request
: Request Name Associated with the Taskrequest
represents the Request's name associated with the sought Task(s). The request
property applies to Form Task, Manual Task, and/or Script Task elements from the Process model that started the sought Task(s).
Request names display in the Name column of Request pages. The Name column displays the Process name associated with the Request.
Enter the request
property value in quotation marks. Example: "Request Name"
. The property value is not case-sensitive.
See Example 2 how this property can apply to Service Level Agreement (SLA) contract compliance.
Purpose of the search: Find completed Tasks started from either the Residential Loan Approval Process or the Business Loan Approval Process.
Note the following:
This example uses the OR
operator to search for any of multiple properties within an AND
operator to find Tasks for either the "Residential Loan Approval Process" or "Business Loan Approval Process" Requests.
Purpose of the search: Find in-progress Tasks started one hour ago for the Purchase Order Fulfillment Process for which the purchase order amount is at least $10,000 for Acme Corporation.
TotalPurchase: The TotalPurchase
Request variable stores the total purchase request amount, including applicable taxes.
Customer: The Customer
Request variable stores the business name for which the purchase order fulfillment applies.
Use a PMQL search query similar to this example to track which started Tasks are at risk of completing past the sanctioned time period a Service Level Agreement (SLA) contract allows. For example, if a SLA contract states that a Task applicable to the contract must complete within two (2) hours from when it starts for specific customers and/or for specific purchase order amounts, use a PMQL search query similar to this example to find only those Tasks that an hour ago to determine which are at risk of not complying with the SLA contract.
started
: Datetime Task Startedstarted
property represents when the Task starts. The started
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that started the sought Task(s).
Enter the datetime in the PMQL search query within quotation marks in the following format: YYYY-MM-DD HH:MM:SS
using 24-hour time. Example: "2020-07-01 14:25:15"
.
NOW
Keywordsecond
minute
hour
day
Purpose of the search: Find in-progress Tasks named Submit Purchase Request that started on July 1, 2020, for the Purchase Request Process.
Note the following:
Purpose of the search: Find completed Tasks named Purchase Authorization that started three days ago associated with the Purchase Request Process for which the approved total purchase amount was more than $100,000.
TotalPurchase: The TotalPurchase
Request variable stores the total purchase request amount, including applicable taxes.
status
: Task Statusstatus
property represents the Task status. The status
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that started the sought Task(s).
Task status displays in the Status column of Task pages.
Enter the status
property value in quotation marks. Example: "in progress"
. The property value is not case-sensitive.
Purpose of the search: Find in-progress Tasks for the Travel Request Process.
Note the following:
Purpose of the search: Find in-progress Tasks for the Travel Request Process for which the business travel destination is to any municipality named Dallas except that in Texas to leave three (3) days from today.
DestinationMunicipality: The DestinationMunicipality
Request variable stores to which municipality business travel is requested.
DestinationState: The DestinationState
Request variable stores to which state business travel is requested.
LeaveDate: The LeaveDate
Request variable stores at which datetime business travel is requested.
task
: Task Nametask
property represents the Task name. The task
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that started the sought Task(s).
Task names display in the Task column of Task pages.
Enter the task
property value in quotation marks. Example: "TaskName"
. The property value is not case-sensitive.
Click the Open Modeler iconto edit the Process model associated with the sought Requests. Process Modeler displays.
Perform ProcessMaker Query Language () searches in ProcessMaker Platform's Application Program Interface (API) calls using any properties of the following data types:
Use special characters, such as &
, within PMQL searches when getting Request, Task, or Collection data while calling a ProcessMaker Platform API endpoint. To do so, special characters used in API calls must be Uniform Resource Identifier ( compliant.
Visit a Website that converts special characters to be URI-compliant, such as .
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the . The data
object stores the accumulated data from Screen controls used to create and edit records in its Collection by referencing the controls' Variable Name setting values.
A control in which its Variable Name setting value is AcademicInterests
stores multiple options in a JSON object that each Freshman student selected as academic interests.
This example uses the AND
to require multiple property values for the search.
.
Using the data
JSON object in PQML search queries helps answer the question "Which Collection records have specific information in them that I seek?" Use to compare the value for a particular Screen control to find records that only contain the value(s) you seek.
A control of which its Variable Name setting is Major
stores the JSON object value for the option that each student selects as a major.
A control of which its Variable Name setting is TotalCredits
stores as an integer the sum of all credits that the student selected for enrollment.
This example uses the AND
to require multiple property values for the search.
.
A control contains a Line Input control that stores the job title for each position the employment candidate held. The Variable Name setting values for each control are Jobs and JobTitle, respectively.
This id property only applies to Collection record-related PMQL search queries, and is distinct from the or for the .
This example uses the AND
to require multiple property values for the search.
This example uses the to search for which Collections were created by a particular date. Note that PMQL interprets strings in the format YYYY-MM-DD HH:MM:SS
as dates and can be used in comparative queries if that string is in quotation marks ("2020-03-14 00:00:00"
).
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
Note that this example uses the to represent the current datetime, and then uses the Less Than (<
) to determine the datetime 30 minutes ago that the applicable Collection records were modified. Note that the unit of chronological measurement (minute
) is singular.
This example uses the . The data
object stores the accumulated data from Screen controls used to create and edit records in its Collection by referencing the controls' Variable Name setting values. The following Screen controls store data that this PMQL search query references:
This example uses the AND
to require multiple property values for the search.
This example uses the to convert the string to a number for comparison in the PMQL search.
.
The following ProcessMaker Query Language () properties apply to the Task
data type to perform PMQL search queries from any of the pages accessible from the Tasks top menu option. Selecting any PMQL search result displays the Task summary for that result.
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the AND
to require multiple property values for the search.
This example uses the . The task
property value ("Student Registration"
) is not case-sensitive.
This example uses the . The request
property value ("Student Enrollment Process"
) is not case-sensitive.
This example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime four (4) days ago for completed Tasks that completed later than when they were due three (3) days ago. Note that the unit of chronological measurements (day
) is singular.
.
This example uses the to find text in a specified JSON array within Request data. For example, PMQL finds the string JavaScript
in the key name CodingLanguages
regardless of what string precedes or follows the sought pattern because the %
wildcard before and after the sought pattern disregards all content in the JSON array preceding and following that pattern, respectively.
This example uses the that represents Request data. The following Request variables store Request data that this PMQL search query references:
CodingLanguages: The CodingLanguages
Request variable stores one or more selections from a control of programming languages in which the employment candidate has experience. The Request data stores the Select List control selection(s) in a JSON array that contains both the value and content for each option in the Select List control.
JobTitle: The JobTitle
Request variable stores the job title for each position the employment candidate held. A control called Jobs
contains a set of controls to enter information about each position the candidate held, among them being a control called JobTitle
.
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the AND
to require multiple property values for the search.
This example uses the . The task
property value ("Package Purchased Items"
) is not case-sensitive.
This example uses the . The request
property value ("Fulfill Purchase Delivery Process"
) is not case-sensitive.
This example uses the to find those Tasks that started 30 minutes ago.
This example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime two (2) hours ago and 30 minutes ago that the applicable Task(s) was created and started, respectively. Note that the unit of chronological measurements (hour
and minute
) are singular.
.
This example uses the to reference the Node Identifier setting value (node_6
) from the Process model for the sought Task's element.
This example uses the to reference the Process ID number (12
) associated with the sought Task(s).
This example uses the . The completed
property value compares the datetime that the Task completed.
Using the data
JSON object in PQML search queries helps answer the question "Which Request(s) have specific information in them for Tasks that I seek?" Use to compare the value for a particular Screen control to find Requests that only contain the value(s) you seek. For example:
View the to view the data from a completed Request, and then use the specific key name (represented in red-colored text) to search Request information from that control. Spaces are allowed between operators. Example: data.last_name = "Canera"
. Note that your user account or group membership must have the permission. Ask your Administrator if you do not see the Data tab in completed Requests.
A control of which its Variable Name setting is Major
stores the JSON object value for the option that each student selects as a major.
A control of which its Variable Name setting is TotalCredits
stores as an integer the sum of all credits that the student selected for enrollment.
This example uses the AND
to require multiple property values for the search.
This example uses the . The status
property values (such as "in progress"
) are not case-sensitive.
This example uses the . The task
property value ("Approve Semester Courses"
) is not case-sensitive.
This example uses the . The request
property value ("Student Enrollment Process"
) is not case-sensitive.
.
This example uses the . Each use of the completed
property compares the datetime that the Task completed.
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the AND
to require multiple property values for the search.
This example uses the . The task
property value ("Loan Review"
) is not case-sensitive.
This example uses the . The request
property value ("Loan Approval Process"
) is not case-sensitive.
This example uses the to represent the current datetime, and then uses the Greater Than operator (>
) to determine the datetime two (2) days from now for due Tasks. Note that the unit of chronological measurements (day
) is singular.
.
This example uses the . The completed
property compares the datetime that the Task completed. Since the PMQL search query finds completed Tasks past due, the due
property uses the Greater Than operator (>
) to find Tasks that were due later than 20 minutes ago.
This example uses the with a value of 25
to find Requests associated with that Process.
if you have permissions to edit Process models, then determine the Node Identifier setting value for a Form Task, Manual Task or Script Task element by doing the following:
Ensure that the Hide Menus buttonis not enabled. See .
This example uses the AND
to require multiple property values for the search.
This example uses the . The status
property values (such as "in progress"
) are not case-sensitive.
This example uses the with a value of 10
to find Requests associated with that Process.
.
This example uses the in conjunction with the NOW
keyword, described below.
This example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime two (2) days ago that the applicable Task(s) started. Note that the unit of chronological measurement (day
) is singular.
This id property only applies to Task-related PMQL search queries, and is distinct from the or for the .
This example uses the AND
to require multiple property values for the search.
modified
property represents when the Task was last modified. A Task modifies when the JSON object model to which that Task applies is changed from a , a action, an application program interface (API) call, or any other means. The modified
property applies to Form Task, Manual Task, and/or Script Task elements from the Request that created the sought Task(s).
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the AND
to require multiple property values for the search.
This example uses the . The task
property value ("Loan Information"
) is not case-sensitive.
This example uses the . The request
property value ("Loan Application Process"
) is not case-sensitive.
This example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime 20 minutes ago that the applicable Task(s) were modified. Note that the unit of chronological measurement (minute
) is singular.
.
This example uses the to reference the Process ID number (25
) associated with the sought Task(s).
This example uses the with the %
wildcard to search for any Task name that includes the characters approval
in its name.
Process IDs do not display in the Processes page. However, if you have permissions to edit Process models, then determine the Process ID by doing the following:
. The Processes page displays.
Click the Open Modeler iconto edit the Process model associated with the sought Requests. Process Modeler displays.
This example uses the OR
to search for any of multiple properties.
This example uses the AND
to search for multiple required property values.
This example uses the . The status
property values (such as "completed"
) are not case-sensitive.
.
Note that this example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime one hour ago that the applicable Task(s) started. Note that the unit of chronological measurement (hour
) is singular, even if the sought Task(s) is more than one hour old.
This example uses the that represents Request data. The following Request variables store Request data that this PMQL search query references:
The started
property is similar to the , in that when a Task starts, it is created. The created
property applies to when our API creates a Task, while the started
property pertains to when a user uses the user interface to start a Task.
Use the to dynamically compare the current datetime with a specified number of chronological units. Use the Less Than (<
) followed by the number of chronological units to search for Requests of that age. Note that the interval unit of time is singular. PMQL supports the following units of time:
This example uses the AND
to search for multiple required property values.
This example uses the . The task
property value ("Submit Purchase Request"
) is not case-sensitive.
This example uses the . The status
property values (such as "in progress"
) are not case-sensitive.
This example uses the . The request
property value ("Purchase Request Process"
) is not case-sensitive.
.
Note that this example uses the to represent the current datetime, and then uses the Less Than operator (<
) to determine the datetime three (3) days ago that the applicable Task(s) started. Note that the unit of chronological measurement (day
) is singular.
This example uses the that represents Request data. The following Request variables store Request data that this PMQL search query references:
Approve: The Approve
Request variable stores whether a control is selected in the Form Task that approves a submitted purchase request. Since this example requires only approved purchases, this PMQL search query includes only Approve
values of true
that a Checkbox control stores when it is selected upon Task submission. The property value is not case-sensitive.
This example uses the AND
to search for multiple required property values.
This example uses the . The request
property value ("Travel Request Process"
) is not case-sensitive.
.
Note that this example uses the to represent the current datetime, and then uses the Greater Than operator (>
) to determine the datetime three days from now that the requested business travel is to occur as requested in the LeaveDate
Request variable. Note that the unit of chronological measurement (day
) is singular.
This example uses the that represents Request data. The following Request variables store Request data that this PMQL search query references:
This example uses the AND
to search for multiple required property values.
This example uses the . The status
property values (such as "in progress"
) are not case-sensitive.
.
This example uses the with the %
wildcard to search for any Task name that includes the characters review
in its name.
This example uses the with a value of 12
to find Requests associated with that Process.
Understand the standard SQL syntax from which to search ProcessMaker Platform data using ProcessMaker Query Language (PMQL).
ProcessMaker Query Language (PMQL) builds upon standard search query language (SQL) syntax to use properties unique to ProcessMaker Platform. PMQL supports the following SQL syntax:
PMQL supports the following operators in and between each search criterion. The example for each comparative or logical operator assumes that the PMQL query searches against Request data for a Request variable (such as last_name
, experience
, and job_title
). See Request Information why data.
precedes each Request variable in each example.
LOWER
Function to Disregard Case Sensitivity in Strings and Request VariablesPMQL queries are case sensitive in regard to comparative and logical operators. If querying for a string or the value of a Request variable name, PMQL returns results only if the case exactly matches your query. Use the lower
function to disregard case-sensitivity evaluation by lower-casing strings and Request variable names. The lower
function is useful for when you are unsure of the case sensitivity of the comparing string or Request variable name.
lower(RequestVariable)
where RequestVariable
is the Request variable name
lower(data.job_title) LIKE "prod%" OR lower(data.job_title) LIKE "proj%"
PMQL operators such as AND
, OR
, and LIKE
are not case-sensitive. PMQL operators are capitalized in this document for easier readability.
Spaces are allowed between operators. Example: data.last_name = "Canera"
LIKE
Operator for Wildcard Pattern MatchingUse the LIKE
operator, then include wildcards %
or _
within the quotation marks ("
) of your search parameter.
The LIKE
operator is not case sensitive. However, this operator is capitalized in this document for easier readability.
The %
wildcard represents zero, one, or more characters. The _
wildcard represents exactly one character.
request LIKE "P%"
finds Requests associated with all Processes that begin with P
.
status LIKE "c%"
finds Requests with both Completed and Canceled statuses.
data.last_name LIKE "Ca%"
finds all values from Requests that begin with Ca
in the last_name
Request variable.
data.last_name LIKE "Ca___"
finds all values from Requests that begin with Ca
and those that match three following characters in the last_name
Request variable.
task LIKE "T%"
finds all Tasks that begin with T
.
See the following properties for more examples how to use the LIKE
operator:
requester
property for the Request
data type
completed
property for the Task
data type that includes an example how to find data in JSON arrays
modified
property for the Task
data type
task
property for the Task
data type
created
property for the Collection
data type
Use the LIKE
operator with the %
wildcard to find text in a specified JSON array within Request data. Consider the following JSON array in Request data that contains two JSON objects. Each JSON object contains the first name, last name, and email address.
Use the following PMQL search query to find both persons in Request data based on the string company
. PMQL finds the string company
regardless of what string precedes or follows the sought pattern because the %
wildcard disregards all content in the JSON array preceding and following that pattern.
See Example 2 for the completed
property for the Task
data type for another example.
IN
and NOT IN
Operators for Array ValuesUse the IN
operator to search for data where the value of the specified property is one of multiple specified values.
Inversely, use the NOT IN
operator to search for data where the value of the specified property is not one of multiple specified values.
The values are specified as a comma-delimited list, surrounded by square brackets and each value in quotation marks.
See the following examples:
Find for completed or erroneous Tasks where the Request Date is not 2021-07-01
or 2021-05-01
:
(status IN ["Completed", "Error"]) AND data.date NOT IN ["2021-07-01", "2021-05-01"]
Find for completed or erroneous Requests where the Request Date is 2021-07-01
or 2021-05-01
:
(status IN ["Completed", "Error"]) AND data.date IN ["2021-07-01", "2021-05-01"]
Find for completed or in progress Requests where the participant is admin
or Melissa
. The last modified is equal or major to 2020-07-01 00:00:00
. participant IN ["admin", "Melissa"] AND status NOT IN ["Completed", "In Progress"] AND modified >= "2020-07-01 00:00:00"
CAST
Function to Convert Data TypesThe CAST
function is a standard SQL syntax that PMQL supports for specific data types.
The CAST
function is not case sensitive. However, this function is capitalized in this document for easier readability.
The CAST
function converts data from one data type to another. PMQL supports the CAST
function for the following data types:
Text: If the Request data stores the Request variable in the PMQL query as an integer (such as 2
), convert that value to text ("2").
Number: If the Request data stores the Request variable in the PMQL query as text (such as "2"), convert that value to a number (2
). For example, use the CAST
function in a PMQL query to perform a numerical comparison to the Experience
Request variable that stores a job candidate's experience in an industry to find job candidates with two (2) years of experience or greater, use the following PMQL query: CAST(data.Experience as number) >= 2
.
See the following properties for examples:
modified
property for the Request
data type
modified
property for the Collection
data type
NOW
Keyword to Perform Temporal Comparisons from NowThe NOW
keyword is not case sensitive. However, this keyword is capitalized in this document for easier readability.
The NOW
keyword represents the current datetime. Use the NOW
keyword in PMQL search queries to find Requests or Tasks in the following ways:
Dynamically compare the age of a Request or Task from the current datetime based on when the sought Request or Task was created or last modified. PMQL supports the following intervals of time:
second
minute
hour
day
Perform arithmetic operations on dates by using the following syntax:
date
operator
+
or -number
interval
where:
date
represents the date
operator
represents the comparative operator
+
or -
represents the addition or subtraction (respectively) from the date
number
represents the number to add or subtract from the date
interval
is the interval of time
See Example to Find Request Last Modified. See also the following property examples:
participant
property for the Request
data type
request
property for the Request
data type
completed
property for the Task
data type
created
property for the Task
data type
due
property for the Task
data type
element_id
property for the Task
data type
modified
property for the Task
data type
request
property for the Task
data type
started
property for the Task
data type
status
property for the Task
data type
modified
property for the Collection
data type
Dynamically determine a chronological value of a Request variable from Request data as part of the PMQL search query. See Example Using Request Data.
Use the following PMQL query search query to find Requests for ProcessName
that are not more than two (2) days old:
Find Requests from ProcessName
in which its Request participants are 25 years old or younger by only having their date of birth in a Request variable called DOB
, use the following PQML search parameter:
Calculate the date of birth by subtracting 9125 days from the current datetime (365 * 25 = 9125).
Operator Description
Syntax
Example
Equal to
=
data.last_name = "Canera"
Not equal to
!=
data.last_name != "Canera"
Less than
<
data.experience < 2
Greater than
>
data.experience > 2
Less than or equal to
<=
data.experience <= 2
Greater than or equal to
>=
data.experience >= 2
Search multiple required properties (logical operator)
AND
data.last_name = "Canera" AND data.experience > 2
Search for any of multiple properties (logical operator)
OR
data.experience <= 2 OR data.experience >= 5
Group multiple logical operators
n/a
(data.job_title = "product manager" OR data.job_title = "project manager") AND data.experience > 5
Pattern matching
LIKE
ProcessMaker Query Language (PMQL) properties are the building blocks to search Request, Task, and Collection record information.