Giter VIP home page Giter VIP logo

rehosted-workflow-designer's Introduction

.NET Rehosted Workflow Designer

Alt text

The solution contains:

WPF Desktop Application

  • Workflow Designer - Rehosting in a WPF Aplication
  • ToolboxControl - Loading Workflow Activities from Assemblies
  • Workflow Execution - retrieve real-time Execution Log (TrackData) and Execution Output(s)
  • Workflow Management - New / Open / Save / Run / Stop

Activity Library - Custom Activities

  • ShowMessageBox - displays in a MessageBox the Value of the InputData argument
  • GetGroupMembers - retrieves the Member Names and Count for a specified Meetup.Com Group
  • GetRSVPmembers - retrieves the Member Names and Count for a specified Meetup.Com Event

Demo Workflows

AzureVmPowerOperations.xaml

  • InArguments - VM & Service names
  • OutArguments - ActionPerformed
  • the workflow connects to Azure & changes the VM power state: if Powered On it will be power off, else powered on

LocalWinServicesCSV.xaml

  • InArguments - Status (default is "running")
  • the workflow retrieves the local windows services with the status defined by the inargument, writes the list to a file & opens it

SvcMonitoring.xaml

  • InArguments - Service
  • OutArguments - Log
  • the state machine workflows monitors the state of the specified windows service; if the state changes, the user gets notified via SMS

Meetup.xaml

  • InArguments - Meetup.COM REST API Key and RSVP (true / false)
  • If RSVP = false - the Workflow outputs a list with the Members of a Meetup.Com Group
  • If RSVP = true - the Workflow outputs a list with the Attending Members of a Meetup.Com Event

Links


rehosted-workflow-designer's People

Contributors

orosandrei avatar trevordarcyevans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rehosted-workflow-designer's Issues

RoslynExpressionEditor throws NullReferenceException when triggered from IActivityTemplateFactory

If you add an activity that implements IActivityTemplateFactory ( ForEach Activity for instance ) the editor throws an NullReferenceException at CreateExpressionEditor
( if you clear the declaredVariables list, you wont get the NullReferenceException any more, but then intellisense will not work )

I think the error happens in UpdateInstance in the RoslynExpressionEditorInstance
This ugly hack, seemed to solve the issue for me

` variableDeclarations = string.Join("", variables.Select(v => {
var c = v.GetCurrentValue() as System.Activities.Variable;
if (c != null) return c.Type.FullName + " " + c.Name + ";\n";
var d = v.GetCurrentValue() as System.Activities.DelegateArgument;
if (d != null) return d.Type.FullName + " " + d.Name + ";\n";
return null;
//return d.Type.FullName + " " + d.Name + ";\n";
}).ToArray());

`

Error in parsing xaml file

When I run the app, and try to Open a .xaml file with text below, I get this error:

System.Xaml.XamlException: 'The type ‘InArgument(local:TestWorkflowRequest)’ of property ‘request’ could not be resolved.' Line number '14' and line position '32'.

File:


<x:Members>
<x:Property Name="request" Type="InArgument(local:TestWorkflowRequest)" />
</x:Members>
local:TestWorkflow.request

<mca:CSharpValue x:TypeArguments="local:TestWorkflowRequest">null</mca:CSharpValue>

</local:TestWorkflow.request>
sap2010:ExpressionActivityEditor.ExpressionActivityEditorC#</sap2010:ExpressionActivityEditor.ExpressionActivityEditor>
sap2010:WorkflowViewState.IdRefMiddleOfficeWorkflowActivities.Activity1_1</sap2010:WorkflowViewState.IdRef>
<TextExpression.NamespacesForImplementation>
<sco:Collection x:TypeArguments="x:String">
<x:String>System</x:String>
<x:String>System.Collections.Generic</x:String>
<x:String>System.Data</x:String>
<x:String>System.Linq</x:String>
<x:String>System.Text</x:String>
<x:String>MiddleOfficeWorkflowActivities</x:String>
</sco:Collection>
</TextExpression.NamespacesForImplementation>
<TextExpression.ReferencesForImplementation>
<sco:Collection x:TypeArguments="AssemblyReference">
Microsoft.CSharp
Pvtb.Framework.Configuration
Pvtb.Framework.Data
System
System.Activities
System.ComponentModel.DataAnnotations
System.Core
System.Data
System.Runtime.Serialization
System.ServiceModel
System.ServiceModel.Activities
System.Xaml
System.Xml
System.Xml.Linq
DataAccess
WorkflowService
mscorlib
MiddleOfficeWorkflowActivities
</sco:Collection>
</TextExpression.ReferencesForImplementation>

