Home > Class Reference > ENSLIB namespace > EnsLib.EDI.EDIFACT.Operation.ReplyStandard

EnsLib.EDI.EDIFACT.Operation.ReplyStandard

abstract class EnsLib.EDI.EDIFACT.Operation.ReplyStandard extends EnsLib.EDI.EDIFACT.Operation.Standard, EnsLib.EDI.ServiceInterface

Property Inventory

Method Inventory

Parameters

parameter AllowNonMSA = 0;
Don't report an error for reply messages containing no MSA:1 field (Deprecated - use Setting ReplyCodeActions instead of subclassing)
parameter IndexACKs = 0;
Index ACKs if IndexReplies is also true and SearchTable class is given
parameter IndexReplies = 1;
If SearchTableClass is given, use it to index any replies (including ACKs unless IndexACKs=0 or OK and SaveOKACKs=0)
parameter SETTINGS = ReplyCodeActions,NoFailWhileDisconnected;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names
parameter SaveOKACKs = 0;
Save OK ACKs
parameter SetReplyDocType = 1;
Set the DocType and MessageTypeCategory properties of the reply message if possible
parameter WarnACKControlId = 1;
Log a Warning if the reply MSA:2 ControlId does not match the original message's control ID (Deprecated - use Setting ReplyCodeActions instead of subclassing)

Properties

property %Parser as EnsLib.EDI.EDIFACT.Parser;
Property methods: %ParserGet(), %ParserGetSwizzled(), %ParserIsValid(), %ParserNewObject(), %ParserSet()
property %replyActionMap [ MultiDimensional ];
parsed array property of ReplyCodeActions setting
Property methods: %replyActionMapDisplayToLogical(), %replyActionMapGet(), %replyActionMapIsValid(), %replyActionMapLogicalToDisplay(), %replyActionMapLogicalToOdbc(), %replyActionMapNormalize(), %replyActionMapSet()
property ReplyCodeActions as %String (MAXLEN = 1000);

A comma-separated list of codes specifying what action this Operation will take on receipt of various types of acknowledgement messages and other reply status conditions. The format of the list is:
<code>=<action>,<code>=<action>,...
A <code> value starting with a colon - e.g. :<char> represents a literal value found in field TA1:4,AK5:1,or AK9:1 of the response message.
The expected values in these fields include:

  • :A - Accepted
  • :E - Accepted, but Errors Were Noted
  • :P - Partially Accepted
  • :R - Rejected
  • :M - Rejected; Message Authentication Code (MAC) Failed
  • :W - Rejected; Failed Validity Tests
  • :X - Rejected; Content Decryption Failed

Also, the following special code values may be used:
  • :~ - matches replies that do not contain a TA1, AK5 or AK9 segment
  • :_ - matches replies with an empty value in the field
  • :* - matches any value not matched otherwise
  • :E? - matches any literal value except :A
  • :R? - matches any literal value except :A, :E or :P
  • :I? - matches where the reply ControlId does not match the ControlId of the original message

The default behavior is ':A=C,:E=WC,:P=WC,:*=S,:~=S,:I?=W'
This means for responses with TA1 code E or P issue a warning, while all other codes except A suspend the current outbound message and move on to the next.

Also, the following standard status conditions may be used:

  • E - Error status returned from message handler
  • E#<statuscode> - Error status returned from message handler has status code equal to <statuscode>
  • E*<text> - Error status returned from message handler contains text string <text>
  • X - there is no reply message at all

The following values for <actions> may be used alone or in combinations:

  • C - Treat the message as Completed OK.
  • W - Log a warning. If no other non-warning <actions> are triggered, the message will be treated as Completed OK.
  • R - Retry the message according to the configured RetryInterval and FailureTimeout; finally Fail unless a different action is also specified.
  • S - Suspend the message, log an error, and move on to try the next message.
  • D - Disable the Operation, log an error and restore the message to the front of the Operation's queue.
  • F - Fail with an error and move on to try the next message from the Operation's queue.
