Replies: 1 comment
-
That is not what Oxalis receiver gets in Receiver metadata.timestamp(). To fix it, Oxalis-AS4 can be modified in As4InboundHandler.java to use |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Regarding https://github.com/OxalisCommunity/oxalis/wiki/Peppol-Reporting-%E2%80%90-WIP statement about "eb:UserMessage/eb:MessageInfo/eb:Timestamp" for transaction reporting - I am a little confused.
As far as I see it by enabling
logback.xml
<logger name="org.apache.cxf" level="debug"/>
, NEITHER receiver'sinboundMetadata.getTimestamp()
nor sender'stransmissionResponse.getTimestamp()
return this value.Moreover, they return DIFFERENT values:
inboundMetadata.getTimestamp()
returnsSignalMessage/MessageInfo/Timestamp
value (which I think is the only correct one)TransmissionResponse.getTimestamp()
returns timestamp when the object was created.Example
Code proofs
For sender: in TransmissionResponseConverter you can see, that parsed
SignalMessage
is used ONLY to getRefMessageId
and potential errors - but timestamp is generated viatimestampProvider
which just creates a new date. That is why a sender will get ANOTHER date.For receiver: in As4InboundHandler you can see, that
UserMessage
is parsed AFTER timestamp was generated viatimestampProvider
and only binary signature is passed there, so it is unable in any way to get originalUserMessage
timestamp - but just generates a new date.So, in my opinion, the wiki page should be updated and mention that it is not eb:UserMessage/eb:MessageInfo/eb:Timestamp but
eb:SignalMessage/eb:MessageInfo/eb:Timestamp
should be used for transaction statistics, asSignalMessage
with Receipt inside confirms that the document was received and that is the date which can be shared between sender and receiver. And at least that is the date that receiver gets at current version...Additionally, Oxalis should be modified to return SignalMessage Timestamp as a part of
As4TransmissionResponse
.It would be good to extend
As4InboundHandler
in BOTH As4InboundMetadata AND As4PayloadHeader, so receiver code get it additionally on attachment persistence phase (which in Peppol is always one) - and does not wait forinboundMetadata
persistance. Actually, for our integration, we extended payload persistence with full UserMessage AND sender certificate... For senders, we extended As4TransmissionResponse with full Messaging object, received in response, so sender gets a proper timestamp.Please correct me if I am wrong - looking forward for comments.
E.g. I did not manage to find where TSR or EUSR mention "UserMessage". Do they clearly define what should be used as a basis for periods? Maybe there are some comments from authors?
I suspect Peppol admins will try to match statistics from counter-parties, and definitely will get discrepancies for documents sent around midnight UTC.
Beta Was this translation helpful? Give feedback.
All reactions