Subscribe for automatic updates: RSS icon RSS

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

Pages: [1] 2 3 ... 10
 1 
 on: Today at 11:48:27 am 
Started by Christine R. - Last post by Christine R.
[ANNOUNCE] Genero Enterprise 3.10 - GAS Maintenance Release


 Genero Enterprise 3.10 - Genero Application  Server
 Maintenance Release


Four Js is pleased to announce a Maintenance Release of Genero Application Server 3.10.16.

This version includes the following fixes: https://4js.com/support/issue/GAS/3.10.16

The version is now downloadable from the web site : http://www.4js.com/download/products/.

Note : All Four Js Genero customers under maintenance have free access to the new release.

Best regards,

Four Js Development Tools

 2 
 on: December 02, 2020, 10:35:39 pm 
Started by Anthony K. - Last post by Anthony K.
Hello!

We looking for an experienced Genero developer to lead our development efforts. If you are looking for an exciting challenge, have an aptitude for mentoring junior developers, and are interested in making a positive impact in communities all around the US by building software used by public health agencies (yes, even making an impact on COVID-19 response!), then please check out the job posting below.

https://harriscomputer.wd3.myworkdayjobs.com/1/job/Office---Decatur/Software-Development-Team-Lead_R0009516

 3 
 on: December 02, 2020, 10:02:11 am 
Started by Reuben B. - Last post by Leo S.
I wonder if Leos solution suffers the same fate as the existing base.MessageServer class http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_ClassMessageServer.html in that the child program has to have a dialog open with that ON ACTION at the time of sending. 
Reuben , it wouldn't be exactly the same fate. For example the recent "notificationpushed" and "cordovacallback" actions don't necessarily require that a dialog having this action is actually active and on screen. Instead those actions are triggered also later on if the program enters a dialog having this action (internally the client buffers the action until the wanted dialog appears..or it stays forever in the buffer. Duplicates are eliminated btw.). The same mechanism could be done for the planned notifyChildren frontcall. It isn't the case for base.MessageServer: the VM side handles this (but it could apply the same rules btw).

I wonder if the better solution is to mimic what happens with Push Notifications http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_mobile_push_notifications.html where the recipient has to explicitly ask the message server if there are any messages for them.  If so that might require a solution where we have our own equivalent of FCM/APN where the Push Service / Push Provider / Token DB / Token Maintainer are another provided service in FGLDIR/web_utilties/...
I don't see much difference compared to poll in the database if something relevant happened, except that you have to maintain an additional machinery.
All you want is a reliable trigger in the sense of the notificationpushed action.

Regards, Leo



 4 
 on: December 02, 2020, 12:13:16 am 
Started by Reuben B. - Last post by Reuben B.
Snorri,

I wonder if Leos solution suffers the same fate as the existing base.MessageServer class http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_ClassMessageServer.html in that the child program has to have a dialog open with that ON ACTION at the time of sending. 

I wonder if the better solution is to mimic what happens with Push Notifications http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_mobile_push_notifications.html where the recipient has to explicitly ask the message server if there are any messages for them.  If so that might require a solution where we have our own equivalent of FCM/APN where the Push Service / Push Provider / Token DB / Token Maintainer are another provided service in FGLDIR/web_utilties/... For parent/child communication it would just require a few nuances such as the parent registering first before it launches children, and passing a token to its children and the children registering with this token.

Reuben


 5 
 on: December 01, 2020, 06:45:23 pm 
Started by Reuben B. - Last post by Snorri B.
Thanks Leo.

I think this will be sufficient! Thanks.

Regards,
-Snorri

 6 
 on: December 01, 2020, 06:38:51 pm 
Started by Reuben B. - Last post by Leo S.
@David, thank you for the explanations.
I think your use case it pretty special (and I still don't get if your XML thingy is written in Genero or in something else).
I doubt that we are ever going to make variables and functions accessible by name in the reflection API because it undermines the type safety of the system.
Looking at other reflection systems like Java or Google Go: you simply can't do that.
It's also a problem of variable scopes: global, modal , local.
It should be possible however to have a DICTIONARY of reflect.Value and then you might register your wanted variable set by adding the variable names you want to expose in that dictionary.
Currently : You can't expose simple primitives that way , only RECORDs.
Please check in the upcoming early access program about your possibilities.
 
Regards, Leo

 7 
 on: December 01, 2020, 06:23:25 pm 
Started by Reuben B. - Last post by Leo S.
@Snorri Hi Snorri,I think it would be relatively easy in the GDC/GBC clients to implement a new frontcall "notifyChildren" with an action name as an additional parameter and pass this action to all 4GL apps in this client which were started as direct children with "RUN WITHOUT WAITING" (Need to think a while if that works also in a chain of RUN/RUN WITHOUT WAITING).
So in the  master program  one could write

Code:
CALL ui.Interface.frontCall("standard","notifyChildren",["new_order"],[number_of_children_caught_with_this_action])
and in the child program
Code:
ON ACTION new_order
   ...
Let me know if that would be sufficient for you and I create requests for GBC/GDC.
Obviously it won't work for all mobile configurations yet due to the current RUN WITHOUT WAITING limitations.
Regards, Leo

 8 
 on: November 30, 2020, 07:39:15 pm 
Started by Reuben B. - Last post by David H.
Hi again,

To be useful in our scenario we'd really need a by name option as that is all we know, something like reflect.Value.valueByNameOf("variablename"). If the "variable" does not exist then return NULL.

Things we can do currently with our rather crude expression language include:-

1. Get values of variables by name, i.e. {_REEN.reen_key_} = reen global record, reen_key field.
2. Combine multiple variable (concatentation)
3. Chop string variables to a given length.
4. Extract parts of a string variables (from position, to position etc).
5. Format variables (uppercase, lowercase, number, datetime, date formats etc)
6. Create Simple expressions (i.e. if condition then something else something else)
7. Get values by executing SQL statements.
8. Map variables from one value to another (via lookup tables)
9. Maintain multiple counters (get current value, next value etc like sequences)
10. Define basic conditions (AND OR NOT < <- > >= = <> etc)
11. Pass variables as parameters.
12. Use SQL expressions to loop through multiple records and pass that data as parameters (like a record) that can be used in expressions/conditions etc.
13. Get environment variables.
14. Get resource (FGLPROFILE) variables.
15. Call BDL functions to get values.

We are basically mapping data from within our systems into the format another system requires. Some data just goes as is, other data is changed from one format to another or is perhaps conditional depending on other data etc. Sometimes additional data needs to be derived/supplemented to enrich our rather basic data, so the above allows us to define all this outside of the application in configuration files (we use XML), that can vary from one requirement to another and from one customer to another, without having to make any application changes.

Sorry its not easy to explain in a post!

Regards,

David


 

 9 
 on: November 30, 2020, 05:47:35 pm 
Started by Reuben B. - Last post by Snorri B.
Sorry for the late question, but is something being considered for vNext that would solve this issue?
https://forum.4js.com/fjs_forum/index.php?topic=1398.0

Best regs,
-Snorri

 10 
 on: November 28, 2020, 01:03:47 pm 
Started by Simon B. - Last post by Susobh S.
Hi Simon,

Upon looking through the given URL and the developer docs, seem like they don't provide the OpenAPI specification, Instead they provide their own API index.
Thus I believe you cannot use the fglrestful for generating the client stubs. Will need to write the client code using the com.HTTPRequest methods.
http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_gws_ComHTTPRequest_methods.html

com.HTTPRequest has all the functions that you want.


Thanks And Regards
Susobh Sugathan


Pages: [1] 2 3 ... 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines