Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note
title

Note!

This section is only relevant for Python agents in batch workflows.

...

The value of a persistent variable must be compatible with drany. For further information, see APL and Ultra Field Types for Python (3.3).

title
Note

Note!

A persistent variable is not the same as a normal Python global variable. A normal global variable is not persisted between executions of a workflow. Do not rely on normal global variables for any state necessary to finalize a transaction.

title
Info

Example - Persistent variables for Python collection agent

Code Block
counter = persistent(0) # Defines a persistent variable with default value 0
start = persistent(drdate.now()) # Defines another persistent variable with the start date

def initialize():
    if counter.value == 0:
        debug('This is the first time this workflow has processed batches')
    else:
        debug('This workflow has processed batches before')

def execute():
    debug('execute')
    beginBatch() # Starts a new batch
    counter.value += 1
    endBatch() # Ends the batch, all persistent variables have been persisted when this call returns
 
def commit():
    debug('commit')
    # The persistent variables are available in commit during both normal and recovery commits
    debug(counter)
    debug(start)

title
Info

Example - Persistent variables for Python processing agent

Code Block
counter = persistent(0) # Defines a persistent variable with default value 0

def endBatch():
    debug('endBatch')
    counter.value += 1
    # The persistent variable is persisted after this function block has been executed

def commit():
    debug('commit')
    # The persistent variable is available in commit during both normal and recovery commits
    debug(counter)

...