Skip to main content

EnsLib.EDI.X12.Operation.ReplyStandard

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

Property Inventory

Method Inventory

Parameters

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 property of the reply message if possible

Properties

property %Parser as EnsLib.EDI.X12.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. Note this setting is separate from the Retry property.
  • 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 subject to the Retry property value set in the code. If the Retry property is set in the code then moving on to try the next message will be subject to the configured RetryInterval and FailureTimeout. The X12 TCP outbound adapter sets the operation's Retry property to true when there are network connection errors.
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 unless the property Retry has been set to true by the operation code.

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
Return the segment terminator string that the Parser will use.
method IOLogDiscard(pSC As %Status, pNote As %String, pDiscard As %GlobalCharacterStream)
Add discarded characters to IO Archive
method OnGetReplyAction(pRequest As EnsLib.EDI.X12.Document, Output pResponse As EnsLib.EDI.X12.Document, ByRef pSC As %Status) as %String
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
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.X12.Document, Output pResponse As EnsLib.EDI.X12.Document) as %Status
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.X12.Document, pRequest As EnsLib.EDI.X12.Document)
Override this method to modify or delete or log the reply (ACK) message document object
method SendMessage(pMsgOut As EnsLib.EDI.X12.Document, Output pMsgIn As EnsLib.EDI.X12.Document) as %Status
method buildReplyActionMap() as %Status
build parsed array property of ReplyCodeActions setting

Inherited Members

Inherited Properties

Inherited Methods

Subclasses

FeedbackOpens in a new tab