Hi,
I would like to create a button that when on click it triggers an automation script that sends an email.
May I know how to do that?
From all the resources I have, I can see a button can trigger many actions but there is no action in reference to automation script.
Needed help, thank you in advance.
Hi Ive, it is a button in the protocol. Sorry for missing this information
Hi Zhing,
It's not possible to trigger a script directly from a button.
You will need to trigger a QAction with your button, which can trigger an automation script.
In your QAction you can then use the protocol.ExecuteScript('myScript'); to trigger your automation script.
Hi Ive,
Thank you so much for your reply. I tried creating a button using the guidance from this link https://docs.dataminer.services/develop/devguide/Connector/UIComponentsButton.html
Afterwards, I chose the option “Generate New QAction” for the button and implement the execute script method you showed me.
But after I click the button, it does not trigger the QAction and execute the automation script. Do you know why?
Hi Zhing,
Do you see any errors in the element logging?
(You can access the element logging, through the menu icon on the top left-hand side of your element card, then view > logging).
Hi Ive,
No there is no error whatsoever. I put protocol.Log(Message) to check and see if the QAction is even being entered but the message did not even show up. It seems like after I clicked the button, it simply does nothing.
Hi Zhing,
I’ve added a new answer so I can share a screenshot of my test code.
Can you share your button parameter definition and QAction definition with us?
Hi Ive, attached is the snippet of my code.
Is the button used in a table column? If yes, you need to add row=”true” to your QAction.
Hi Felix,
No, it is a standalone button. Not the button in a table column.
I used the same code as you and the QAction is triggered on my system (Error is because script does not exist):
2024/10/23 17:02:21.786|SLManagedScripting.exe|ManagedInterop|CRU|-1|43|In 800
2024/10/23 17:02:21.793|SLManagedScripting.exe|ManagedInterop|ERR|0|43|QA800|800|Run|Exception thrown:
I copied over the code from your screenshots, and everything is working fine on my side.
Are you sure, your element is running the correct protocol version?
(Do you see the element restarting when you publish your protocol from DIS)?
Hi Ive and Felix,
I think I know why the logging is not showing anything. The element I am using and testing is a replicated element. I replicate the original element in order for me to perform the changes and testing. Hence the logging did not show anything.
I used a different version in this replicated element (version 2) and the original element is using the previous version (version 1). Therefore, does that mean in this replicated element and version 2, any changes I did to the protocol will not take effect?
Can you share the definition of your button parameter and QAction?
Below you can see a snippet from my test protocol.
I can confirm the code below works as expected.
Hi Ive, I have posted a new answer that includes the snippet of my code.
Hi Zhing,
Is this a button in a protocol, visio or low-code app?