diff --git a/conductor/workflow.py b/conductor/workflow.py index b6266f2..caefa38 100644 --- a/conductor/workflow.py +++ b/conductor/workflow.py @@ -95,22 +95,27 @@ class Workflow(object): return position + suffix.split('.') @staticmethod - def _select_func(context, path='', source=None, **kwargs): + def _select_func(context, path='', source=None, default=None, **kwargs): + result = None if path.startswith('##'): config = context['/config'] - return config[path[2:]] + result = config[path[2:]] elif path.startswith('#'): - return context[path[1:]] - - if source is not None: - return Workflow._get_path( + result = context[path[1:]] + elif source is not None: + result = Workflow._get_path( context[source], path.split('.')) else: - return Workflow._get_path( + result = Workflow._get_path( context['/dataSource'], Workflow._correct_position(path, context)) + if not result and default is not None: + result = default + + return result + @staticmethod def _set_func(path, context, body, engine, target=None, **kwargs): body_data = engine.evaluate_content(body, context) diff --git a/data/workflows/AD.xml b/data/workflows/AD.xml index c241ac0..696c0f4 100644 --- a/data/workflows/AD.xml +++ b/data/workflows/AD.xml @@ -25,7 +25,7 @@ - m1.medium + ws-2012-full diff --git a/data/workflows/MsSqlServer.xml b/data/workflows/MsSqlServer.xml index bd1bb88..01a53bd 100644 --- a/data/workflows/MsSqlServer.xml +++ b/data/workflows/MsSqlServer.xml @@ -25,7 +25,7 @@ - m1.medium +