Forum Replies Created

Page 20 of 21
  • Andreas Pfeiffer

    Administrator
    February 6, 2023 at 9:41 am in reply to: Easy way to send library WITH database?

    Hello Uwe,

    It is possible to store any binary information in the $userinfo of a class i.e.

    Say you want to show a problem that occurs in a certain remote form with a data grid and you need to have your data in a list to show this. You can do the following:

    1. Copy the remote form into a new library. You can do this using drag&drop.

    2. Put a breakpoint in your original library after the data have been loaded into the list variable.

    3. When the code stops at the breakpoint and the list is loaded add a line of code to copy the list into the $userinfo of the class that is in the other library:

    Do $libs.newLibrary.$classes.myRemoteForm.$userinfo.$assign(iDataList)

    Save class newLibrary.myRemoteForm

    Note that we do not want to store the list data into the class of the current library. The command “save class” ensures that the change is written back to the hard drive. Alternatively you could have left the class open in design mode and hit the “save” button to save the class.

    4. Finally comment out the code that loads the list in the remote form that is now in the new library and add a new line to it so that it copies the data from the $userinfo property of the class back into the list:

    Calculate iDataList as $cinst.$class().$userinfo

    You might need to add an empty remote task to make the remote form working in the new library. Also make sure to remove the line of code in your original library that copies the data over to the $userinfo property in the class of the other library.

    5. Test if the remote form runs now from within the new library and if you are able to reproduce the original problem there.

    I hope this helps!

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 20, 2022 at 8:32 am in reply to: Remove kill button from Forum entry form

    Hello Uwe,

    Thank you for reporting this issue. I have forwarded this to the web team. We will fix this.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 9, 2022 at 9:49 am in reply to: Contacts Web Application

    Hi Francesco,

    It might be that the label and the entry field is grouped. To get its properties just ungroup those, please.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 2, 2022 at 12:05 pm in reply to: $sessionPools

    Hello Franco,

    If using a session pool you can use a public method to determine the port and database name. The 6th argument of the $makepool method takes the name of the method which will be called for every session in the session pool.

    This method will then have a parameter of type item reference which points to the new session and you can then set its $port and any other session property.

    However nowadays I would not recommend using session pools because creating a new session to a database is very quick and does not take much time. So if you do a logon in the $construct of your remote task using a task variable you will have a session object as a task variable that can then be used whenever you need it to talk to the database. Since the task is encapsulated for every user it is save to do so. For example I have a $logon method in the remote task that is called from its $construct like this (tSessionObj is a task variable of type object, you can assign the subtype if you do not need to set this dynamically):

    # logon to PostgreSQL DB

    Do $extobjects.PGSQLDAM.$objects.PGSQLSESS.$new() Returns tSessionObj

    Do tSessionObj.$port.$assign(iniObj.$getSectionParam(‘DB’,’PORT’))

    Do tSessionObj.$database.$assign(iniObj.$getSectionParam(‘DB’,’DATABASE’))

    Do tSessionObj.$schema.$assign(iniObj.$getSectionParam(‘DB’,’SCHEMA’))

    Do tSessionObj.$logon(iniObj.$getSectionParam(‘DB’,’HOST’),iniObj.$getSectionParam(‘DB’,’USER’,iniObj),iniObj.$getSectionParam(‘DB’,’PASSWORD’)) Returns ok

    Quit method ok

    Note: the iniObj returns information from a text file.

    So in the $construct of your super table class you would do something like this:

    Do $cinst.$sessionobject.$assign(tSessionObj)

    Hope this helps.

    Best,

    Andreas 😀

  • Andreas Pfeiffer

    Administrator
    October 25, 2022 at 1:37 pm in reply to: Omnis Data Bridge Client-side connection management

    Hi Kon,

    I would not recommend running the ODB server on a laptop machine for exactly this reason. As it is a server it supposed to stay available for the clients.

    I hope this helps.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    October 24, 2022 at 2:25 pm in reply to: Omnis Data Bridge Client-side connection management

    Hello Kon,

    what Omnis version and what ODB version are you using?

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 30, 2022 at 11:19 am in reply to: Payload in $listen

    Franco,

    No worries. You have this documented here: https://www.omnis.net/developers/resources/onlinedocs/index.jsp?detail=Programming/09serv.html#notification-channels

    Have a great day!

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 30, 2022 at 6:55 am in reply to: Payload in $listen

    Hello Franco,

    Did you declare a parameter of type row in the $notify method? It should then have the payload as one of the values within that row.

    I hope this helps,

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 9, 2022 at 8:03 am in reply to: Toast Messages

    Hi Silvan,

    ok – I did not know that you are working on fat client windows. Sorry.

    You may want to use a timer object to achieve this. I would personally not use a toast message for this rather some kind of animation. There is also a sample app for this.

    Hope this helps.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 9, 2022 at 7:44 am in reply to: Toast Messages

    .. and finally you can have another toast message in your loadList method that will come last.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 9, 2022 at 7:38 am in reply to: Toast Messages

    Hi Silvan,

    Now I understand your requirement.

    This is something that you can achieve using an overlay. There is a sample library “JS Loading Overlay” in the samples section of your HUB.

    You can also achieve this using a toast message if you want:

    1. Put your code that loads the data into another method (not the $event method that you use to load the data)

    2. Make the $event method of your button that is used to load the data “client executed”. You can do this using the context menu onto the method name.

    3. Then the first line in your $event method after the on evClick will be to start the toast message. After that you would then call your server side method using the “Do method” command.

    I.E.

    On evClick

    Do $cinst.$clientcommand(‘showtoast’;row(‘loading’))

    Do method loadList

    So, since the $event method will now be executed on the client the toast message will appear first and then the data will be loaded on the Omnis server.

    I hope this makes sense.

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 9, 2022 at 6:47 am in reply to: Toast Messages

    Hello Silvan,

    The reason why this happens might be that you run the code server side. Omnis automatically synchronises all instance variables in that instance with the client (browser). In that moment it will also send any client command to the browser. So in a way you would need to think asynchronously when it come to communication with the client.

    What is the reason you want any other code after your message? Maybe I can help you finding a different approach to achieve what you want?

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    July 27, 2022 at 4:10 pm in reply to: Administrators please check this

    Hi Scotte,

    Thanks for letting us know. I have deleted this user from this forum. We are currently about to clean this up.

    Thanks again.

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 9, 2022 at 10:14 am in reply to: Contacts Web Application

    No worries.

    Have fun!

    Best,

    Andreas

Page 20 of 21