Standardmäßig sieht das CAMT-Nuclet einen Statuswechsel auf einem Referenzobjekt vor, sobald die Zahlungsbedingungen erfüllt sind. Da die Referenzentität nicht Teil des CAMT-Nuclets ist, sind Quell- und Zielzustände dieses Statuswechsels bei der Integration zu definieren.

Mehr zur Prüfung der Zahlungsbedingungen und zur Funktionsweise des CAMT-Nuclets finden Sie im Abschnitt 2.

 

4.7.3.1 Statuswechsel "PaymentReceived"

Der oben beschriebene Statuswechsel wird durch das Enum-Objekt "PaymentReceived" vom Typ ReferenceStatemodel.StateChange repräsentiert. Für diesen Statuswechsel müssen in der Klasse ReferenceFacade Quell- und Zielzustände definiert werden.

StatuswechselTypMethodeRückgabewertBemerkung
PaymentReceivedQuellzuständegetSourceStates()List<State>es können ein oder mehrere Quellzustände definiert werden
PaymentReceivedZielzustandgetDestinationState()Stateder Zielzustand ist eindeutig zu definieren

Die Definition ist aus den folgenden Gründen notwendig:

  • Beim potentiellen Statuswechsel wird geprüft, ob die Objekte in einem gültigen Quellzustand sind.
  • Bei der Durchführung des Statuswechsels muss der konkrete Zielzustand angegeben werden.

Da die tatsächlichen Zustände aus dem verwendeten Statusmodell nicht im MT940-Nuclet bekannt sind, muss mit dieser Schnittstellenregelung gearbeitet werden.

 

org.nuclet.camt.ReferenceFacade
   /**
     * Liefert eine Liste von Quellzuständen zum gegebenen Statuswechsel.
     * 
     * @param stateChange Der Statuswechsel, repräsentiert durch ein Objekt vom Typ <code>StateChange</code>.
     * 
     * @return eine Liste von Quellzuständen zum gegebenen Statuswechsel
     * 
     */
    public List<State> getSourceStates(final ReferenceStatemodel.StateChange stateChange)
    {
        final List<State> lstSourceStates = new ArrayList<State>();
        
        switch (stateChange) {        
            case PaymentReceived:
                // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
                //
                // Beispiel:
                //
                // lstSourceStateIds.add(ProcessClientBillingSM.State_AB);
                // lstSourceStateIds.add(ProcessClientBillingSM.State_XY);
            
                break;
            default:
                break;
        }
        
        return lstSourceStates;
    }
    
    /**
     * Liefert den Zielzustand zum gegebenen Statuswechsel.
     * 
     * @param stateChange Der Statuswechsel, repräsentiert durch ein Objekt vom Typ <code>StateChange</code>.
     * 
     * @return der Zielzustand von Quellzuständen zum gegebenen Statuswechsel
     * 
     */
    public State getDestinationState(final ReferenceStatemodel.StateChange stateChange)
    {
        switch (stateChange) {        
            case PaymentReceived:
                // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
                //
                // Beispiel:
                //
                // return ProcessClientBillingSM.State_ZZ;
                //
                
                return null;                
            default:
                return null;
        }
        
    }

 

 

 

  • Keine Stichwörter