Standardmäßig sieht das MT940-Nuclet einen Statuswechsel auf einem Referenzobjekt vor, sobald die Zahlungsbedingungen erfüllt sind. Da die Referenzentität nicht Teil des MT940-Nuclets ist, sind Quell- und Zielzustände dieses Statuswechsels bei der Integration zu definieren.
Mehr zur Prüfung der Zahlungsbedingungen und zur Funktionsweise des MT940-Nuclets finden Sie im Abschnitt "2 Funktion".
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 | getSourceStateNumbers() | List<Integer> | 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<Integer> getSourceStateNumbers(final ReferenceStatemodel.StateChange stateChange) { final List<Integer> lstSourceStateIds = new ArrayList<Integer>(); switch (stateChange) { case PaymentReceived: // @replace Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // lstSourceStateIds.add(ProcessClientBillingSM.State_AB.getNumeral()); // lstSourceStateIds.add(ProcessClientBillingSM.State_XY.getNumeral()); break; default: break; } return lstSourceStateIds; } /** * 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; } } |