[OneSignal Plugin] Refresh Input Text widget

[OneSignal Plugin] Refresh Input Text widget

  
Forge Component
(9)
Published on 19 Oct by OutSystems R&D
9 votes
Published on 19 Oct by OutSystems R&D

Hi Everyone,

any one can give an idea or best known method on this. 


The column encircled in blue is my reference of row encircled in red.

What it does is the row encircled in red display data from the API this API develop in other application and i just calling it outsystem. 

What I want is, the row encircled in red should display the real time value from the API.

If the number of row encircled in red is equal to the number defined on the column encircled in blue the focus should automatically proceed or move to the next row of encircled in red.

I tried to use timer using client action and java script. But our server that holds the API get flood of logs because my application keeps on sending request 3-7 millseconds our API server logging each request from the external application that use/call API like outsystem and stored in the database.

Hello d.

I will not lie. I have exactly no clue about what you are talking or what you want to achieve...

But...

I read "real time" and "consuming API"...

So... This so called API is a web service exposing methods that your application must call in order to fetch data?

If so, well, you are out of look.

If the External system is logging every request, you are getting the result of trying to read data to fast.

Without changing the external system, there is no way for you to solve it.

So, or you turn off the logging, or implement a way to keep cleaning it, or you make the external system to SEND data on data changing, and your system use something like the OneSignal to send messages to your application and update the screen.

I think there is no good way to solve this situation.

Cheers.

P.S. Do you really need "real time data"? You know, there are no miracles...

Eduardo Jauch wrote:

Hello d.

I will not lie. I have exactly no clue about what you are talking or what you want to achieve...

But...

I read "real time" and "consuming API"...

So... This so called API is a web service exposing methods that your application must call in order to fetch data?

If so, well, you are out of look.

If the External system is logging every request, you are getting the result of trying to read data to fast.

Without changing the external system, there is no way for you to solve it.

So, or you turn off the logging, or implement a way to keep cleaning it, or you make the external system to SEND data on data changing, and your system use something like the OneSignal to send messages to your application and update the screen.

I think there is no good way to solve this situation.

Cheers.

P.S. Do you really need "real time data"? You know, there are no miracles...

Hi EJ,

Thank you for your response.

Yes, on page load of my mobile app, i'm calling the API(Consume REST API) 

in my screen i use "fetch data from other source" then inside the flow of that object i call the API to get the qty from the machine. That API continuously monitor the machine counter so the value continuously changed that's why it is important to me to display in my mobile app once the current value of machine counter has change.

The API that i use is created in Ignition and it has a tag that continuously talking to the machine and get the real time value of machine counter.

Now, in my outsystems mobile app i'm just calling the API in fetching data and display.

But, when the tag value changed it doesn't reflect to my mobile app.

for example the screen that i have shared to you. 

i have three column, in the first row column 1 i have "4", first row 2nd column i have "5", 3rd row column 3 also i have "5" current value. That value displayed upon loading the page.  

what i want is without exiting the page when the value change on my tag in ignition let say the  first row  column 1 value is "4" then becomes 5 it should be reflected to my mobile UI.


The first thing i did is, i created a client action named "timer" inside of this client action i have javascript.

$parameters.TimerHandler = setInterval(refresh, 30000);
function refresh(){
    $actions.GetMachineQty();


Then on the data action i use the timer client action on after fetch.

So the result of this method after certain period of time it keeps on sending a request to ignition calling the API for me to display the value of the tag.


except of using this method refreshing the data action. is there a way to refresh the widget like list, input text etc? hoping that it can also resolve my problem :-(. 


Thanks and Regards,

D