Custom Tasks, a.k.a. custom Work Items are used when the natively provided components are not clear enough to demonstrate the required domain demands. See examples of domain-specific tasks that a business user would find useful to have available in the process designer: Enhance customer data;Validate Personal ID against Official State Service;Check customer health plan;Calculate tax… Continue reading Delivering domain logic with Custom Tasks
Author: Karina Varela
Consuming business assets via REST
As expected as default over any REST communication, when the integration via client and Kie Server is done via REST, there is no guarantee on the delivery or retry of this message. The initialization of Kie Services Client requires an instance of org.kie.server.client.KieServicesConfiguration. When using the REST approach, we should create the instance of KieServicesConfiguration… Continue reading Consuming business assets via REST
Getting Started with the Kie Server Java API
Kie Server Java client API is used when it's necessary to create a Java service to interact with a remote Kie Server (not an embedded engine). Consider that you have an architecture with a Kie Server running your business projects and you want to consume them using a Java service running in another application server… Continue reading Getting Started with the Kie Server Java API
Mastering Transaction Boundaries
When planning usage of processes that are complex, long-running, and with possible points of failures like custom work item handlers, asynchronous tasks, timers, signals, and service tasks, it is crucial to understand how jBPM deals with transactions. This knowledge might save some troubleshooting hours if you have persistent processes. "Why?", you might ask: if the… Continue reading Mastering Transaction Boundaries
Persisting custom data: Configuring external persistence
When working with business processes, it is expected to work with persistent process data scenarios. Considering this situation, it is common for users to use a different database to store process data, apart from the database where the domain information is stored. As an example, storing critical information from customers apart from the engine database… Continue reading Persisting custom data: Configuring external persistence
Runtime Strategy: Choose wisely
Kie Server can be configured to deal differently with the requests it receives and the objects it stores in memory or in the database. Properly configuring how the engine deals with the objects in memory, ensures a project with fewer resource consumption and avoids unexpected behaviors. Runtime Strategy configuration affects directly how the engine deals… Continue reading Runtime Strategy: Choose wisely
5. Techniques to boost a BA Project
Previous posts of the jBPM Getting Started Series should provide a good base for the understanding of this chapter. Also, basic knowledge about application transactions should provide a better understanding of the chapter. The engine can be tuned for business automation projects to achieve better performance results are achieved. Mainly when involving business rules validation,… Continue reading 5. Techniques to boost a BA Project
Dealing with Unexpected Errors in Processes
During the development phase, it is expected that developers deal and treat unexpected behaviors, predictable and unpredicted errors that might happen during the execution of code. Consider the following situation: An online traveling company named MaTrip.com sells a whole trip experience with a discount for a single package buying: flight + hotel. But each of… Continue reading Dealing with Unexpected Errors in Processes
How to configure notification for Human Task in jBPM
Great post from Sudhish Nair, an expert on process and rules automation.
jBPM provides options to configure notification emails to be send to any user if the human task is not started or not completed.
We will start with configuring JavaMail sessions via JNDI so that infrastructure for mail is handled.
We would be using “jbpm-server-7.37.0.Final-dist” version for this example.
Configure Mail Session in wildfly
In the standalone configuration for jBPM we need add below configurations.
Configure Socket binding for smtp-port
<outbound-socket-binding name="mail-notification-smtp">
<remote-destination host="smtp.gmail.com" port="465"/>
</outbound-socket-binding>
host -: host name of SMTP server
port -: port no of SMTP server.
Configure Mail-Session in Mail subsystem
<mail-session name="notification" jndi-name="java:/notificationMailSession" from="youremailid@gmail.com">
<smtp-server outbound-socket-binding-ref="mail-notification-smtp" ssl="true" username="youremailid@gmail.com" password="yourPassw0rd"/>
</mail-session>
from -: From address for your emails (Valid email account on SMTP server).
username -: username for the email account
password -: password for the email account.
Add below system property to standalone.xml file.
<system-properties>
<property name="org.kie.mail.session" value="java:/notificationMailSession"/>
</system-properties>
Configure user info for Human…
View original post 423 more words
Asynchronous Execution
By default, the flow of tasks is executed in a synchronous way: all tasks will be treated one after the other, by a single thread. This being said, if a process contains, example, four service calls - where each call lasts around 30 seconds - this process execution will run - and allocate JVM, CPU,… Continue reading Asynchronous Execution