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

/********************************************************************
 * buchtrans.idl                                                    *
 * Zweck...: Experiment Buchhaltung                                 *
 * Rudolf Weber Informatik- und Netzwerkverein Ravensburg e.V       *
 ********************************************************************/
#include"buch_base.idl"

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

   interface transaction
   {
       readonly attribute Tid tid;
       readonly attribute string text;
       readonly attribute Halbsatz_seq hs;
   };
   
   interface faelligkeit : transaction
   {
      readonly attribute date faellig;
      boolean bezahlt(out buch::Tid btid);
   };

   exception schonbezahlt
   {
      Tid durch;
   };

   interface haltung
   {
      Tid buche(in string text,in Halbsatz_seq hs)
         raises(notexistent,  sollungleichhaben, databaseerr);
      Tid bezahlung(in string text,in Halbsatz_seq hs,in Tid beztid)
         raises(notexistent, schonbezahlt, sollungleichhaben, databaseerr);
      Tid faellig(in string text,in Halbsatz_seq hs,in date faelligdat)
         raises(notexistent, sollungleichhaben, databaseerr);
      Object tid2obj(in Tid tid);
   };
};

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