An example of a valid ReplyCodeActions specification is 'E#6301=R,E#<Ens>ErrGeneral=RD,E=F'. This specification will result in a retry when error code 6301 is encountered. When error code <Ens>ErrGeneral is encountered, the Operation first retries to send the message until FailureTimeout and then, if the error continues, it disables the Operation instead of failing. Any other errors will cause the Operation to fail processing of the current message and return the error status to the caller, without retrying first.

The default behavior is 'E=F'. Thus any error status will result in the error being logged and returned to the caller, no retries will be attempted, and the Operation will move on to try the next message from its queue.

All codes where <actions> consists of only 'W' (for 'log a Warning') will be evaluated, and a warning will be generated for each matching <code>. Other <code> values will be evaluated in left-to-right order, executing the first matching <code> that has a non-warning <actions> value. As noted in the details for the 'W' flag, an error that only triggers 'W' <actions> will be treated as Completed OK.

Property methods: ReplyCodeActionsDisplayToLogical(), ReplyCodeActionsGet(), ReplyCodeActionsIsValid(), ReplyCodeActionsLogicalToDisplay(), ReplyCodeActionsLogicalToOdbc(), ReplyCodeActionsNormalize(), ReplyCodeActionsSet()

Methods

method GetSegmentTerminator() as %String [ Language = objectscript ]
Return the segment terminator string that the Parser will use.
method IOLogDiscard(pSC As %Status, pNote As %String, pDiscard As %GlobalCharacterStream) [ Language = objectscript ]
Add discarded characters to IO Archive
method OnGetReplyAction(pRequest As EnsLib.EDI.EDIFACT.Document, Output pResponse As EnsLib.EDI.EDIFACT.Document, ByRef pSC As %Status) as %String [ Language = objectscript ]
Construct and return an Action string consisting of supported action code letters, based on qualities of the Request, Response, and Error Status.
method OnInit() as %Status [ Language = objectscript ]
Inherited description: This user callback method is called via initConfig() from %OnNew() or in the case of SOAP Services from OnPreSOAP()
method OnMessage(pRequest As EnsLib.EDI.EDIFACT.Document, Output pResponse As EnsLib.EDI.EDIFACT.Document) as %Status [ Language = objectscript ]
Inherited description: This is the default message handler. All request types not declared in the message map are delivered here
method OnReplyDocument(ByRef pReplyDocument As EnsLib.EDI.EDIFACT.Document, pRequest As EnsLib.EDI.EDIFACT.Document) [ Language = objectscript ]
Override this method to modify or delete or log the reply (ACK) message document object
method SendMessage(pMsgOut As EnsLib.EDI.EDIFACT.Document, Output pMsgIn As EnsLib.EDI.EDIFACT.Document) as %Status [ Language = objectscript ]
method buildReplyActionMap() as %Status [ Language = objectscript ]
build parsed array property of ReplyCodeActions setting
method getGroupReplyAction(pPosition As %Integer, pReplyMsg As EnsLib.EDI.EDIFACT.Document, pRequest As EnsLib.EDI.EDIFACT.Document, pReplyName As %String, Output pAction As %String, Output pErrCode As %String, Output pCIdText As %String, Output pTypeText As %String) [ Language = objectscript ]
method getReplyAction(pReplyMsg As EnsLib.EDI.EDIFACT.Document, pRequest As EnsLib.EDI.EDIFACT.Document, pReplyName As %String, Output pAction As %String, Output pErrCode As %String, Output pCIdText As %String, Output pTypeText As %String) [ Language = objectscript ]
method getTSReplyAction(pPosition As %Integer, pReplyMsg As EnsLib.EDI.EDIFACT.Document, pRequest As EnsLib.EDI.EDIFACT.Document, pReplyName As %String, Output pAction As %String, Output pErrCode As %String, Output pCIdText As %String, Output pTypeText As %String) [ Language = objectscript ]

Inherited Methods

Subclasses