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.
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.
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.