Version 9.7
 —  EntireX Adapter Installation and User's Guide  —

IDL Extraction from Integration Server

Integration Server services (e.g. flow services) can be called from an RPC client using an adapter listener. For the creation of a listener it is necessary to have a Software AG IDL file which describes the call interface (signature) of the Integration Server service.

This IDL file can be created automatically using the IDL Extractor for Integration Server, a component of the EntireX Workbench which reads a package from the Integration Server and generates a Software AG IDL file from all services which exist in the package. For details how to use the IDL Extractor for Integration Server, see the EntireX documentation.

As an alternative, you can create an IDL file from a specified subset of Integration Server services using a service from the WmEntireX package.

In this document we describe this alternative and give an overview of the data type mapping which is relevant for both approaches:


Using the Service pub.wmentirex.listener:generateIDLfromService

This service generates an IDL file for a given list of Integration Server services. For each service, a program in the IDL file is created. If the IDL file already exists, it is extended with the newly created program definitions. Duplicate definitions for the same program are possible. In this case, the IDL file has to be corrected manually. Note that this service creates/updates only the IDL file. Creating or updating a listener with the definitions of the IDL file has to be done with webMethods Integration Server Wrapper of the EntireX Workbench. The following parameters are relevant:

Input Parameters

serviceName String The full name of the Integration Server service (e.g. folder1.folder2:service). Multiple services can be specified using a semicolon (;) as delimiter.
fileName String The name of the IDL file. If a relative file name is specified, the base directory is equal to the directory of the Integration Server instance. An absolute file name such as /workspace/myproject/idl.idl can also be specified.
libraryName String The library name to be used in the IDL file. If the IDL file already exists, this parameter is ignored.
stringType String The IDL data type which is used for string data types. Possible values are AV, AVn, or An. This parameter is optional, default is AV.
language String The target language for the RPC clients. Possible values are COBOL, Natural, PL/I, or Other.
Output Parameters

result String Either a success message if the generation was successful (which includes the full pathname of the IDL file) or an error message.

Top of page

Integration Server Data Types to IDL Mapping

The signature of an Integration Server service specifies the data types for the parameters of the service. There are three data types: String, Record and Object. Parameters of type String are mapped to an IDL alphanumeric data type, parameters of type Record to IDL groups. Parameters of type Object cannot be mapped to an IDL data type and thus result in an error. If such an error occurs, the IDL program which contains the invalid data type mapping is written to the IDL file, however, all lines are comments.

Starting with version 9.7, a parameter of an EntireX Adapter service of type Object is mapped to an IDL binary data type. Depending on the target language, it is either mapped to BV (for Natural and Other) or to BV256 (for COBOL and PL/I).

All parameters of type String are mapped to an IDL alphanumeric data type, available as variable (AV, AVn) or fixed (An) length. Which alphanumeric type is used is specified in the wizard page of the IDL Extractor for Integration Server or as a parameter of the generation service.

Parameters of type String may have an associated context type which is specified in the constraints of the parameter’s properties. This content type influences the data type mapping. The content type was already considered in previous versions of the EntireX Adapter (version 9.6 or lower). However, its usage was not documented and the mapping was not yet complete. The handling of the content type has been reworked with version 9.7. The following table shows both the new and the old mapping. The new mapping is different from the old one. If you want to use the old mapping with version 9.7 or higher, you have to set the extended setting watt.com.softwareag.entirex.wmadapter.extractor.contenttype.handling.pre97=true (in the Integration Server administration page under Settings > Extended).

Integration Server Content Type IDL Data Type - Adapter version 9.7 or higher IDL Data Type - Adapter version 9.6 or lower
boolean L L
decimal Nx, Nx.y or String1 N10.2
float F4 F4
double F8 F8
Date String2 D
dateTime String2 T
base64Binary String2 BV
byte I1 I1
unsignedByte NU3 I1
short I2 I2
unsignedShort NU5 I2
int I4 I4
unsignedInt NU10 I4
long N19 String2
unsignedLong NU20 String2
integer N29 String2
positiveInteger NU29 String2
nonPositiveInteger N29 String2
negativeInteger N29 String2
nonNegativeInteger NU29 String2
string String3 String2
all others String2 String2

Notes:

  1. If the content type specifies a total number of digits and a number of fraction digits, then Nx.y is used. If only a total number of digits is specified, then Nx is used. If no total number of digits is specified, or the total number exceeds the maximum allowed value, or the number of fraction digits exceeds the maximum allowed value, then a string according to 2) is used. The maximum allowed value for the total number of digits is 29, for COBOL it is 31. The maximum allowed value for the number of fraction digits is 7, for COBOL it is 31 and for Natural it is 29.
  2. Depending on what is specified in the wizard page of the IDL Extractor for Integration Server or as a parameter of the generation service, the IDL data type AV, AVn or An is used.
  3. If the content type specifies a length len, then Alen is used. If the content type specifies a maximum length max, then AVmax or Amax is used, see 2) for the choice between A versus Av. If neither length nor maximum length is specified, the choice is the same as in 2).

Top of page