Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EDT:Support for IBM i"

Line 14: Line 14:
 
:When you include a '''using''' clause, the coded detail overrides any '''IBMiProgram''' annotation reference to the EGL deployment descriptor. If the '''using''' clause references a different deployment-descriptor entry, you still gain the performance benefits of using a pooled connection. However, the '''using''' clause might represent a connection that you define in your code; and in that case, you typically do not use a pooled connection, but rely on the AS400 connection object that is available in the JTOpen toolkit. <br>
 
:When you include a '''using''' clause, the coded detail overrides any '''IBMiProgram''' annotation reference to the EGL deployment descriptor. If the '''using''' clause references a different deployment-descriptor entry, you still gain the performance benefits of using a pooled connection. However, the '''using''' clause might represent a connection that you define in your code; and in that case, you typically do not use a pooled connection, but rely on the AS400 connection object that is available in the JTOpen toolkit. <br>
  
*The parameters of the EGL proxy function represent the parameters of the host program, and your call can pass simple data, as well as records and handlers. If a value is returned from the proxy function, the type of value is an EGL Int. (On IBM i, a returned value is possible from a service program but not from a called program.)
+
*The parameters of the EGL proxy function represent the parameters of the host program, and your call can pass simple data, as well as records and handlers. If a value is returned from the proxy function, the type of value is an EGL Int. (On IBM i, a return value is possible from a service program but not from a called program.)
  
 
<br>In general, a Rich UI application uses an asynchronous version of the '''call''' statement to get enterprise data from a service. In relation to an IBM i program, the application calls a public proxy function that is defined in an EGL Service type.
 
<br>In general, a Rich UI application uses an asynchronous version of the '''call''' statement to get enterprise data from a service. In relation to an IBM i program, the application calls a public proxy function that is defined in an EGL Service type.

Revision as of 13:36, 27 February 2012

As an EGL developer, you can access IBM i called programs, as well as procedures in IBM service programs.

Access to any of those host programs is by way of the JTOpen toolkit, which determines what program types are supported. For an overview of the toolkit, see the following web site: (JTOpen).

Your coding task has the following aspects:

  • You write an EGL proxy function for IBM i. The proxy function might be in an EGL Library, Service, Handler, or Program type. The function has no logic, and any logic you place there will be ignored. Instead, you write one or more annotations there to tell the EGL Java generator how to structure the runtime call.

    The main annotation is IBMiProgram. In most cases, that annotation references a resource binding in the EGL deployment descriptor. One runtime effect of referencing a resource binding is that you gain the performance benefits of using a connection from the AS400 connection pool.
  • When you write the EGL code that calls the function, you might access the proxy function and rely on the details provided there. Alternatively, you might do as follows:
  1. Code a variable that references a different resource binding or that specifies new detail.
  2. Refer to that variable in the using clause of the call statement.

When you include a using clause, the coded detail overrides any IBMiProgram annotation reference to the EGL deployment descriptor. If the using clause references a different deployment-descriptor entry, you still gain the performance benefits of using a pooled connection. However, the using clause might represent a connection that you define in your code; and in that case, you typically do not use a pooled connection, but rely on the AS400 connection object that is available in the JTOpen toolkit.
  • The parameters of the EGL proxy function represent the parameters of the host program, and your call can pass simple data, as well as records and handlers. If a value is returned from the proxy function, the type of value is an EGL Int. (On IBM i, a return value is possible from a service program but not from a called program.)


In general, a Rich UI application uses an asynchronous version of the call statement to get enterprise data from a service. In relation to an IBM i program, the application calls a public proxy function that is defined in an EGL Service type.

Back to the top