Jump to: navigation, search

Difference between revisions of "HowTo:Create UBIK Workflow Activity Plugin"


m
m
Line 3: Line 3:
 
The interface <code lang="csharp">IUBIKActivity</code> is located in the library '''UBIK.WorkflowBase.dll'''.
 
The interface <code lang="csharp">IUBIKActivity</code> is located in the library '''UBIK.WorkflowBase.dll'''.
  
== Example ==
+
{{Attention|The injection of workflow activities is only supported if the plugin is placed within ''Injection'' under the {{UBIK}} installation directory. Make also sure this folder is configured as ''probing'' path in the config file.}}
 +
 
 +
= Example =
 
<source lang="csharp">
 
<source lang="csharp">
 
using System;
 
using System;
Line 48: Line 50:
 
</source>
 
</source>
  
 
+
<headertabs/>
{{Attention|The injection of workflow activities is only supported if the plugin is placed within ''Injection'' under the {{UBIK}} installation directory. Make also sure this folder is configured as ''probing'' path in the config file.}}
+
  
 
== See also ==
 
== See also ==

Revision as of 11:21, 3 August 2016

You can add new workflow activities to your UBIK® system via a plugin loaded by the Injection Management. The new activity needs to be implemented in an UBIK® plugin which has to implement the interface UBIK.WorkflowBase.IUBIKActivity and inherit from System.Activities.NativeActivity<T>.

The interface IUBIKActivity is located in the library UBIK.WorkflowBase.dll.

IC Attention.pngThe injection of workflow activities is only supported if the plugin is placed within Injection under the UBIK® installation directory. Make also sure this folder is configured as probing path in the config file.
[edit]

Example

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using System.ComponentModel;
using System.ComponentModel.Composition;
using UBIK.Kernel;
using UBIK.WorkflowBase;

namespace UBIK.Interface.Module.PluginExamples
{
    /// <summary>
    /// Sends a message to UBIK.Compiler.Debugger
    /// </summary>
    [UBIK.WorkflowBase.Attributes.Category("UBIK Plugins")]
    [Export(typeof(UBIK.Injection.IUbikPlugin))]
    [ExportMetadata("ID", "C149402E-BC86-46D6-8D1B-63C86894EA77")]
    [ExportMetadata("Type", typeof(TestActivity))]
    [ExportMetadata("Name", "TestActivity" )]
    [ExportMetadata("Description", "WF Activity: Sends a message to UBIK.Compiler.Debugger")]
    [ExportMetadata("Version", 1)]
    [ExportMetadata("Company", "Augmensys GmbH")]
    [ExportMetadata("Copyright", "2015, Augmensys GmbH")]
    public class TestActivity : NativeActivity<string>, UBIK.Injection.IUbikPlugin, UBIK.WorkflowBase.IUBIKActivity
    {
        public InArgument<BaseClass> UBIKObject { get; set; }
        public InArgument<string> Text { get; set; }

        protected override void Execute(NativeActivityContext context)
        {
            BaseClass bc = this.UBIKObject.Get<BaseClass>(context);

            string txt = this.Text.Get<string>(context);

            UBIK.Compiler.Debugger.Output(this, txt);

            this.Result.Set(context, txt);
        }
    }
}

See also