STEP Execution
Environment-dependent parameters
Since version 3.19.0, passwords and other environment-dependent parameters are stored in a properties file directly on the STEP server file system. This way, OIEP export and imports across environments and resetting environments from another environment's database dump won't erase environment-dependent parameters.
In order to configure the parameters, you need to connect to the Stibo SFTP for your STEP environment, then create the following directory : /shared/customer-config/c4i/credentials, then the following file inside this directory c4i.properties.
This properties file will centralize all the environment-dependent data, with the following format :
myConnection.host=myHost
myConnection.username=username
myConnection.password=password
Then you can reference it in the C4i extension configuration parameter "Connection name" or through the connection key for Composite.
The needed parameters for each extension are listed in the "Configuration" section.
Additionally, you can encode the password using AES (for example with https://emn178.github.io/online-tools/aes/encrypt/. You can leave the default parameters except for setting "Output encoding = Base64").
Then you will need to set the masterPassword property so C4i can decode the password properly.
OIEP Delivery Plugin
Once the needed Companion for integration STEP extension is installed on your STEP system, you can configure your OIEP Delivery Plugin :

The parameters for each extension are described in the Configuration section.
Export from Web UI
It is possible to use Companion for integration to generate complex Excel exports (such as FAB-DIS) directly from STEP WebUI.

This is done using a workflow, workflow variables and a business rule plugin:
- create a new objet type that will be pushed onto the workflow
- create a new asset type that will hold the resulting file
- create a workflow and a state with the transitions
bgp.succeededandbgp.failed

- add the workflow variables
AssetIdandBGPIdAssetIdis the STEP asset that will hold the generated fileBGPIdis used to retrieve the exported STEPXML file
- add a business action for the on entry of this state to start the export from STEP
var parameters = new com.stibo.exportservices.descriptor.ExportServiceDescriptor.Parameter();
parameters.configurationID = exportConfigId;
parameters.nodeURLs = nodeUrls;
var bgp = currentTask
.startBackgroundProcess(
com.stibo.exportservices.descriptor.ExportServiceDescriptor,
parameters,
"Started from Workflow");
workflowInstance.setSimpleVariable("AssetId", exportPortalAssetId);
workflowInstance.setSimpleVariable("BGPId", bgp.getID());
where:
exportConfigId: the export configuration ID to use (STEPXML)
exportPortalAssetId: the asset ID that will hold the generated file, can be JSON, EXCEL or CSV
nodeurls: an array of object STEP URLs to export, they can be retrieved from the list of selected objects in the WebUI (WebUIBindContext)
- create a business action for the on entry of the state pointed by transition
bgp.succeededto start the conversion
<BusinessPlugin BusinessRulePluginID="fr.cantor.c4i.C4IFile">
<Parameters>
<Parameter ID="assetVariableID" Type="java.lang.String">AssetId</Parameter>
<Parameter ID="bgpVariableID" Type="java.lang.String">BGPId</Parameter>
<Parameter ID="configurationAsset" Type="java.lang.String">c4i.yaml</Parameter>
<Parameter ID="includeEmptyTabs" Type="java.lang.String">false</Parameter>
<Parameter ID="licenseAsset" Type="java.lang.String">c4i.license</Parameter>
<Parameter ID="outputFormat" Type="java.lang.String">EXCEL</Parameter>
<Parameter ID="configType">STATIC</Parameter>
</Parameters>
</BusinessPlugin>
where
c4i.yaml: the companion for integration YAML asset ID
c4i.license: the companion for integration license asset ID
- add a button in the WebUI that trigger a business action creating a new objet and push it in the workflow

- the resulting file will be uploaded onto
AssetId, it may be a text file if an error occurs - for Excel files, a template must be created in STEP as an asset of type
C4I-TemplateTypeand approved in order to be available by the plugin- for instance the following YAML file
- Product:
products/Tech. Att. per Product[Product STEP ID]:
- ../../@ID: Product STEP ID
- ../../Name/text(): Name
- ./@AttributeID: Att Tech ID
- normalize-space(c4i:if(local-name()='Value', concat(text(), " ", c4i:resolveUnitLabel(string(@UnitID))), c4i:join(Value/text(), "|"))): Value
makes reference to the template products.xlsx, the sheet Tech. Att. per Product and the columns with header Product STEP ID, Name, Att Tech ID and Value.



Empty result output
By default, when C4I does not produce an output, no content is uploaded to the asset.
If you wish to have a default content uploaded to the asset when no output is produced, the parameter emptyOutputAsset allows you to specify the ID of an asset whose content will be uploaded into the resulting asset.
Dynamic configuration asset
To supply the YAML configuration asset, two methods can be used :
- With the parameter
configTypeset to "STATIC", specify the ID of the asset in the parameterconfigurationAsset - With the parameter
configTypeset to "DYNAMIC", specify the ID of a workflow variable in the parameterconfigurationAsset- During the execution, C4I will fetch the ID of the configuration asset from this workflow variable
- This workflow variable needs to be dynamically set before running the export