Qorus Integration Engine®  5.1.22_git
Qorus Mappers

Mapper Introduction

See also
Implementing Mappers for more information

Qorus Mappers are high-level integration objects that providing a framework for runtime data transformations in Qorus interfaces.

Mapper configurations are loaded into the database with oload and also must be explicitly associated with workflows, services, and jobs to be used in interface code. This way, the system knows (and can display in the system UI) which mappers are associated with which interfaces.

When mappers are used at runtime, every mapper configuration generates a class descended from Mapper, and the basic configuration of Qorus mapper objects is based on the implementation of this base class (it's also possible to get an AbstractIterator object based on a mapper, but this is also based on the Mapper object generated by the mapper).

Mappers have the following high-level attributes:

  • mapperid: a unique ID for the mapper
  • name: the name of the mapper
  • version: the version of the mapper; multiple versions of a mapper can be present at any one time in the system, and interfaces must specify the mapper version that they use
  • patch: a patchlevel attribute that does not affect version compatibility
  • desc: a description of the mapper
  • author: the author of the mapper
  • parse_options: local parse options for the mapper
  • type: the type of mapper
  • options: a hash of mapper options, some mappers could require certain options
  • fields: a hash of mappings where the keys are output fields and the values describe how the output should be generated
  • library objects: a list of objects (functions, classes, and constants) that are imported into the mapper container Program

Mappers are exposed through the REST API at the following URI path: @/api/mappers.

The following permissions relate to mappers:

Mappers are also members of interface groups for access control purposes (mappers cannot be enabled or disabled).

Mapper Types

See also
Deprecated Mapper Module Developent

The following mapper types are delivered with Qorus (see Mapper Modules for information on adding new mapper types):

Mapper Modules

New mapper types can be added at runtime by implementing a mapper module and placing it in $OMQ_DIR/user/modules/ and adding the module's name to the qorus.mapper-modules system option.

Such a module will be loaded both in the client library and in the server to provide for custom mapper support; such modules then will create objects of new mapper types or of existing mapper types with default mappings, etc.

See also
Deprecated Mapper Module Developent for more information

Mapper API

The main mapper API is defined in the following classes:

The following APIs are imported into mapper program logic containers for backwards compatibility as well (Qore code only):

Qore Function Domain Availability Description
get_global_config_item_value() Mapper API M returns the value of the given global config item
get_global_config_item_value_with_default() Mapper API M returns the value of the given global config item or a default value
get_user_context_info() System Info W, S, J, M returns information about a user context
get_system_info() System Info W, S, J, M returns information about the system
get_value_map() Value Maps W, S, J, M retrieves a value mapping from a value map
prop_get() System Props W, S, J, M returns the value of the given system property key in the given domain or NOTHING if the system property does not exist