Intents
Disclaimer: The Intent functionality described in this Article is only available for Output Organizer advanced.
With intents, you can manipulate the behaviour of Output Organizer depending on the workflow you are using it in. Workflows can give additional information in form of intents to an API call or a redirect to the application. These intents, as the name implies, predefine the intent or the goal of the current workflow step. The applications can then adjust predefined configuration options to reach the desired goal without explicitly setting individual values. In the following article you can learn what intents are available in Output Organizer and how to use them.
Export Intent
This intent can override the default export behaviour. The default export process combines all output documents into a single downloadable PDF file. With an export intent you can change this behaviour to trigger another job when the user decides to trigger the export process. To transport your intention you can add a URL parameter to the Output Organizer URL: If you start with an empty collection:
https://output-organizer.levigo.de?export-intent=<custom-job-template>
or if you have an already existing collection:
https://output-organizer.levigo.de/view/<collection-id>?export-intent=<custom-job-template>
The custom-job-template placeholder for the export-intent parameter can define a Jadice Flow job template containing one or multiple steps of workers.
To define your template and make it available in your deployment.
Preprocessing Intent
The Preprocessing Intent is used to perform universal modifications on new elements, before they are added to a collection.
Use cases for such Intents are conversions, scaling or watermarks.
Similar to Export Intents, preprocessing intents are passed when opening a collection using:
https://output-organizer.levigo.de?preprocessing-intent=flow:<custom-job-template>
or if you have an already existing collection:
https://output-organizer.levigo.de/view/<collection-id>?preprocessing-intent=flow:<custom-job-template>
When using the REST API, you can pass an intent url parameter to trigger preprocessing.
This parameter is available on the following endpoints.
Creating new collections:
POST: https://output-organizer.levigo.de/api/v1/collections?intents=flow:<custom-job-template>
Updating collections:
PUT: https://output-organizer.levigo.de/api/v1/collections/<collection-id>?intents=flow:<custom-job-template>
Adding elements:
POST: https://output-organizer.levigo.de/api/v1/collections/<collection-id>/elements?intents=flow:<custom-job-template>
Updating elements:
PUT: https://output-organizer.levigo.de/api/v1/collections/<collection-id>/elements/<element-id>?intents=flow:<custom-job-template>
The custom-job-template placeholder for the preprocessing-intent parameter can define a Jadice Flow job template. These job templates can preform various tasks using a chain of workers.
When USING the REST API and the intents the template name has to be prefixed with flow:.
To define your template and make it available in your deployment.
Configuration
You need to add two configuration files to your deployment:
- workers.yamlcontains a definition of available workers and their configuration.
 As an example the default configuration looks like this and defines a single worker named- fusionCollectionExport:- jadice-flow.workers:
 workerDefinitions:
 - workerName: "fusionCollectionExport"
 description: "Creates a single PDF export for a fusion collection"
 processorClass: "com.jadice.flow.controller.server.processor.RemoteItemProcessor"
 workerURL: "http://jf-worker-topdf"
 infoTags:
 - "ITEM_BASED"
 - "IMAGE_PROCESSING"
 - "REMOTE"
 workerParameters:
 - name: "pdfaConformanceLevel"
 type: "com.jadice.flow.worker.topdf.settings.Conformance"
 subTypes: null
 value: "PDF/A 2b"
 description: "PDF-A conformance level"
 - name: "isCollection"
 type: "java.lang.String"
 subTypes: null
 value: "\"true\""
 description: "PDF export settings"
 - name: "processingStepSettings"
 type: "com.jadice.flow.worker.topdf.settings.ProcessingStepSettingsDTO"
 subTypes: null
 value: "{\"repackingAllowed\":false,\"genericProcessingAllowed\":true,\"rasterizationAllowed\"\
 :true}"
 description: "PDF export settings"
 - name: "pdfStructureReaderSettings"
 type: "com.jadice.flow.worker.topdf.settings.PDFStructureReaderSettingsDTO"
 subTypes: null
 value: "{\"readStrategy\":null}"
 description: "PDF reader settings. LENIENT-Mode enables to read some documents\
 \ with structural defects"
 - name: "outputMode"
 type: "com.jadice.flow.worker.topdf.settings.OutputMode"
 subTypes: null
 value: "\"JOINED\""
 description: "PDF export output mode. Generate one stream per page or join all\
 \ incoming documents together."
 - name: "modcaReaderSettings"
 type: "com.jadice.flow.worker.topdf.settings.ModcaReaderSettingsDTO"
 subTypes: null
 value: "{\"fontMode\":\"FocaRasterShape\"}"
 description: "Modca reader settings"
 - name: "baseReshapeSettings"
 type: "com.jadice.flow.worker.topdf.settings.BaseReshapeSettingsDTO"
 subTypes: null
 value: "{\"pageSelection\":null,\"imageRepackingAllowed\":true,\"imageDownsamplingResolutionPPI\"\
 :0.0}"
 description: "Base reshape settings"
 - name: "validationSettings"
 type: "com.jadice.flow.worker.topdf.settings.ValidationSettingsDTO"
 subTypes: null
 value: "{\"performValidation\":false,\"validationMode\":\"PAGE_COUNT_AND_HASH\"\
 ,\"validationModeFailureAction\":\"FAIL\"}"
 description: "Validation settings"
- jobtemplates.yamlcontains a definition of available job templates which contain the process steps and refer to the workers defined above.
 As an example the default configuration looks like this and defines a single job named- fusionCollectionExport:
 jadice-flow.jobs:
   jobTemplates:
     - jobName: "fusionCollectionExport"
       description: "This worker exports document(s) and publishes them to the configured export target(s)."
       properties: { }
       enabled: true
       stepTemplates:
         - stepName: "fusionCollectionExport"
           workerDefinitionName: "fusionCollectionExport"
           inputMimeTypes: [ ]
           inputFilterJson: null
           expectsNewPartResult: true
           markSrcAsMetaOnResult: true
           parameters:
             - name: "pdfaConformanceLevel"
               type: "com.jadice.flow.worker.topdf.settings.Conformance"
               subTypes: null
               value: "\"PDFA2b\""
               description: "PDF-A conformance level"
       jobFlow:
         - from: null
           "on": "*"
           to: "fusionCollectionExport"
For more information about workers and job templates please refer to the Jadice Flow documentation here.
To add these files to your deployment see.