Calling External Classes

External classes act as placeholders for components outside your application. For example, they might represent a library or application. Alternatively, they might be a place holder for an unspecified, future inclusion. An external class has no stereotype.

Methods of External classes can be used to access entrypoints in MCP libraries. Methods of external classes are also equivalent to CALL logic command invocations in Enterprise Application Developer release 3.3. Refer to the Agile Business Suite Programming Reference Manual for more information on the migration of CALL commands in Agile Business Suite.

Migrated External classes use the built-in attribute Glb.Param to pass data to and from a called procedure. Glb.Param has a default size of 2000 characters and a maximum size of 99999 characters. The size of Glb.Param is entered using the Glb.Param Size Segment configuration property under the Runtime Options category.

For Algol style libraries, invoked from Agile Business Suite as external classes, the use of the SIZE/RESIZE intrinsic to manage the supplied string (ebcdic array) parameter is only supported if the calling LDL+ logic passes either Glb.Param or an attribute defined under a folder in the segment that conforms to the following rules:

Failure to adhere to the rules might result in an invalid operator runtime failure.

If the Algol library does not use the SIZE/RESIZE intrinsic against the passed string (ebcdic array) parameter, any user defined string variable/attribute might be passed as the parameter.

For MCP, AB Suite supports the following data types or combinations of the following data types for external method parameter:

Supported external method return types are Real, Integer, Boolean, and String.

The following table summarizes the features and capabilities of the CALL; logic command interface method.

Capability/Feature

Scope/Limitations

Host types

All

To other Systems

No (only shared access to common library)

To external systems

No (only shared access to common library)

Transaction Initiated by

System

Response from other system

Yes (can be achieved via a parameter or the return type of the method.)

Multithreading

Depends on your programming language (COBOL libraries are single threading)

External user program

Procedure name within the Library should exist at run time