The definition of the output ports of the component. It's an array of objects.
Components can have zero or more output ports. Each output port has a name and optionally an array options that defines the structure of the message that this output port emits. Without the options object, the user won't be able to see the possible variables they can use in the other connected components. For example, a component connected to the weather output port of our GetCurrentWeather component can see the following variables in the variables picker:
An example of outPorts definition can look like this:
The definition is similar to the source source of properties. When used for the output port definition, it allows defining the output port schema dynamically.
There is one difference though. When defined in the output port, the source definition can reference both component properties and input fields, while the properties source definition can only hold references to other properties' values.
An example is a Google Spreadsheet component UpdatedRow. The output port options of this component consist of the column names in the spreadsheet. But that is specific to the selected Spreadsheet/Worksheet combination. Therefore it has to be defined dynamically.
Here is an example of the UpdatedRow output port definition.
{"outPorts": [ {"name":"out","source": {// We will call another component to construct the output port// options, in this case, the GetRows component"url":"/component/appmixer/google/spreadsheets/GetRows?outPort=out",// Every Appmixer component can have 'properties' and input ports,// the 'data' sections is used to create the input data object // for the component"data": {// in this particular case, the GetRows component has an// optional property called 'generateOutputPortOptions', we// will pass that property with the value 'true'. The GetRows// component will use this property to change its return value// and instead of returning rows from Worksheet, it will// return the 'options' array."properties": {"generateOutputPortOptions":true },// the GetRows component expects the Spreadsheet ID and// Worksheet ID as part of the message at its input port// called 'in'. The UpdatedRow component is a trigger, it// does not have an input port, but it has the same options like// 'allAtOnce', 'withHeaders', ... and since it does not have// an input port, it has these options defined in the// 'properties' section. The next 'messages' section is used// to construct an input port object for the GetRows component.// It copies the user defined properties from the UpdatedRow.// Appmixer will replace these with the actual values before// calling the GetRows component."messages": {"in/sheetId":"properties/sheetId","in/worksheetId":"properties/worksheetId","in/allAtOnce":"properties/allAtOnce","in/withHeaders":"properties/withHeaders","in/rowFormat":"properties/rowFormat" } } } } ]}
outPort.maxConnections
Set the maximum number of outgoing links that can exist from the output port. The maximum number of connections is infinite by default but in some applications, it might be desirable to set a limit on this, usually 1. The Appmixer Designer UI will not allow the user to connect more than maxConnections links from the output port.