Calling External Libraries in MCP

When an external library method is called from an AB Suite MCP application, the string parameter is passed by using a re-indexed descriptor for efficiency reasons. However, when the parameter is GLB.PARAM, the parameter is passed without re-indexing.

The re-indexing presents a problem only when the called library method uses the ALGOL SIZE intrinsic on the passed parameter, resulting in the failure of logic at runtime.

In case more than one string parameter is passed to an MCP library and this library invokes the SIZE intrinsic on one or more string parameters, there must be a way to handle it, similar to GLB.PARAM.

To overcome this issue, the AB Suite MCP runtime makes it possible to define one or more non-persistent segment attributes (similar to defining GSD blocks) with specific properties for use as string parameters. The properties are as follows:

If a non-persistent segment attribute is defined in the way described above, its attribute can be used to pass a string parameter to an MCP library method without any descriptor re-indexing.