Qorus Integration Engine®
5.0.12_git
|
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 mappername:
the name of the mapperversion:
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 usepatch:
a patchlevel attribute that does not affect version compatibilitydesc:
a description of the mapperauthor:
the author of the mapperparse_options:
local parse options for the mappertype:
the type of mapperoptions:
a hash of mapper options, some mappers could require certain optionsfields:
a hash of mappings where the keys are output fields and the values describe how the output should be generatedlibrary
objects: a list of objects (functions, classes, and constants) that are imported into the mapper container ProgramMappers are exposed through the REST API at the following URI path: @/api/mappers.
The following permissions relate to mappers:
The following mapper types are delivered with Qorus (see Mapper Modules for information on adding new mapper types):
"InboundTableMapper"
: provides a OMQ::QorusInboundTableMapper object at runtime"Mapper"
: provides a Mapper::Mapper object at runtimeNew 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.
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 |