diff --git a/product/ERP5/bootstrap/erp5_core/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml b/product/ERP5/bootstrap/erp5_core/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml index d25011bc06d4401ed31b745a833fe0317c6aac2c..eb9cf9a57528bdeef539fb061d06f456938ea3d8 100644 --- a/product/ERP5/bootstrap/erp5_core/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml +++ b/product/ERP5/bootstrap/erp5_core/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml @@ -7,6 +7,10 @@ <type>Category</type> <workflow>edit_workflow</workflow> </chain> + <chain> + <type>Distributed Ram Cache</type> + <workflow>distributed_ram_cache_interaction_workflow</workflow> + </chain> <chain> <type>Document</type> <workflow>edit_workflow</workflow> @@ -15,6 +19,10 @@ <type>Mapped Value</type> <workflow>edit_workflow</workflow> </chain> + <chain> + <type>Memcached Plugin</type> + <workflow>memcached_plugin_interaction_workflow</workflow> + </chain> <chain> <type>Predicate</type> <workflow>rule_interaction_workflow</workflow> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0191aefc8ac8e0d33cc1f3407f0920a7c1b39e9 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="InteractionWorkflowDefinition" module="Products.ERP5.InteractionWorkflow"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>distributed_ram_cache_interaction_workflow</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions.xml new file mode 100644 index 0000000000000000000000000000000000000000..6788072919f778201f1ac6bad0ff8edc16dcc3e4 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="Interaction" module="Products.ERP5.Interaction"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interactions</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions/DistributedRamCache_setSpecialise.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions/DistributedRamCache_setSpecialise.xml new file mode 100644 index 0000000000000000000000000000000000000000..1d61daf1642639d5cfdc9204d6fdfcfe80d82f39 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/interactions/DistributedRamCache_setSpecialise.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>activate_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>before_commit_script_name</string> </key> + <value> + <list> + <string>DistributedRamCache_updateCache</string> + </list> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>DistributedRamCache_setSpecialise</string> </value> + </item> + <item> + <key> <string>method_id</string> </key> + <value> + <list> + <string>_setSpecialise.*</string> + </list> + </value> + </item> + <item> + <key> <string>once_per_transaction</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>portal_type_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts.xml new file mode 100644 index 0000000000000000000000000000000000000000..0622b3c34fa5ffe83ab080066492f760b230dadf --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="Scripts" module="Products.DCWorkflow.Scripts"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>scripts</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts/DistributedRamCache_updateCache.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts/DistributedRamCache_updateCache.xml new file mode 100644 index 0000000000000000000000000000000000000000..3e95d9961ae714613a504903861b968fae25a2a9 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/scripts/DistributedRamCache_updateCache.xml @@ -0,0 +1,127 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>plugin = state_change[\'object\']\n +cache_tool = plugin.getParentValue()\n +cache_tool.updateCache()\n +</string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>errors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>func_code</string> </key> + <value> + <object> + <klass> + <global name="FuncCode" module="Shared.DC.Scripts.Signature"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>co_argcount</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>state_change</string> + <string>_getitem_</string> + <string>plugin</string> + <string>_getattr_</string> + <string>cache_tool</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>DistributedRamCache_updateCache</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/variables.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/variables.xml new file mode 100644 index 0000000000000000000000000000000000000000..55472322781f3cf4d5b0026616f99218a03efb1b --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/variables.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="Variables" module="Products.DCWorkflow.Variables"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>variables</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/worklists.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/worklists.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f8b17b01278f4c455558cd9d0b05357fdd86a7a --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/distributed_ram_cache_interaction_workflow/worklists.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="Worklists" module="Products.DCWorkflow.Worklists"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>worklists</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_beforeDelete.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_beforeDelete.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b8bc914857a32519bbc93f0dd915aee9405124f --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_beforeDelete.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>activate_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> + <list> + <string>MemcachedPlugin_beforeDelete</string> + </list> + </value> + </item> + <item> + <key> <string>before_commit_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>MemcachedPlugin_beforeDelete</string> </value> + </item> + <item> + <key> <string>method_id</string> </key> + <value> + <list> + <string>manage_beforeDelete</string> + </list> + </value> + </item> + <item> + <key> <string>once_per_transaction</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>portal_type_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_edit.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_edit.xml index aa364b40cd9e6cbfe0536060df2264818c95e151..5b1bd94e991db7a2dd68513a5d0616e9b3a7ba45 100644 --- a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_edit.xml +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/interactions/MemcachedPlugin_edit.xml @@ -37,7 +37,7 @@ <key> <string>before_commit_script_name</string> </key> <value> <list> - <string>afterEdit</string> + <string>MemcachedPlugin_afterEdit</string> </list> </value> </item> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/afterEdit.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_afterEdit.xml similarity index 98% rename from product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/afterEdit.xml rename to product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_afterEdit.xml index 11aa01e37e88a468d6e06e22370a3bd80fb97434..caecceef16ec34e863f7e0445d7d6d10ac1f78a9 100644 --- a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/afterEdit.xml +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_afterEdit.xml @@ -121,7 +121,7 @@ if cache_plugin_list:\n </item> <item> <key> <string>id</string> </key> - <value> <string>afterEdit</string> </value> + <value> <string>MemcachedPlugin_afterEdit</string> </value> </item> <item> <key> <string>warnings</string> </key> diff --git a/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_beforeDelete.xml b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_beforeDelete.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e657075e24589687a4313f31f6360da64598fd9 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_core/WorkflowTemplateItem/portal_workflow/memcached_plugin_interaction_workflow/scripts/MemcachedPlugin_beforeDelete.xml @@ -0,0 +1,135 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>document = state_change[\'object\']\n +cache_plugin_list = document.getSpecialiseRelatedValueList(portal_type=\'Distributed Ram Cache\')\n +from Products.CMFCore.utils import getToolByName\n +if cache_plugin_list:\n + cache_tool = getToolByName(document.getPortalObject(), \'portal_caches\')\n + if cache_tool is not None:\n + cache_tool.activate().updateCache()\n +</string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>errors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>func_code</string> </key> + <value> + <object> + <klass> + <global name="FuncCode" module="Shared.DC.Scripts.Signature"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>co_argcount</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>state_change</string> + <string>_getitem_</string> + <string>document</string> + <string>_getattr_</string> + <string>cache_plugin_list</string> + <string>Products.CMFCore.utils</string> + <string>getToolByName</string> + <string>cache_tool</string> + <string>None</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>MemcachedPlugin_beforeDelete</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision index 078cc70a33ea1e7fcadf327c0c65074305c9324c..f845c1c75762838dd1c65191eb917deda0142a9e 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/revision +++ b/product/ERP5/bootstrap/erp5_core/bt/revision @@ -1 +1 @@ -1262 \ No newline at end of file +1267 \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_workflow_chain_list b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_workflow_chain_list index ccfbb095d2cfd1863fa8324a983c0bba80777f1a..80b221b0a1451bc0c41698a1deb1dff12f8c705a 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_workflow_chain_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_portal_type_workflow_chain_list @@ -1,7 +1,9 @@ Base Category | edit_workflow Category | edit_workflow +Distributed Ram Cache | distributed_ram_cache_interaction_workflow Document | edit_workflow Mapped Value | edit_workflow +Memcached Plugin | memcached_plugin_interaction_workflow Predicate | rule_interaction_workflow Preference | preference_workflow System Preference | preference_workflow \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_core/bt/template_workflow_id_list b/product/ERP5/bootstrap/erp5_core/bt/template_workflow_id_list index b266f6cedc1351c0ee8fa68cced65a4a0fe86127..df7fbd855695620a1ce6fae4e4d5de8e3008092e 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/template_workflow_id_list +++ b/product/ERP5/bootstrap/erp5_core/bt/template_workflow_id_list @@ -1,3 +1,4 @@ +distributed_ram_cache_interaction_workflow edit_workflow memcached_plugin_interaction_workflow preference_workflow