Releases: MarketSquare/robotframework-camunda
2.0.3 : minor documentation enhancements
2.0.2 : remove deprecation from `drop fetch response`
Removes annoying deprecation warnings. Turns out the keyword is not deprecated after all.
Fix `Get Process Instance Variable`
2.0.0 : BPMN ready
This release completes development on CamundaLibrary 1.x . The goal of version 1 has been to support most common BPMN artefacts, such as incidents, notifications and messages.
Complete list of features in new since 1.0: https://github.com/MarketSquare/robotframework-camunda/milestone/1?closed=1
New in Version 2:
Authentication
#10
This one has been on the list since day 1: If Camunda REST API requires authentication (it should!) CamundaLibrary supports now auth parameters:
Library CamundaLibrary
*** Test Cases ***
Demonstrate basic auth
${camunda_config} Create Dictionary host=http://localhost:8080 username=markus password=%{ENV_PASSWORD}
Set Camunda Configuration ${camunda_config}
${deployments} Get deployments #uses basic auth now implictly
Demonstrate Api Key
${camunda_config} Create Dictionary host=http://localhost:8080 api_key=%{ENV_API_KEY} api_key_prefix=Bearer
Set Camunda Configuration ${camunda_config}
${deployments} Get deployments #uses api key implicitly
Breaking: Always raise exceptions when camunda request fails
#47
A few keywords were a little bit to generous in silently ignoring that the request to Camunda failed. Now all keywords raise an ApiException if the request to Camunda Platform fails for any reason.
Breaking: CamundaLibrary in SUITE scope
#59
CamundaLibrary has been in GLOBAL scope, meaning all task suites within one robot process would shared the same instance. That would become a problem when using several Camunda Platform instances. For a cleaner setup, the library now runs on SUITE level, meaning only all tasks within a suite share the same Camunda client.
Breaking: Removed deprecated keywords
#46
You might have noticed for the past months, that you got warnings in your logs when using deprecated keywords. If you haven't seen them, you are good. If you ignored them, you must migrate to other keywords, as the deprecated keywords have been removed entirely.
Support for Camunda Platform 7.16
#58
Added support for Camunda Platform 7.16 (which isn't hard, since Camunda is backwards compatible and awesome).
1.8.2 - Implicit retries countdown
This release contains 1 bugfix and 1 enhancement:
#48 - Exception when setting retry_timeout
in Notify Failure
It was not possible to set retry tiemout. This is now fixed
#49 - Implicit Retry Countdown
Prior this release, it was necessary to manage retries counter yourself. Although the algorithm is simple, it was overhead and bulky:
*** Test Case ***
Demo old behaviour
fetch workload my topic
${process_instance} get fetch response
IF None is not $process_instance['retries']
${counted_down_retries} Evaluate $process_instance['retries'] - 1
Notify Failure retries=${counted_down_retries}
ELSE
Notify Failure retries=1
END
Now you can always set retries
, but only when set for the first time, it is actually interpreted. If the process instance already has retries set, then CamundaLibrary is counting down retries automatically:
*** Test Case ***
Demo new behaviour
fetch workload my topic
Notify Failure retries=1
fetch workload my topic
# this will now raise an incident, because retries had been set before and are now counted down to 0
Notify Failure retries=1
1.8.1 : Configurable Lock Duration, Get Process Instances, Notify failure, Get Incidents
#28 : Retrieve lock duration for task from environment variable
Lock duration for external tasks can now be set through environment variable : CAMUNDA_TASK_LOCK_DURATION
. Value is in millisecond (1000 = 1 second). Default is 600000 (10 minutes).
The feature comes with 2 new keywords:
Set Task Lock Duration
Reset Task Lock Duration
#34 : Get Process Instances
There was already the keyword Get All Active Process Instances
. Additionally, it is now possible with Get Process Instances
to query all kind of process instances from Camunda. Check out full capabilities at Camunda REST API documentation. Also keep in mind that in Robot the parameters are written in snake case, thus it is process_definition_key
instead of processDefinitionKey
#7 : Introducing incident management
There are now 2 new keywords:
Notify failure
Get incidents
Example
*** Settings ***
Library CamundaLibrary http://localhost:8080
*** Tasks ***
Demonstrate "notify failure"
${varialbes} fetch workload topic=${existing_topic}
${process_instance} Get fetch response
Do something with variables ${variables}
Notify failure
${incident} Get incidents process_instance_id=${process_instance}[process_instance_id]
Should Not Be Empty ${incident}
Notify failure
In addition to complete
, unlock
, throw bpmn error
the new keyword notify failure
is the 4th option to finish an external task. By calling notify failure
an incident is created and the process instance is not available for the fetch workload
keyword until the incident is resolved.
Get incidents
With the keyword Get incidents
you can fetch incidents that match your filter arguments.
1.8.0 : Configurable Lock Duration, Get Process Instances, Notify failure, Get Incidents
#28 : Retrieve lock duration for task from environment variable
Lock duration for external tasks can now be set through environment variable : CAMUNDA_TASK_LOCK_DURATION
. Value is in millisecond (1000 = 1 second). Default is 600000 (10 minutes).
The feature comes with 2 new keywords:
Set Task Lock Duration
Reset Task Lock Duration
#34 : Get Process Instances
There was already the keyword Get All Active Process Instances
. Additionally, it is now possible with Get Process Instances
to query all kind of process instances from Camunda. Check out full capabilities at Camunda REST API documentation. Also keep in mind that in Robot the parameters are written in snake case, thus it is process_definition_key
instead of processDefinitionKey
#7 : Introducing incident management
There are now 2 new keywords:
Notify failure
Get incidents
Example
*** Settings ***
Library CamundaLibrary http://localhost:8080
*** Tasks ***
Demonstrate "notify failure"
${varialbes} fetch workload topic=${existing_topic}
${process_instance} Get fetch response
Do something with variables ${variables}
Notify failure
${incident} Get incidents process_instance_id=${process_instance}[process_instance_id]
Should Not Be Empty ${incident}
Notify failure
In addition to complete
, unlock
, throw bpmn error
the new keyword notify failure
is the 4th option to finish an external task. By calling notify failure
an incident is created and the process instance is not available for the fetch workload
keyword until the incident is resolved.
Get incidents
With the keyword Get incidents
you can fetch incidents that match your filter arguments.
1.7.1 Pipeline fixed
Failed to deploy version 1.7.0. Pipeline fixed now.
1.7.0: New Keyword "Throw BPMN Error"
See #4
Throw bpmn error error_code=de1 error_message=Alles kaputt variables=${variables}
1.6.0 Bugfixes for GET ACTIVITY INSTANCE
#30 GET ACTIVITY INSTANCE returns now Dict instead of Dto
Makes the result easier to process in robot as you can now use simply key notation:
${activities} Get Activity Instance id=${process}[id]
Log ${activities}[child_acitivities]
#31 GET ACTIVITY INSTANCE has now only id as parameter
You can now drop naming the parameter with id=
:
${activities} Get Activity Instance ${process}[id]