How Messages are Reported

Messages can are categorized into three types: information, warnings and errors. The component places all messages in the <Messages> section of the output payload.

Note: SunSystems status bar messages are not detected by SSC.

Message References

<Message Level="error" Reference="1">

The type of message is indicated in the Level; in this case it is an error. Each message is given a reference number. If the error is element-related, for example a validation error, the reference refers to the element in the payload record, otherwise the reference refers to the particular payload record.

Message Text

This is followed by the message text in the <UserText> element:

<UserText>2nd Base Currency must be posted. See Business Setup.</UserText>

More than one message for a payload record may be generated.

The amount of information presented in error messages is controlled by setting values within the <ErrorContext> element in the input payload, or by amending the system-wide settings.

Limited level of detail

The following shows an example of the amount of message detail written to an output payload with <ErrorContext> set to '0' - Limited detail.

<Messages>
<Message Level="error" Reference="1">
<UserText>Amount 'TTTT' is invalid. It must be a numeric of maximum 18 digits and 3 decimal places.</UserText>
</Message>
</Messages>

SSC simply reports the error message text.

Normal level of detail

This example shows the effect of running the same payload with the installation default; <ErrorContext> set to '1' Normal.

<Messages>
<Message Level="error" Reference="1">
<UserText>Amount 'TTTT' is invalid. It must be a numeric of maximum 18 digits and 3 decimal places.</UserText>
<Application>
 <Component>AllocationMarkerUpdate</Component>
 <Method>AmendMarker</Method>
 <Version>20</Version>
</Application>
</Message>
</Messages>

As before, the error message text is reported. SSC now adds details of the component method that was executed and the component version number.

Extended Level of Detail

This setting is reserved for future use.

To reduce confusion, running a payload with <ErrorContext> set to '2' Extended, produces the same results as if the payload is run with <ErrorContext> set to '3' Debug.

Debug Level of Detail

This example shows the effect of running the same payload with <ErrorContext> set to '3' Debug.

<Messages>
<Message Level="error" Reference="1">
<Exception><![CDATA[com.systemsunion.JBO.common.datavalue.AmountInvalidException: Amount 'TTTT' is invalid. It must be anumeric of maximum 18 digits and 3 decimal places.
at com.systemsunion.SSTS.components.business.allocationmarkers.AccountAllocationDataConverter.amountFromObject(Unknown Source)
at com.systemsunion.JBO.common.datavalue.Amount.fromObject(Unknown Source)
at com.systemsunion.JBO.common.datavalue.DataValueType.valueFromObject(Unknown Source)
at com.systemsunion.JBO.SSC.dataimport.BaseBuilder.createItemValuesHelper(Unknown Source)
at com.systemsunion.JBO.SSC.dataimport.BaseBuilder.createItemValues(Unknown Source)
at com.systemsunion.JBO.SSC.dataimport.BaseBuilder.processRecord(Unknown Source)
at com.systemsunion.JBO.SSC.dataimport.BaseBuilder.buildValueObject(Unknown Source)
at com.systemsunion.SSTS.components.business.allocationmarkers.AccountAllocationImporter.importRecord(Unknown Source)
at com.systemsunion.JBO.SSC.dataimport.Importer.importData(Unknown Source)
at com.systemsunion.SSTS.components.business.allocationmarkers.AllocationMarkersImport.execute(Unknown Source)
at com.systemsunion.SSTS.drivers.DJI.DJIMethod.execute(Unknown Source)
at com.systemsunion.SSTS.drivers.SSDriver.asyncExecute(Unknown Source)
at com.systemsunion.SSTS.drivers.SSDriver.syncExecute(Unknown Source)
at com.systemsunion.SSTS.drivers.DJI.DJIDriver.execute(Unknown Source)
at com.systemsunion.SSTS.streaming.MethodFilter.execute(Unknown Source)
at com.systemsunion.util.streaming.AbstractFilter.execute(Unknown Source)
at com.systemsunion.util.streaming.AbstractStreamBase$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:534)]>
</Exception>
<UserText>Amount 'TTTT' is invalid. It must be a numeric of maximum 18 digits and 3 decimal places.
</UserText>
<Application>
<Component>AllocationMarkerUpdate</Component>
<Method>AmendMarker</Method>
<Version>20</Version>
</Application>
</Message>
</Messages>

The additional information includes the exception stack trace that existed when the error occurred.

Note: Unless you are a developer or have good reasons for doing so, we recommend that you avoid running payloads with this setting. The extra information that this setting produces is mainly intended for debugging and for customer support. It is unlikely to help you if the error is caused by incorrect data values in the input payload.

If you contact SunSystems Support, you may be asked to rerun the failing payload with this setting, so that the results can be passed to SunSystems Support for further investigation.