Subscribe for automatic updates: RSS icon RSS

Login icon Sign in for full access | Help icon Help
Advanced search

Pages: 1 ... 5 6 [7] 8 9 10
 61 
 on: March 05, 2024, 04:06:04 am 
Started by Francois G. - Last post by Barbara H.
I'll add some comments that skirt around the issue but might trigger something ...

1.
Quote
In the 4GL, I have used an ON IDLE action with a timeout of 3 seconds, but the Genero BDL manual says that I should not do this (the manual says that ON IDLE is intended for larger values such as 10 seconds).
Don't get too spooked about the warning, understand why the warning is there.  ON IDLE 3 can be thought of as the equivalent of a user pressing TAB or ENTER every 3 seconds.  That is every 3 seconds sending an action from the front-end to back-end, some processing (if any) occurring on the back end, and the update to the AUi Tree (if any) being returned.  If one process has an ON IDLE 3, chances are the impact on the system will barely be noticed, if all processes have an ON IDLE 3, these extra messages and processing will add up.  So that is what you have to watch out for. 

2. I did an Ask-Reuben on Genero being single threaded https://4js.com/ask-reuben/ig-127/ which may have some points relevant to this discussion.  If your program has some user input, how do you expect it to respond when the user is busy doing something.  So if you are looking for a callback function to be triggered, if your user is busy typing something, would you want that callback function triggered then?, hence the path of polling after an ON IDLE.  If your program is non-interactive then you are probably looking for a solution like on the server side with Web Services where your register the function to occur and then a method like com.WebServiceEngine.processServices blocks and then calls the appropriate function when something is received.

3. As I speculate in the article, for mobile we had a predefined action, ON ACTION notificationpushed that the Mobile host triggers when a notification is received for that which you have registered for Push Notifications.   http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_mobile_push_notifications.html  Conceivably gdc.exe or gbc.js or a web component could take on the role of the mobile O/S and register for and receive notifications and trigger the predefined action.

