Similar to Kata#15, I created a DOM to define events.
Within a LowCode App, I can add events via a form and I show these events in a timeline.
When I create such an event via the form, I want to execute a script and use the information from the form.
Executing the script after saving the form is not the issue.
The question is how do I propagate the data from the form in the Low Code App to this script?
or put differently, how do I use this newly created DOM instance in my script?
Hi Robin, I'm assuming you are using the functionality in LCA to execute a script after you save the form. I'm not sure if you can pass the form data to a script in LCA, but I'm going to leave that to someone else to answer.
There is a setting on the ModuleSettings/DomDefinition that allows a script to be executed after a CRUD action, you only need to provide the name of the script, and the script will be executed after every create, update or delete of a DomInstance in that DomDefinition/Module.
You can find more info about this functionality in the DataMiner Docs - ExecuteScriptOnDomInstanceActionSettings
You'll have to adapt the Run method of your script to use one of the entrypoints as shown in the examples in the docs. These entrypoints provide you with either the ID of the instance, allowing you to fetch it in the script, or the DomInstanceCrudMeta, which contains all the info about the created/updated/deleted DomInstance.
Please let me know if you have any further questions!
Hi Robin,
As Wouter mentioned, you can use the lifecycle method of DOM, but keep in mind this will apply to all instances created, not just those created by a specific app.
If you want this to apply only within the app, you'll need to use a table selection as input for the script and select the created instance in the table before running the script.
Your action flow should look like this:
- Form - Save the instance
- Table - Fetch the data (to capture the newly created instance)
- Table - Select an item
- Execute a script (linked to the selection of the table)