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.
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.
Statuswechsel | Typ | Methode | Rückgabewert | Bemerkung |
---|---|---|---|---|
PaymentReceived | Quellzustände | getSourceStates() | List<State> | es können ein oder mehrere Quellzustände definiert werden |
PaymentReceived | Zielzustand | getDestinationState() | State | der Zielzustand ist eindeutig zu definieren |
Die Definition ist aus den folgenden Gründen notwendig:
Da die tatsächlichen Zustände aus dem verwendeten Statusmodell nicht im MT940-Nuclet bekannt sind, muss mit dieser Schnittstellenregelung gearbeitet werden.
/** * 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; } } |