Add RunJavaScript sample workflow

This commit is contained in:
Sipke Schoorstra 2022-03-07 15:42:23 +01:00
parent 9210a75553
commit c5a577d6b7
3 changed files with 33 additions and 0 deletions

View file

@ -8,6 +8,7 @@
<ItemGroup>
<ProjectReference Include="..\..\..\modules\Elsa.Modules.AzureServiceBus\Elsa.Modules.AzureServiceBus.csproj" />
<ProjectReference Include="..\..\..\modules\Elsa.Modules.Http\Elsa.Modules.Http.csproj" />
<ProjectReference Include="..\..\..\modules\Elsa.Modules.JavaScript\Elsa.Modules.JavaScript.csproj" />
<ProjectReference Include="..\..\..\modules\Elsa.Modules.Scheduling\Elsa.Modules.Scheduling.csproj" />
<ProjectReference Include="..\..\..\modules\Elsa.Modules.Quartz\Elsa.Modules.Quartz.csproj" />
<ProjectReference Include="..\..\..\api\Elsa.Api\Elsa.Api.csproj" />

View file

@ -10,6 +10,7 @@ using Elsa.Modules.AzureServiceBus.Activities;
using Elsa.Modules.AzureServiceBus.Extensions;
using Elsa.Modules.Http;
using Elsa.Modules.Http.Extensions;
using Elsa.Modules.JavaScript.Activities;
using Elsa.Modules.Quartz.Services;
using Elsa.Modules.Scheduling.Activities;
using Elsa.Modules.Scheduling.Extensions;
@ -55,6 +56,7 @@ services
options.Workflows.Add(nameof(CompositeActivitiesWorkflow), new CompositeActivitiesWorkflow());
options.Workflows.Add(nameof(SendMessageWorkflow), new SendMessageWorkflow());
options.Workflows.Add(nameof(ReceiveMessageWorkflow), new ReceiveMessageWorkflow());
options.Workflows.Add(nameof(RunJavaScriptWorkflow), new RunJavaScriptWorkflow());
});
// Testing only: allow client app to connect from anywhere.
@ -73,6 +75,7 @@ services
.AddActivity<ForEach>()
.AddActivity<Switch>()
.AddActivity<SendMessage>()
.AddActivity<RunJavaScript>()
;
// Register scripting languages.

View file

@ -0,0 +1,29 @@
using Elsa.Activities.Console;
using Elsa.Activities.Workflows;
using Elsa.Contracts;
using Elsa.Models;
using Elsa.Modules.JavaScript.Activities;
using Elsa.Runtime.Contracts;
namespace Elsa.Samples.Web1.Workflows;
public class RunJavaScriptWorkflow : IWorkflow
{
public void Build(IWorkflowDefinitionBuilder workflow)
{
var scriptResult = new Variable();
workflow.WithRoot(new Sequence
{
Variables = { scriptResult },
Activities =
{
new RunJavaScript("1 + 1")
{
Result = new Output<object?>(scriptResult)
},
new WriteLine(context => $"Result: {scriptResult.Get(context)}")
}
});
}
}