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 @@
diff --git a/data/workflows/AspNetApps.xml b/data/workflows/AspNetApps.xml
index c44fdf0..f151bfe 100644
--- a/data/workflows/AspNetApps.xml
+++ b/data/workflows/AspNetApps.xml
@@ -25,7 +25,7 @@
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 @@