CompanionCompanion
Companion for Delivery
Companion for Business
Companion for Integration
Contact us
Companion for Delivery
Companion for Business
Companion for Integration
Contact us
  • Companion for Integration

    • Introduction
    • Getting Started
    • Configuration
    • Excel templating
    • How it works
  • YAML Configuration

    • Principles
    • Syntax
    • Validation
  • Custom Functions

    • Summary
    • arrayToJSON
    • bool
    • concatValueAndUnit
    • convertUnit
    • currentContextId
    • exportTime
    • eval
    • firstNonEmpty
    • getContextName
    • getEvents
    • getLastEventTime
    • getReferencesByAttributeGroup
    • getStoredValue
    • getWorkspaceId
    • hash
    • hasStoreKey
    • if
    • integer
    • join
    • mergeInheritedValues
    • multiValuesToJSON
    • number
    • nodeList
    • order
    • resolveUnitLabel
    • serializeAssetPushLocationsToJSON
    • serializeAttributeLinksToJSON
    • serializeContextReferenceToJSON
    • serializeContextReferencesToJSON
    • serializeContextValuesToJSON
    • serializeDataContainerToJSON
    • serializeDataContainersToJSON
    • serializeListOfValueValuesToJSON
    • serializeReferencesToJSON
    • serializeReferenceToJSON
    • serializeValuesToJSON
    • store
    • toXML
    • uppercase
  • Execution

    • Summary
    • Composite
    • From STEP
    • Standalone
    • Performance statistics
  • Configuration

    • ActiveMQ extension
    • Amazon AWS extension (SNS, SQS, Kinesis, S3)
    • ElasticSearch/OpenSearch extension
    • File extension (Excel, CSV, JSON, XML, JSONL, XMLL)
    • Kafka extension
    • Kafka Core extension
    • MongoDB/Cosmos DB extension
    • SQL extension
    • REST extension
    • Google Pub/Sub extension
  • c4i SaaS

    • Introduction
    • Managing jobs
    • Managing executions
    • Managing users
    • Changelog
  • Changelog

    • Core features changelog
    • ActiveMQ extension changelog
    • Amazon AWS extension changelog
    • Composite extension changelog
    • ElasticSearch extension changelog
    • File extension changelog
    • Kafka extension changelog
    • Kafka Core extension changelog
    • MongoDB/Cosmos DB extension changelog
    • SQL extension changelog
    • REST extension changelog
    • Google Pub/Sub extension changelog

Composite mode

Composite

Companion for integration offers the possibility to process the same XML file once with multiple outputs with the Composite extensions.

To configure the Composite extension, an asset of type C4I-CompositeConfigType is required.

This asset will contain a .properties file indicating how to configure each extension.

The mandatory properties for each extension are described under this section.

The extensions are configured with the prefix extensions.[#extension].

Each extension needs at least the following property : configAssetId to indicate the ID of the asset containing the mappings.

# Extension 1
extensions.[0].pluginId=...
extensions.[0].configAssetId=C4I-Config1
...
# Extension 2
extensions.[1].pluginId=...
extensions.[1].configAssetId=C4I-Config2
...

Where pluginId can be one of: fr.cantor.c4i.SQLDelivery, fr.cantor.c4i.MongoDBDelivery, fr.cantor.c4i.ActiveMQDelivery, fr.cantor.c4i.FileDelivery, fr.cantor.c4i.RESTDelivery, fr.cantor.c4i.KafkaDelivery, fr.cantor.c4i.ElasticSearchDelivery, fr.cantor.c4i.AWSDelivery or fr.cantor.c4i.PubSubDelivery. Multiple extensions of the same pluginId can be configured in a single properties file.

Multiple extensions can use the same mappings asset.

A maximum of 8 plugins can be configured in a single properties file.

The passwords to connect to the target databases are never stored in the properties file but rely on the standard password feature for configuring STEP plugins.

Variables

Additional properties defined in the .properties file can be accessed directly in the YAML configuration file.

For exemple, using the following .properties file :

# Extensions configuration 
...

# Custom variables
classificationId=TestClassification

And the following YAML file :

Product[ClassificationReference/@ClassificationID=$classificationId]:
  product[id]:
    - ./@ID: id

Will filter out products that are not linked to the chosen classification.

Last Updated: 11/25/25, 10:07 AM
Prev
Summary
Next
From STEP