Skip to content

Build a Custom Distribution Channel


PLOSSYS Distribution Engine channels share one structure. Building a project-specific channel the same way keeps it consistent with the standard channels, refer to Channel Architecture.


Prerequisites


Design Goals

  • Do not add a new WantXxx parameter to enable or disable the channel. Use DistChannel_n instead. Channels stay easy to add, remove, or reorder this way, without changing the standard PLOSSYS Distribution Engine workflows.
  • Give the channel the same structure as the standard channels. Developers, PEs, and support can then orient themselves in an unfamiliar channel.

Build the Channel

  1. Add a user exit step at the beginning of the channel workflow. This is the project-specific hook, for example to prepare or filter the RLI for the channel.

  2. Add the standard channel behavior after the user exit step. It reads only the RLI lines marked with IS_DIST_FILE = Y, and delivers or stores the file at CurrFileName.

  3. If the channel produces its own result file, for example an archive confirmation, mark the result line with DIST_RESULT = Y and set DIST_RESULT_TYPE. A later channel, for example dpf4distribute.DistributeResultFile, can then distribute that result further.

  4. Register the new workflow module as a value for DistChannel_n in the job's DIST_CONFIG configuration file.


Select Files per Channel on Document Level

By default, every channel in the chain processes the same files. To send some documents through one channel and others through a different channel in the same job, add a project-specific workflow step before each channel. Clear IS_DIST_FILE for all documents first, then set it to Y only for the documents belonging to that channel, based on a project-specific RLI column.


Validate

  1. Configure a test job with the new channel in DIST_CONFIG.

  2. Trigger the job in SAP.

  3. Check that the new channel processes only the expected files.

  4. If the channel produces a result file, check that a following channel distributes it correctly.



Back to top