SERPland Blog

D: Avaloq Script Sourcecode - Avaloq Parametrierer Beispiel

· 1604 words · 8 minutes to read

Avaloq Script? Im IT Bereich der Banken welche das Avaloq Softwarepaket verwenden, werden viele Wirtschaftsinformatiker oder Parametrierer gesucht – da werden Avaloq Script Kenntnisse gewünscht. Aber was ist Avaloq Script? Wie muss ich mir das vorstellen? Gibt es Sourcecode Beispiele?

Mir erging es genau so, nur konnte ich leider nirgends im Internet ein Beispiel finden. Deshalb mein kleiner Bericht hierzu.

Aber was ist nun dieses Avaloq Script genau? In den Stelleninseraten oder dann auch beim Vorstellungsgespräch erfährt man dazu relativ wenig. Im Internet gibt’s dazu kaum Avaloq Script Codebeispiele. Der Grund liegt auf der Hand: Avaloq Script ist keine “öffentliche” Programmiersprache. Sie wird explizit nur auf dem Avaloq System verwendet. Das Avaloq System kann man sich nicht einfach so runterladen, man muss da schon eine Bank sein und viel Geld investieren um das Softwarepaket lizenziert kaufen zu können.

Allen Stellensuchenden Informatikern die sich nun relativ wenig unter Avaloq Script vorstellen können, möchte ich hier ein kleines Code Beispiel mitsamt Beschreibung zeigen. Dies ist ein Fantasiebeispiel und hat keinen Bezug zu einer reellen Implementierung einer spezifischen Bank.

Grundsätzliches zur Programmiersprache Avaloq Script 🔗

Die ganze Avaloqsoftware basiert vollständig auf Oracle, im Hintergrund läuft das meiste als PL/SQL ab.

Avaloq Script Sourcen sind Textbasiert, also schön mittels Version Control kontrollierbar.

Das Softwareunternehmen Avaloq hat einen Compiler geschrieben, welcher aus Avaloq Script Sourcecode dann reines (native) Oracle PL/SQL generiert. Die Avaloq Script Source speichert Avaloq selbst in eigenen Sourcetabellen ab. Die PL/SQL Programme sind dann aber natürlich auf der DB als Programme gespeichert.

avaloq-script Für ein “Avaloq Programm” existiert also eine Avaloq Script Source und jeweils ein oder mehre entsprechendes Stück native PL/SQL Code, wobei dies je nach Fall ein PL/SQL Package oder eine standalone Function sein kann. Es ist sogar möglich dass die Avaloq Script Source als “valid” angezeigt wird, das PL/SQL Programm auf der Oracle DB aber z.B. aufgrund eines Referenzenfehlers als “invalid” aufscheint … dies nur mal so am Rande …

Avaloq Script sieht aus wie ein PL/SQL Dialekt! Im Grunde also PL/SQL mit avaloqspezifischen Anpassungen und Erweiterungen, vor allem im Bereich Datenzugriff. Es gibt keine DML oder DDL Operationen so wie’s man sich in PL/SQL gewöhnt ist. Dazu werden die Avaloq Data Dictionaries (DDIC) abgefragt. Programmablauflogik kann in Avaloq Script fast gleich wie in PL/SQL gemacht werden. Im Endeffekt behaupte ich mal dass in Avaloq Script aber leider nur so ungefähr 10% des PL/SQL Funktionsumfangs benützt werden kann, wobei die wichtigen Funktionen wie substr(), length(), usw. selbstverständlich vorhanden sind, aber z.B. keine Ref Cursor uns so was.

Parametrierer (so nennen sich die Wirtschaftsinformatiker welche das Avaloq System auf die bedürfnisse der Bank anpassen) sind also eigentlich PL/SQL Entwickler welche sich mittels Avaloq Script um das Avaloq-System ummanteln. Ein Decorator Muster sozusagen.

Avaloq Script wird übers ganze System konsequent verwendet. Für Programmlogik, für das ganze Reporting, für das Message Handling, usw.

Hauptunterschied: Avaloq Script vs. PL/SQL 🔗

Der grösste Unterschied zwischen Avaloq Script und dem “normalen” PL/SQL ist die Möglichkeit der Datenabfragen bzw. Datenmanipulation.

Da PL/SQL ja sehr datennah ist, kann ich innerhalb eines Programmes einfach ein

select tradeDate
into vDate
from tabelle_stex stx, tabelle_settlment set
where stx.id = set.stx_id
and stx.stx_id=15;

absetzten. Also jegliche Art von Tabellenzugriff (DDL und DML).

