diff --git a/src/scripting/Elsa.Scripting.JavaScript/Handlers/ConfigureJavaScriptEngine.cs b/src/scripting/Elsa.Scripting.JavaScript/Handlers/ConfigureJavaScriptEngine.cs index 81807b729..911cb797c 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Handlers/ConfigureJavaScriptEngine.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Handlers/ConfigureJavaScriptEngine.cs @@ -55,6 +55,7 @@ namespace Elsa.Scripting.JavaScript.Handlers engine.SetValue("getWorkflowDefinitionIdByName", (Func)(name => GetWorkflowDefinitionIdByName(activityExecutionContext, name))); engine.SetValue("getWorkflowDefinitionIdByTag", (Func)(tag => GetWorkflowDefinitionIdByTag(activityExecutionContext, tag))); engine.SetValue("getActivity", (Func)(idOrName => GetActivityModel(activityExecutionContext, idOrName))); + engine.SetValue("getActivityId", (Func)(activityName => GetActivityId(activityExecutionContext, activityName))); engine.SetValue("findExecutedActivityIdByType", (Func)(activityTypeName => FindExecutedActivityByTypeAsync(activityExecutionContext, activityTypeName, cancellationToken).Result)); engine.SetValue("jsonEncode", (Func)(JsonConvert.SerializeObject)); engine.SetValue("jsonDecode", (Func)JsonConvert.DeserializeObject); @@ -165,6 +166,13 @@ namespace Elsa.Scripting.JavaScript.Handlers return activity == null ? null : workflowExecutionContext.WorkflowInstance.ActivityData[activity.Id]; } + private string? GetActivityId(ActivityExecutionContext context, string activityName) + { + var workflowExecutionContext = context.WorkflowExecutionContext; + var activity = workflowExecutionContext.GetActivityBlueprintByName(activityName); + return activity?.Id; + } + private async Task GetActivityPropertyAsync(string activityIdOrName, string propertyName, ActivityExecutionContext context) { var workflowExecutionContext = context.WorkflowExecutionContext; diff --git a/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs b/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs index 9356969fa..4ac455480 100644 --- a/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs +++ b/src/scripting/Elsa.Scripting.JavaScript/Handlers/RenderJavaScriptTypeDefinitions.cs @@ -37,6 +37,7 @@ namespace Elsa.Scripting.JavaScript.Handlers output.AppendLine("declare function getWorkflowDefinitionIdByName(name: string): string;"); output.AppendLine("declare function getWorkflowDefinitionIdByTag(tag: string): string;"); output.AppendLine("declare function getActivity(idOrName: string): any;"); + output.AppendLine("declare function getActivityId(name: string): string;"); output.AppendLine("declare function getActivityProperty(activityIdOrName: string, propertyName: string): any;"); output.AppendLine("declare const activityExecutionContext: ActivityExecutionContext;");