EVB
Left Up Right EVB - CORBA-Schnittstelle

Transaktionsschnittstelle

Bemerkung: Die Schnittstelle beschreibt eine Transaktion im Betriebswirtschaftlichen Sinn, wie sie schon seit den alten Summerern üblich ist.
Der Transaktionsbegriff in Informatik ist verallgemeinert.

Die IDL-Schnittstelle

#include"buch_base.idl"

module buch
{
   struct Halbsatz
   {
      Kontonr konto;
      Betrag  betrag;
      sh_t    sh;
   };
   
   typedef sequence Halbsatz_seq;

   struct date
   {
	unsigned short tag;
	unsigned short monat;
	unsigned short jahr;	
   };

   valuetype transaction
   {
       public Tid tid;
       public string text;
       public Halbsatz_seq hs;
       factory create(in Tid tid,in string text,in Halbsatz_seq hs);
   };
   
   valuetype faelligkeit : truncatable transaction
   {
      public date faellig;
      factory create(in Tid tid,in string text,in Halbsatz_seq hs,
	in date faellig);
   };

   interface haltung
   {
      Tid buche(in transaction t) 
         raises(notexistent, sollungleichhaben, databaseerr);
   };
};

transaktion und Unterklassen

Hier probieren wir den seit CORBA-2.3 neuen CORBA-Valuetype-Mechanismus mit samt dem Vererbungsmechanismus auf diesem aus.

Eine Transaktion entspricht also genau einem Beleg. Verschiedene Arten von

Belegen sind folglich Untertypen dieser transaktion. Eine Transaktion enthält den Buchungstext text und eine Sequenz von Buchungshalbsätzen aus Konto, ob soll/haben und den Betrag.
Die Transaktionstid tid wird beim Buchen ignoriert. Diese ist für Abfragen vorgesehen, z.B. wenn man alle Transaktionen (mit Gegenkonten) eines Kontos aufgelistet werden sollten.

Die faelligkeit ist eine Transaktion mit einem Fälligkeitsdatum. In der realen Anwendung wird man hier noch Skonto und dergleichen haben wollen.

buch::haltung

Das Interface nimmt eine transaktion (oder Untertyp) entgegen und sorgt für die Buchung.

Überlegungen und Alternativen

Weitere Ideen


Rudolf Weber Informatik- und Netzwerkverein Ravensburg e.V