Innerhalb Avaloq Script funktioniert kein direkter Tabellenzugriff mehr! Avaloq kapselt den Datenzugriff auf die Avaloq Datenstruktur bewusst. Das ist eigentlich auch verständlich da sie releasefähig bleiben müssen. Sie stellen dazu eigene Data Dictionaries (DDIC) zur Verfügung auf die man wirklich elegant lesend und schreiben zugreifen kann.

Mittels Avaloq Script könnte dies in etwa so aussehen

with mem_doc_stex(15) as stx do
vDate := stx.doc.settle.tradeDate();
end with;

Es ist wirklich elegant wie im Codebeispiel ersichtlich, dafür verliert man halt leider etwas die “griffigkeit” die man als Entwickler gerne hätte. Man weiss im endeffekt hat nicht welche Tabellen wo und wie gelesen werden. Vom Grundsatz her muss man sich auch nicht mehr darum kümmern, Avaloq handhabt dies selbst durch ihren Avaloq Script – PL/SQL Compiler. Wobei dann der generierte PL/SQL Code dann sogar gewrappt ist. Er kann dann auf der DB Seite nicht mehr im Klartext angesehen oder sogar geändert werden … eigentlich ;-)

Die Dictionaries sind aber äussert umfangreich und man kann im objektorientierten Stil immer weiter in der Baumstrucktur runter gehen. Dies in beide Richtungen. Also auch zuunterst von der Buchung, zum Konto rauf bis zur obersten Business Unit und das ganze auch umgekehrt.

ddic-avaloq-script-beispiel-fuer-avaloq-parametrierer Beispiel Data Dictionary

Code Beispiel Avaloq Script 🔗

Das oben aufgeführte Avaloq Script Beispiel ist etwas phantasielos, hier nun mal was mit etwas mehr Fleisch am Knochen. Wir sind die Bank namens “Superbaningbank” und haben diesen Code hier:


function getBusinessPartnerName(pKonto number) return text
is 
 vName text; 
begin 
 vIrgendwas := lookup.asset_id(‘NESN’);  // hier sinnlos
 vName := obj_pos(pKonto).cont.bp.name;   
 return vName; 
end;

Hier wird also eine Funktion bereitgestellt die als Input Parameter pKonto ein obj_pos Objekt erwartet (ein Konto). Danach lesen wir hier zusammenhangslos die Asset ID der Nestle Namensaktie. Nun der Clou: Anstatt irgend eine Business Partner Tabelle zu lesen, werden in Avaloq Script die Data Dictionaries (DDIC) verwendet.

Das folgende Statement

vName := obj_pos(pKonto).cont.bp.name;

bedeutet also dass zuerst der DDC  obj_pos  mit dem Parameter pKonto gelesen wird, darin kann man direkt auf den cont, dann auf den bp zugreifen. Schlussendlich lesen wir hier dann vom bp Objekt direkt das Name Element. Avaloq bietet dazu eine wunderbare DDIC Ansicht, man kann sich da schön durchklicken.

Die ganze Sache kann dann natürlich schon etwas komplexer werden, jedoch bleibt die Übersichtlichkeit bestehen da man sich durch alle DDIC durchhangeln kann. Hier ein etwas komplizierterer Fall aus dem Avaloq Message Interface AMI, hier wird programmtechnisch eine SIC A10 Message aufbereitet die dann durch Avaloq via AMI und Middleware an die SIC verschickt wird:

[message Out 1.0]
----------------------------
message out SIC.A10V1
message type A10
----------------------------
-- Imports
----------------------------
import sic_a10v1;
import sic_msg_header;
----------------------------
-- create message
---------------------------
with mem_msg_sic_a10v(msg) as m do
  with mem_doc_settle(doc) as settle do
    sic_a10v.init;
    msg.head.rcv_bp_id := msg.path.dest_first_mbr_noclrinst.bp_id;
    msg.genm.curry     := msg.path.src_macc.ref_curry.key(def_obj_key.asset.iso);
    msg.genm.val_date := settle.val_date;
  end with;
end with;
end message out;

Sieht etwas kompliziert aus, ist es aber nicht, es werden nur die Message Variablen mit irgendwelchen Settlement Werten aus dem Avaloq System abgefüllt.

In den Dictionaries werden seitens Avaloq ja nicht auch nur Tabellen gelesen, sondern die DDIC sind massiv mit Daten angereichert die dem Parametrierer das Entwickeln massiv vereinfachen. Avaloq-DDIC-automatisch-berechnet-fuer-Avaloq-Script

Wie man sieht wird Avaloq Script durchs Band konsequent verwendet. Für Programmlogik, für das ganze Reporting, für das Message Handling, usw.