<StateMachine.InitialState>

<State.Transitions>

<Transition.Trigger>
<local:TestWorkflowBookmark BookmarkName="Started" DisplayName="Started" sap2010:WorkflowViewState.IdRef="TestWorkflowBookmark_1" />
</Transition.Trigger>
<Transition.To>

<State.Transitions>

<Transition.Trigger>
<local:TestWorkflowBookmark x:Name="__ReferenceID4" BookmarkName="In Review" DisplayName="InReview" sap2010:WorkflowViewState.IdRef="TestWorkflowBookmark_2">
local:TestWorkflowBookmark.Result

<mca:CSharpReference x:TypeArguments="local:TestWorkflowRequest">request</mca:CSharpReference>

</local:TestWorkflowBookmark.Result>
</local:TestWorkflowBookmark>
</Transition.Trigger>
<Transition.Condition>
<mca:CSharpValue x:TypeArguments="x:Boolean">request.RequestedAction == "Approve"</mca:CSharpValue>
</Transition.Condition>
<Transition.To>

</Transition.To>


<Transition.Condition>
<mca:CSharpValue x:TypeArguments="x:Boolean">request.RequestedAction == "Reject"</mca:CSharpValue>
</Transition.Condition>
<Transition.To>

<State.Transitions>

<Transition.Trigger>
<local:TestWorkflowBookmark BookmarkName="Waiting for Information" DisplayName="WaitingForInformation" sap2010:WorkflowViewState.IdRef="TestWorkflowBookmark_4" />
</Transition.Trigger>
<Transition.To>
<x:Reference>__ReferenceID0</x:Reference>
</Transition.To>

</State.Transitions>

</Transition.To>

</State.Transitions>

</Transition.To>

</State.Transitions>

</StateMachine.InitialState>
<x:Reference>__ReferenceID1</x:Reference>
<x:Reference>__ReferenceID0</x:Reference>
<x:Reference>__ReferenceID2</x:Reference>
<x:Reference>__ReferenceID3</x:Reference>
sads:DebugSymbol.Symbold3REOlxDSEktVEZTXE1pZGRsZU9mZmljZVxEZXZlbG9wbWVudFxBZGRfSW5pdGlhbFJlbGVhc2VcTWlkZGxlT2ZmaWNlXE1pZGRsZU9mZmljZVdvcmtmbG93QWN0aXZpdGllc1xUZXN0V29ya2Zsb3cueGFtbBISBxJaAQI3A3wSAgEBOQd1DwIBFkAPcRcCAQhiF20fAgEEUBdQiAECAQI9Dz2TAQIBGEQXSjQCARJNF016AgEQVRdcNAIBDF8XX3kCAQpmH2bBAQIBBj04PUECARlEQERLAgEVRx1HewIBE1VAVUsCAQ9YHVh7AgENZkhmYQIBBw==</sads:DebugSymbol.Symbol>

