Was this helpful?
Non-interactive 4GL Procedures
For a 4GL procedure to be callable remotely, it must be non-interactive. This means that the procedure:
Must not attempt to call, open, or go to any frames
Must not post any events or wait for any events
Must not invoke any method that would wait for any window system event, user event, or database event
The following limitations exist for procedures called via Call4GL(), they do not exist when calling procedures via the JsonRpcRequest():
There are some limitations on the data types of parameters that can be passed through this interface, but that does not preclude calling 4GL procedures that have additional parameters not used through this interface.
The 4GL procedure may be declared with a return value, but the OpenROAD Server interface ignores that return value. If you need that return value, you can add a ByRef parameter to the procedure signature as an alternative to using the built-in return value.
The data passed into and returned from the 4GL procedure must be strictly hierarchical. It cannot contain circular references or multiple references to the same object instance.
The 4GL procedure must not change the class of an object that is passed with ByRef. This includes array rows and other object instances.
Last modified date: 12/20/2023