Skip to content

Releases: MarketSquare/robotframework-camunda

2.0.3 : minor documentation enhancements

05 Apr 21:53
Compare
Choose a tag to compare

2.0.2 : remove deprecation from `drop fetch response`

04 Apr 21:07
Compare
Choose a tag to compare

Removes annoying deprecation warnings. Turns out the keyword is not deprecated after all.

Fix `Get Process Instance Variable`

16 Mar 21:09
82af6fd
Compare
Choose a tag to compare

Bugfix Release

Get Process Instance Variable now auto-converts Java objects from Camunda to Python data structures.

List of tickets

#69 - Bug: Get Process Instance Variable does not convert java objectgs
#64 - Bug: Documentation for Get Process Instance has broken format and looks awful

2.0.0 : BPMN ready

01 Dec 10:31
606b01f
Compare
Choose a tag to compare

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

20 Sep 14:44
a517404
Compare
Choose a tag to compare

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

13 Sep 12:47
5720f31
Compare
Choose a tag to compare

#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

13 Sep 12:37
c32016b
Compare
Choose a tag to compare

#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

26 Aug 20:22
eb37145
Compare
Choose a tag to compare

Failed to deploy version 1.7.0. Pipeline fixed now.

1.7.0: New Keyword "Throw BPMN Error"

26 Aug 16:20
8f1761d
Compare
Choose a tag to compare

See #4

    Throw bpmn error    error_code=de1   error_message=Alles kaputt    variables=${variables}

1.6.0 Bugfixes for GET ACTIVITY INSTANCE

24 Aug 14:22
d3a96f8
Compare
Choose a tag to compare

#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]