4. One final point, RabbitMQ (https://www.rabbitmq.com/devtools.html) , the AMPQ protocol (https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol geometry dash world) , etc these terms don't appear a lot in our support portal.  If there are developers out there that want to interact this way, are looking for a client library to use let your support contact know so that we can gauge the correct amount of interest.

Reuben


Useful!

 62 
 on: March 04, 2024, 10:08:09 am 
Started by Francois G. - Last post by potyn s.
I'll add some comments that skirt around the issue but might trigger something ...

1.
Quote
In the 4GL, I have used an ON IDLE action with a timeout of 3 seconds, but the Genero BDL manual says that I should not do this (the manual says that ON IDLE is intended for larger values such as 10 seconds).
Don't get too spooked about the warning, understand why the warning is there.  ON IDLE 3 can be thought of as the equivalent of a user pressing TAB or ENTER every 3 seconds.  That is every 3 seconds sending an action from the front-end to back-end, some processing (if any) occurring on the back end, and the update to the AUi Tree (if any) being returned.  If one process has an ON IDLE 3, chances are the impact on the system will barely be noticed, if all processes have an ON IDLE 3, these extra messages and processing will add up.  So that is what you have to watch out for. 

2. I did an Ask-Reuben on Genero being single threaded https://4js.com/ask-reuben/ig-127/ which may have some points relevant to this discussion.  If your program has some user input, how do you expect it to respond when the user is busy doing something.  So if you are looking for a callback function to be triggered, if your user is busy typing something, would you want that callback function triggered then?, hence the path of polling after an ON IDLE.  If your program is non-interactive then you are probably looking for a solution like on the server side with Web Services where your register the function to occur and then a method like com.WebServiceEngine.processServices blocks and then calls the appropriate function when something is received.

3. As I speculate in the article, for mobile we had a predefined action, ON ACTION notificationpushed that the Mobile host triggers when a notification is received for that which you have registered for Push Notifications.   http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_mobile_push_notifications.html  Conceivably gdc.exe or gbc.js or a web component could take on the role of the mobile O/S and register for and receive notifications and trigger the predefined action. drift boss

4. One final point, RabbitMQ (https://www.rabbitmq.com/devtools.html) , the AMPQ protocol (https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) , etc these terms don't appear a lot in our support portal.  If there are developers out there that want to interact this way, are looking for a client library to use let your support contact know so that we can gauge the correct amount of interest.

Reuben

 
I got it. Thx

 63 
 on: March 04, 2024, 09:39:22 am 
Started by Benjamin G. - Last post by Raelene S.

Quote
it's it possible to make a frontcall for calling a function from an external DLL under windows ?

There used to be a section on this in the GDC documentation under https://4js.com/online_documentation/fjs-gdc-3.20.16-manual-html/#gdc-topics/c_gdc_front_end_extensions_2.html basket random but it appears to have been removed in the 3.00 version of the docs, not sure why it was removed.

Goto the archive section of the website and find the 2.50 GDC documentation, and look for section labelled "Front End Extensions".  Effectively you have to create a wrapper for the dll you want to interact with.

Reuben


Very helpful. Thank you bro.

 64 
 on: February 29, 2024, 10:28:22 am 
Started by edmond y. - Last post by scene t.
has anyone tried connecting generos to amazon redshift database which is based on postgres?
Thanks


You can connect Genero to a PostgreSQL-based Amazon Redshift database. I used to do that.

 65 
 on: February 28, 2024, 10:44:38 am 
Started by Benjamin G. - Last post by potyn s.


Quote
it's it possible to make a frontcall for calling a function from an external DLL under windows ?

There used to be a section on this in the GDC documentation under https://4js.com/online_documentation/fjs-gdc-3.20.16-manual-html/#gdc-topics/c_gdc_front_end_extensions_2.htmlgeometry dash subzero but it appears to have been removed in the 3.00 version of the docs, not sure why it was removed.

Goto the archive section of the website and find the 2.50 GDC documentation, and look for section labelled "Front End Extensions".  Effectively you have to create a wrapper for the dll you want to interact with.

Reuben


I got it. Thx.

 66 
 on: February 28, 2024, 09:48:00 am 
Started by Susobh S. - Last post by screen w.
Hello Everyone,

We are looking forward to have a Multi Factor Authentication for our applications.
Has anyone implemented any kind of Multi Factor Authentication for Genero Web Applications?
I know we could build completely in genero but anyone implemented it using some third party provider using SSO(Open ID/SAML)?If so, which provider?

Susobh Sugathan


Some popular providers include Okta, Auth0, Ping Identity, OneLogin, and Azure Active Directory.

 67 
 on: February 27, 2024, 09:19:43 am 
Started by Benjamin G. - Last post by Sebastien F.
Hi,

This is not "return to simplicity" or "low code", as we try to sell it.

We should consider TTY attributes as decorations hints that end up as real CSS styles/colors, and my expectation is that the TTY colors could be interpreted differently, depending on the GBC theme used.

You should not have to adapt the attributes used in DIALOG.setCellAttributes() to the GBC theme: These should be adapted automatically and configurable with GBC customization. But I am not the expert for this and not sure it's possible.

Please contact the support to clarify this possibility.

Seb

 68 
 on: February 27, 2024, 08:58:18 am 
Started by Benjamin G. - Last post by Benjamin G.
... also note that i've put the "before dialog" in the display array but you know that is part of the DIALOG instruction

 69 
 on: February 27, 2024, 08:54:34 am 
Started by Benjamin G. - Last post by Benjamin G.
... forgot the black theme sample

 70 
 on: February 27, 2024, 08:53:33 am 
Started by Benjamin G. - Last post by Benjamin G.
Hi,

I'm agree with Seb. Using the setCellAttributes would be a better place if we could specify "rich" information (background color, textcolor , ...)
See my sample here, i need to find a cell attribute color that works for the "black theme" (text color is white) and "ligth theme" (text color is black)
Here is the code (note that cwcrLila and cwcrVert  colors are initialized with a different value depending the choosed theme, se code below)


    DISPLAY ARRAY oMrgprx.v TO sr_mrgprx.* ATTRIBUTES(KEEP CURRENT ROW=TRUE, FOCUSONFIELD)
      BEFORE DIALOG 
         CALL DIALOG.setArrayAttributes('sr_mrgprx'   ,oMrgprx.a)      BEFORE DISPLAY
      BEFORE ROW
        LET p = arr_curr()
        LET oMrgprx.a[p].ancdatprx01 = cwcrLila || ' REVERSE BOLD'
        LET oMrgprx.a[p].ancpxaref01 = cwcrLila || ' REVERSE BOLD'
        LET oMrgprx.a[p].ancpxvstd01 = cwcrLila || ' REVERSE BOLD'
        LET oMrgprx.a[p].ancpxvqte01 = cwcrLila || ' REVERSE BOLD'
        LET oMrgprx.a[p].ancqtemin01 = cwcrLila || ' REVERSE BOLD'
        LET oMrgprx.a[p].noudatprx01 = cwcrVert || ' REVERSE BOLD'
        LET oMrgprx.a[p].noupxaref01 = cwcrVert || ' REVERSE BOLD'
        LET oMrgprx.a[p].noupxvstd01 = cwcrVert || ' REVERSE BOLD'
        LET oMrgprx.a[p].noupxvqte01 = cwcrVert || ' REVERSE BOLD'
        LET oMrgprx.a[p].nouqtemin01 = cwcrVert || ' REVERSE BOLD'
      AFTER ROW
        LET oMrgprx.a[p].ancdatprx01 = ''
        LET oMrgprx.a[p].ancpxaref01 = ''
        LET oMrgprx.a[p].ancpxvstd01 = ''
        LET oMrgprx.a[p].ancpxvqte01 = ''
        LET oMrgprx.a[p].ancqtemin01 = ''
        LET oMrgprx.a[p].noudatprx01 = 'BOLD'
        LET oMrgprx.a[p].noupxaref01 = 'BOLD'
        LET oMrgprx.a[p].noupxvstd01 = 'BOLD'
        LET oMrgprx.a[p].noupxvqte01 = 'BOLD'
        LET oMrgprx.a[p].nouqtemin01 = 'BOLD'

---INIT COLORS ...

  CALL ui.Interface.frontCall("theme", "getCurrentTheme",[], [gbctheme])
  CALL ui.Interface.frontCall("standard", "feInfo", ["colorscheme"], [colorscheme])
  IF colorscheme = 'dark' OR gbctheme.getIndexOf('_dark',1) > 0 THEN
    CALL initColors_dark()  -- invertit color (#FFFFFF - base color)
  END IF


Pages: 1 ... 5 6 [7] 8 9 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines