I have many Tanks with some information that I need to store into a database. Instead of having a transaction group for each tank to create a new line or update the existing one, I want to use a script where, at the right tag condition, I’m able to call the right method to create a new line or update the values in the existing one.
The script itself is not an issue. I have already made it and I have tested with a button. Now I want to apply the triggers to some variables to do all the steps but I see that is not working at all in this way.
I have read some other thread like this one around but I can’t figure out how to solve it.
This is my script:
def tankInsert(serbatoio,tipoLavaggio): #serbatoio = 'T301' #tipoLavaggio = 'Test' dtCIP = system.date.format(system.date.now(), 'yyyy-MM-dd HH:mm') system.db.runUpdateQuery("INSERT INTO serbatoi (nrSerbatoio, dtUltimoCIP, tipoCIP)" + "VALUES ('%s', '%s', '%s')" %(serbatoio, dtCIP,tipoLavaggio))
If i call it from a button, is working. If I call from a tag script with a value change, it is not working and i can see, from the gateway status page, this kind of error:
([default]PLANT/RAW/T301/Tank/Inputs/CIPDone, valueChanged) Error executing tag event script: Traceback (most recent call last): File “tagevent:valueChanged”, line 8, in valueChanged at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.error(AbstractDBUtilities.java:362) at com.inductiveautomation.ignition.common.script.builtin.AbstractDBUtilities.runUpdateQuery(AbstractDBUtilities.java:183) at jdk.internal.reflect.GeneratedMethodAccessor179.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) java.lang.Exception: java.lang.Exception: Error executing system.db.runUpdateQuery(INSERT INTO serbatoi (nrSerbatoio, dtUltimoCIP, tipoCIP)VALUES (‘T3703’, ‘2021-47-13 15:47’, ‘Test’), DatabaseSRV, , false)