sap2010:WorkflowViewState.ViewStateManager
sap2010:ViewStateManager
<sap2010:ViewStateData Id="TestWorkflowBookmark_1" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="TestWorkflowBookmark_2" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="State_4" sap:VirtualizedContainerService.HintSize="114,61">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:Point x:Key="ShapeLocation">403,299.5</av:Point>
<av:Size x:Key="ShapeSize">114,61</av:Size>
<x:Boolean x:Key="IsPinned">False</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="Transition_1" sap:VirtualizedContainerService.HintSize="430,507">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:PointCollection x:Key="ConnectorLocation">357,270 454.3,270 454.3,299.5</av:PointCollection>
<x:Int32 x:Key="SrcConnectionPointIndex">36</x:Int32>
<x:Int32 x:Key="DestConnectionPointIndex">34</x:Int32>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="TestWorkflowBookmark_5" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="TestWorkflowBookmark_4" sap:VirtualizedContainerService.HintSize="200,22" />
<sap2010:ViewStateData Id="Transition_2" sap:VirtualizedContainerService.HintSize="430,507">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:PointCollection x:Key="ConnectorLocation">73,340 43,340 43,270 243,270</av:PointCollection>
<x:Int32 x:Key="SrcConnectionPointIndex">37</x:Int32>
<x:Int32 x:Key="DestConnectionPointIndex">37</x:Int32>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="State_3" sap:VirtualizedContainerService.HintSize="114,61">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:Point x:Key="ShapeLocation">73,309.5</av:Point>
<av:Size x:Key="ShapeSize">114,61</av:Size>
<x:Boolean x:Key="IsPinned">False</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="Transition_3" sap:VirtualizedContainerService.HintSize="430,507">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:PointCollection x:Key="ConnectorLocation">300,300.5 300,336.95 187,336.95</av:PointCollection>
<x:Int32 x:Key="SrcConnectionPointIndex">39</x:Int32>
<x:Int32 x:Key="DestConnectionPointIndex">32</x:Int32>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="State_2" sap:VirtualizedContainerService.HintSize="114,61">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:Point x:Key="ShapeLocation">243,239.5</av:Point>
<av:Size x:Key="ShapeSize">114,61</av:Size>
<x:Boolean x:Key="IsPinned">False</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="Transition_4" sap:VirtualizedContainerService.HintSize="430,507">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:PointCollection x:Key="ConnectorLocation">300,168.5 300,239.5</av:PointCollection>
<x:Int32 x:Key="SrcConnectionPointIndex">39</x:Int32>
<x:Int32 x:Key="DestConnectionPointIndex">38</x:Int32>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="State_1" sap:VirtualizedContainerService.HintSize="114,69">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<av:Point x:Key="ShapeLocation">243,99.5</av:Point>
<av:Size x:Key="ShapeSize">114,69</av:Size>
<x:Boolean x:Key="IsPinned">False</x:Boolean>
<x:Double x:Key="StateContainerWidth">100</x:Double>
<x:Double x:Key="StateContainerHeight">33.040000000000077</x:Double>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="StateMachine_1" sap:VirtualizedContainerService.HintSize="614,636">
sap:WorkflowViewStateService.ViewState
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">False</x:Boolean>
<av:Point x:Key="ShapeLocation">270,2.5</av:Point>
<x:Double x:Key="StateContainerWidth">600</x:Double>
<x:Double x:Key="StateContainerHeight">600</x:Double>
<av:PointCollection x:Key="ConnectorLocation">300,77.5 300,99.5</av:PointCollection>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="MiddleOfficeWorkflowActivities.Activity1_1" sap:VirtualizedContainerService.HintSize="654,716" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>

MSI package

I want to also help bundle this into an MSI package

Do I need to use a different template for XAML

Build, but errors on running about missing activities

Hi there, great lib 💯 however I cannot get it to run, its complaining the dlls cannot be loaded because of system.activities.- could not load system.activities or one of its dependencies

  1. I tried to resolve this using nuget but it failed any help would be appreciated, can you please update to include the system.activities dll
  2. Also I would be interested in helping out with documentation, as it would help me/others out too. Can you help guide us on what are the steps to follow/create and persist a new activity - for e.g. with a workitems queue, like a document approval system.

thanks
Papi

Multiple Workflow Tabs

Is it possible to open more than 1 flow at a time? Like a tabbed feature. May need context perhaps?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.