elsa | babel plugin for replacing object | Plugin library
kandi X-RAY | elsa Summary
kandi X-RAY | elsa Summary
Mutability is dangerous, let it go!.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of elsa
elsa Key Features
elsa Examples and Code Snippets
Community Discussions
Trending Discussions on elsa
QUESTION
I am considering using the Elsa workflows for a project, but I couldn't find any examples or documentation on how to use it in client applications (xamarin.forms/blazor wasm). My idea idea is to basically define workflows that include also screen transitions in the client apps. Is this a relevant scenario for Elsa, or am not getting it? I understand that there is some REST API available, but no idea how to use it.
This great article explains how to use it in ASP.NET/backend scenarios https://sipkeschoorstra.medium.com/building-workflow-driven-net-core-applications-with-elsa-139523aa4c50
...ANSWER
Answered 2021-Jun-09 at 16:36That's a great use case for Elsa and is something I am planning to create a sample application + guide for. So far, there are guides and samples about executing long-running "back-end" processes using Elsa, but there is now reason one couldn't also use it to implement application navigation logic such as wizards consisting of steps implemented as individual screens for example.
So that's your answer: yes, it is a relevant scenario. But it is unfortunate that there are no concrete samples to point you to at the moment.
Barring any samples, here's how it might work in a client application:
- The client application has Elsa services configured.
- Whether you decide to store workflow within the app (as code or JSON) or on a remote Elsa Server instance doesn't matter - once you have a workflow in memory, you can execute it.
- Since your workflows will be driving UI, you have to think of how tightly-coupled the workflow will be with that UI. For example, a highly tight-coupled workflow might include activities that represent view (names) to present, including transition configuration if that is something to be configured, and outcomes based on what buttons were clicked. A highly loose-coupled workflow on the other hand might act more as a "conductor" or orchestrator of actions and events, where the workflow consists of nothing more than a bunch of primitives such as "SendCommand" and "Event Received", where a "SendCommand" simply raises some application event with a task name that your application then handles. The "Event Received" activity handles the other way around: your application fires instructions to Elsa, and Elsa drives the workflow. A task might be a "Navigate" instruction with the next view name provided as a parameter.
The "SendCommand" and "EventReceived" activities are very new and part of Elsa 2.1 preview packages. Right now they are directly coupled to webhook scenarios (where the commands are sent in the form of HTTP requests to an external application), but the goal is to have various strategies in place (HTTP out requests would just be one of them, another one might be a simple mediator pattern for in-process scenarios such as your client application one).
UPDATETo retrieve workflows designed in the designer into your client app, you need to get the workflow definition via the following API endpoint:
http(s)://your-elsa-server/v1/workflow-definitions/{workflow-definition-id}/Published
What you'll get back is a JSON representing the workflow definition, which you can now deserialize using IContentSerializer.Deserialize
, which will give you a WorkflowDefinition
. But to be able to actually run a workflow, you need a workflow blueprint. To turn the workflow definition into a blueprint, use `IWorkflowBlueprintMaterializer.CreateWorkflowBlueprintAsync(WorkflowDefinition).
Which will give you a blueprint that can then be executed using e.g. IStartsWorkflow.StartWorkflowAsync(IWorkflowBlueprint)
.
There are various other services that make it more convenient to construct and run workflows.
To make this as frictionless as possible for your client app, you could consider simply implementing IWorkflowProvider
, of which we currently have 3 out of the box:
- ProgrammaticWorkflowProvider: provides workflow blueprints based on the workflows coded with the fluent Workflow Builder API.
- DatabaseWorkflowProvider: provides blueprints based on those stored in the database (JSON models stored by the designer).
- StorageWorkflowProvider: provides blueprints based on JSON files stored on some hard drive or blob storage such as Azure Blob Storage.
What you might do, and in fact what I think we should provide out of the box now that you made me think of it, is create a fourth provider that uses the API endpoints to get workflows from.
Then your client app should not have to be bothered with invoking the Elsa API - the provider does it for you.
QUESTION
I'm using elsa-workflow v1.5 and trying to resume a workflow when user commit an action, by fetching the related workflow instance from db using this method
...ANSWER
Answered 2021-Jun-06 at 12:21To answer your question, the code you are using is valid. What you are experiencing is caused by the way Elsa 1.5 manages the DB context.
Unless you are willing to fork Elsa 1.5 and reimplement the persistence EF Core provider or provide your own implementation of the persistence abstractions, I'm afraid there's no simple way to resolve this error other than upgrading to Elsa 2.0 where this is fixed.
QUESTION
I like the idea of activity inputs and outputs and prefer them over setting values in the workflow context. However I am now stuck with this approach when using switch cases. My workflow looks like this:
...ANSWER
Answered 2021-Jun-06 at 12:14There is no way to bypass Elsa form sending activity output automatically to another activity as input.
That being said, it is up to you whether or not you use output/input.
What you can do is this:
- Specify a name for
GetShopDataActivity
(using.WithName
). E.g."GetShopDataActivity1"
- Use the output of
GetShopDataActivity
Directly as input forGetShopType1ProductsActivity
.
To use output from a named activity, use the following code:
QUESTION
I'm running the Elsa-Core - AspnetCore Monolith Dashboard sample.
Workflow:,
This problem happens in the HttpReponse Activity, the HttpEndpoint works fine
I'm getting an error on the client which I can't catch in the server, I think the problem happens in:
...ANSWER
Answered 2021-Jun-06 at 11:03Make sure to update your Startup
class to:
- Add CORS services, and
- Add CORS middleware.
As you already figured out, make sure to add the CORS middleware component before the call to app.UseHttpActivities()
(which is the middleware handling HTTP workflow requests).
Sample code in ConfigureServices
:
QUESTION
Whats the status on the blazor integration ? I cloned https://github.com/elsa-workflows/elsa-dashboard-blazor but when building I geterror "Severity Code Description Project File Line Suppression State Error MSB3030 Could not copy the file "wwwroot\service-worker.published.js" because it was not found. Elsa.Dashboard.Client \packages\microsoft.aspnetcore.components.webassembly.build\3.2.1\targets\ServiceWorkerAssetsManifest.targets 230 ".
The link in the github to the "old" project returns a 404
...ANSWER
Answered 2021-Jun-06 at 10:55The Blazor integration sample was pretty outdated when you wrote this question, but I have recently pushed an update that includes two new Blazor sample implementations that demonstrate how to include the Elsa Dashboard component within a Blazor WASM and Blazor Server project.
QUESTION
There is a piece of code that is giving me trouble
i have the variable Average = 94.56 and and another arbitrary variable student
I am asked to print this variable but in the string i must format it such that instead of 94.56 i get 94.6 when i call the print function so this is what i have
...ANSWER
Answered 2021-Jun-04 at 07:44What you want to do is rounding.
QUESTION
Elsa is executing both the branches of the workflow, when I am expecting only one, either A or B. Here are the files for console app.
I have pushed the same here as well for your convenience.
...ANSWER
Answered 2021-May-24 at 18:16This is by design: the Fork
activity will schedule all branches. It is a way to split workflow execution into multiple branches.
This allows you to do things like waiting for some user input in one branch, but continue with another branch after some timeout event. A good example of this scenario is described here.
To implement your workflow, all you need is this:
QUESTION
Just looking at using Elsa for my workflow implementation.
What is the timeline for 2.0? I read that it was slated for end of March - any updates?
Thanks!
Martin
...ANSWER
Answered 2021-May-14 at 20:44It was originally slated for end of March, but then got delayed to end of April. Elsa 2.0-RC2 was just made available on NuGet, so we're getting close to an official 2,0 release. We're currently focused on documentation, bug fixing and polishing. Realistically speaking I am hoping to release 2.0 sometime before the end of May, but we will see.
QUESTION
I get listA from the database. I get listB from a file that the end user uploads, which I convert to the right class in a list. For the example I give you a list that came from the database and one that the user uploaded. You can find samples of these below.
I need to check if listB is in listA, but when I use Except
I get the entire list because Id isn't in listB (auto numeration in database). I have a solution for now, but is there a better way to do this?
ANSWER
Answered 2021-May-12 at 12:28You can use your own IEqualityComparer
, that ignores the ID
property:
QUESTION
I have a few classes that use one another: Lanes is a property of Directions, Directions is a property of Diagram. This is a method in Diagram class, it supposes to 'push' information from a list (phsr_lst) to Diagram -> Directions -> Lanes. When I print the data I pushed using getattr(key_lan, cur_arrow) right after setattr(), I get the right data, but when printing it outside the method, it shows as if nothing was changed. When I checked the memory address inside and outside the method, I got different addresses;
This is not the only method that I have that does the same thing - and works, although I did have the same problem with other methods. To be honest, I have no idea how I managed to solve it on the other ones 😅; I tried to change it to be almost the same but it still doesn't work.
...ANSWER
Answered 2021-May-11 at 12:02The problem was I tried to use the setasttr() with a specific cell (among other problems and mistakes I had...) To fix it, I created the array and then used the setattr() for the whole array and not a specific cell. This is the new function with the changes:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install elsa
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page