So, ich hoffe mit dieser kurzen Avaloq Script Exkursion einem zukünftigen Avaloq Parametrierer einen Einblick in die Thematik gemacht haben zu können.


Update 2024

Evaluierung und Update: Avaloq Script 🔗

Der oben genannte Text aus dem Jahr 2011 beschreibt die Verwendung von Avaloq Script im Bankensektor, insbesondere im Zusammenhang mit der Avaloq-Software. Es wird erklärt, dass Avaloq Script eine spezielle Programmiersprache ist, die von Avaloq für die Anpassung des Systems an die Anforderungen der Banken verwendet wird. Die Sprache ähnelt PL SQL, hat jedoch spezifische Anpassungen und Erweiterungen für den Datenzugriff.

Im Jahr 2024 ist Avaloq nach wie vor ein bedeutender Anbieter von Bankensoftware, und Avaloq Script wird weiterhin für die Systemanpassung eingesetzt. Es gibt jedoch einige wichtige Entwicklungen und Updates zu beachten.

Zunächst hat sich die Technologie im Bankensektor in den letzten Jahren stark weiterentwickelt. Neue Anforderungen an Sicherheit, Datenschutz und Digitalisierung haben dazu geführt, dass Avaloq kontinuierlich an der Weiterentwicklung seiner Software arbeitet. Dies könnte sich auch auf die Verwendung von Avaloq Script auswirken, indem neue Funktionen und Anpassungsmöglichkeiten hinzugefügt wurden.

Des Weiteren haben sich die Anforderungen an IT-Fachkräfte in Banken möglicherweise verändert. Wirtschaftsinformatiker und Parametrierer müssen möglicherweise über zusätzliche Kenntnisse und Fähigkeiten verfügen, um den aktuellen Anforderungen gerecht zu werden. Dies könnte sich auch auf die Anforderungen an Avaloq Script Kenntnisse auswirken.

Ein weiterer wichtiger Aspekt, der im Text von 2011 erwähnt wird, ist die Tatsache, dass Avaloq Script keine direkten DDL und DML Operationen unterstützt. Dies könnte sich im Laufe der Jahre geändert haben, da die Anforderungen an die Datenverarbeitung in Bankensystemen komplexer geworden sind. Avaloq könnte daher Updates oder Erweiterungen eingeführt haben, um den Umgang mit Daten in Avaloq Script zu verbessern.

Zusammenfassend lässt sich sagen, dass Avaloq und Avaloq Script auch im Jahr 2024 eine wichtige Rolle im Bankensektor spielen. Es ist jedoch wahrscheinlich, dass es in den letzten Jahren Entwicklungen und Updates gegeben hat, die die Verwendung und Funktionalität von Avaloq Script beeinflusst haben. Banken und IT-Fachkräfte, die mit Avaloq arbeiten, sollten daher immer über die neuesten Entwicklungen und Funktionen informiert sein, um das Beste aus der Software herauszuholen.

Insgesamt bleibt Avaloq Script ein wichtiger Bestandteil der Softwareanpassung im Bankensektor, und die Kenntnis dieser Sprache kann für IT-Fachkräfte, die in diesem Bereich tätig sind, von großem Vorteil sein.

Update 2024 🔗

Im Jahr 2024 hat Avaloq seine Software kontinuierlich weiterentwickelt, um den sich wandelnden Anforderungen des Bankensektors gerecht zu werden. Neue Funktionen und Anpassungsmöglichkeiten wurden eingeführt, um die Effizienz und Sicherheit der Systeme zu verbessern. Die Verwendung von Avaloq Script ist nach wie vor ein wichtiger Bestandteil der Systemanpassung, und IT-Fachkräfte sollten über die neuesten Updates und Entwicklungen informiert sein, um das volle Potenzial der Software auszuschöpfen.

In Bezug auf die Anforderungen an Banken und IT-Fachkräfte haben sich möglicherweise Änderungen ergeben, die eine Anpassung der Fähigkeiten und Kenntnisse erforderlich machen. Die Komplexität der Datenverarbeitung und die Sicherheitsanforderungen sind gestiegen, was dazu führen könnte, dass Avaloq Script weitere Funktionen zur Datenverwaltung hinzugefügt hat.

Es ist wichtig, dass Banken und IT-Experten, die mit Avaloq arbeiten, die aktuellen Entwicklungen und Updates im Auge behalten, um die Software optimal nutzen zu können und den sich wandelnden Anforderungen gerecht zu werden. Avaloq bleibt ein wichtiger Akteur im Bankensektor, und die Verwendung von Avaloq Script spielt eine entscheidende Rolle bei der Anpassung und Optimierung von Bankensystemen.