atg.commerce.csr.approvals.order
Class ProcCheckIfApprovalRequired

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.csr.approvals.order.ProcCheckIfApprovalRequired
All Implemented Interfaces:
atg.naming.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameResolver, atg.nucleus.AdminableService, atg.nucleus.logging.ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, atg.nucleus.naming.ComponentNameResolver, atg.nucleus.Service, atg.nucleus.ServiceListener, atg.service.pipeline.PipelineProcessor, java.util.EventListener

public class ProcCheckIfApprovalRequired
extends atg.nucleus.GenericService
implements atg.service.pipeline.PipelineProcessor

This class provides the implementation of an PipelineProcessor for a component which will be inserted into the processOrder pipeline to provide the facility to check if an Order needs an Approval.

This processor is designed to interrupt the processOrder pipeline by stopping the chain when the Order needs approval. Otherwise, a successful return code triggers a normal transition to the next processor.

If the Order needs approval the processor returns PipelineProcessor.STOP_CHAIN_EXECUTION_AND_COMMIT Otherwise, the processor returns a successful return code 2 to indicate a normal transition.


Field Summary
static int APPROVAL_NOT_REQUIRED
          return code when an approval is not required
static int APPROVAL_REQUIRED
          return code when approval is required
static java.lang.String CLASS_VERSION
           
protected  boolean mEnabled
           
protected  OrderApprovalTools mOrderApprovalTools
           
protected  int[] mRetCodes
          Returns the valid return codes.
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.service.pipeline.PipelineProcessor
STOP_CHAIN_EXECUTION, STOP_CHAIN_EXECUTION_AND_COMMIT, STOP_CHAIN_EXECUTION_AND_ROLLBACK
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
ProcCheckIfApprovalRequired()
           
 
Method Summary
 OrderApprovalTools getOrderApprovalTools()
           
 int[] getRetCodes()
           
 boolean isEnabled()
          Enables and disables the order approval check.
 int runProcess(java.lang.Object pParam, atg.service.pipeline.PipelineResult pResult)
          Checks if the Order being processed needs approval to be submitted.
 void setEnabled(boolean mEnabled)
          Enables and disables the order approval check.
 void setOrderApprovalTools(OrderApprovalTools mOrderApprovalTools)
           
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static final java.lang.String CLASS_VERSION
See Also:
Constant Field Values

APPROVAL_NOT_REQUIRED

public static final int APPROVAL_NOT_REQUIRED
return code when an approval is not required

See Also:
Constant Field Values

APPROVAL_REQUIRED

public static final int APPROVAL_REQUIRED
return code when approval is required

See Also:
Constant Field Values

mRetCodes

protected int[] mRetCodes
Returns the valid return codes. This processor always returns a status of 1 indicating successful completion.


mOrderApprovalTools

protected OrderApprovalTools mOrderApprovalTools

mEnabled

protected boolean mEnabled
Constructor Detail

ProcCheckIfApprovalRequired

public ProcCheckIfApprovalRequired()
Method Detail

setOrderApprovalTools

public void setOrderApprovalTools(OrderApprovalTools mOrderApprovalTools)
Parameters:
mOrderApprovalTools - the mOrderApprovalTools to set

getOrderApprovalTools

public OrderApprovalTools getOrderApprovalTools()
Returns:
the mOrderApprovalTools

setEnabled

public void setEnabled(boolean mEnabled)
Enables and disables the order approval check.


isEnabled

public boolean isEnabled()
Enables and disables the order approval check. If disabled the processor returns a successful transition to the next processor.


getRetCodes

public int[] getRetCodes()
Specified by:
getRetCodes in interface atg.service.pipeline.PipelineProcessor

runProcess

public int runProcess(java.lang.Object pParam,
                      atg.service.pipeline.PipelineResult pResult)
               throws java.lang.Exception
Checks if the Order being processed needs approval to be submitted. An approval will be required if:

- the agent does not have the 'cmcApproval' role

- the agent has an appeasement limit

- the appeasements applied to the order exceed the agents appeasement limit This processor can also be by-passed by adding a CSC_BYPASS_APPROVAL_CHECK_PARAM parameter to the pParam hash map. This is used to skip the 'check approval' process after an approval is granted and the order is being submitted. This pipeline processor can also be disabled using the isEnabled property.

Specified by:
runProcess in interface atg.service.pipeline.PipelineProcessor
Throws:
java.lang.Exception