Hi All,
I have a script definition that expects 2 arguments which are 2 lists.
- def getGatewayStatus(listDatabaseNames, listDeviceNames):
When using script console, I can pass 2 lists to this definition and it provided a valid dataset return of all Gateway Status tags from System Tags.
I am trying to call this definition using an expression tag of data type dataset.
The expression keeps coming back with different errors. Using the following:
Any suggestion or help on how to construct this runScript statement?
runScript("project.Gateway.status.getGatewayStatus",0,["databaseName1","databaseName2"],["deviceName1","deviceName2"])
OR
runScript('project.Gateway.status.getGatewayStatus',0,["databaseName1","databaseName2"],["deviceName1","deviceName2"])
will generate error:
"Syntax error on token: 'LEFT BRACKET' (line 1, char 55).
You can't construct lists as literals in expressions.
Depending on where you're executing this you can probably construct your lists as custom properties somewhere and bring them in as references.
1 Like
Instead of bringing back the result into a expression tag of type dataset, and then bind this tag to a table component, sounds like a better option is to run this script behind the scene and assign results directly to the data attribute of a Table component.
1 Like
You can with my latest Simulation Aids. See its asList()
function.
4 Likes
You could also do something cheesy like make your script function accepts *args, then call the expression as runScript("script", 0, "arg1", "arg2", null, "arg3", "arg4")
to separate the pairs of args.
Lots of ways to approach the problem - depends entirely on what you're comfortable with (and will be comfortable maintaining into the future).
1 Like