Similar to inbound processing, each data format to which Platform publishes its outbound data should be defined as an Outbound Interface. Each Outbound Interface is associated with a Generator which is used to produce data in the given format so it can be enqueued for a client.
As with Inbound Interfaces, Platform auto-generates an Outbound for each custom model in the SPT. We will focus however on Custom Outbound Interfaces.
The format portion of the Outbound Interface is identical to the Inbound; one specifies the fields which are being published in the interface with their data type, format, etc.
As far as generating data for these interfaces, there are three primary scenarios covered by the generation framework:
Net-change – queries for all data which has been modified since the last time data was generated for this interface
ID-based – queries for all data which matches a given set of surrogate keys
ModelJAXB-based – directly converts in-memory JAXB objects (from a workflow, for example) into interface data
Three generator types are supported:
Model-based – selects fields from a single ModelType. Requires no coding and can be done entirely through Studio
SqlDef-based – allows one to specify an arbitrary SQL query to fetch the data
EDI – a combination of SqlDef and Model where the SQL is used to retrieve a list of Models, which are then passed on to the EDIMapper to generate the EDI
Regardless of the generator type, outbound messages are created and enqueued using the class
com.transcendsys.platform.integ.outbound.OutboundInterfaceApi. This provides methods that can be called from a custom Java activity in a Studio workflow. It is generally expected that action-based workflows will call SysId- or ModelJaxb-based APIs, and time-based workflows will call NetChange-based APIs.