IBOS Einführung

IBOS

IBOS bieten eine Vielzahl von Datenservices, welche aus dem Transaktions-Pool, aus F-Script oder via Programmname aufgerufen werden können. Diese Services ermöglichen Business Objekte (z.B. Adressen) neu zu erstellen, zu mutieren oder zu löschen/stornieren.
Nachfolgend werden zuerst einige Begriffe näher erklärt.
Atomare Funktion
Dies sind Grundfunktionen, welche sich nicht weiter aufsplitten lassen.
Beispiel: Buchen einer Disposition.
Komplexe Funktion
Komplexe Funktionen bestehen aus mehreren atomaren Funktionen.
Beispiel: Verbuchen eines Verkaufsdokuments. (Bestehend aus Funktionen für Lager, MIS, etc.)
Applikation / Programm
Applikationen oder Programme bestehen aus mehreren atomaren und/oder komplexen Funktionen.
Beispiel: IO5DPA - Programm für das Abarbeiten eines Verarbeitungs-/Druckpools. (Autopilot)

IBOS - Übergabe von Argumenten und Rückgabe

Argument-Array
Ein IBOS kann als Argument-Array aufgerufen bzw. ausgeführt werden. Dabei enthält der Argument-Array den Namen des IBOS (IBOS-Operation) sowie die entsprechende Anzahl Argumente (durch Komma separiert).
Einzelargumente
Ein IBOS kann aus einzelnen Argumenten zusammengestellt werden. Dabei wird jedes Argument zeilenweise zwischen BEGIN und END aufgeführt.
Rückgabe
Sehr viele IBOS liefern Rückgabewerte. Meist in Form eines OK oder eines Werts im IBOS-Cache.
Die Rückgabe kann dabei direkt (über IS(GETI:... ) oder via Clipboard (über CB(GETI:... ) abgefragt werden.
IBOS-Cache
Der IBOS-Cache (oft auch als IS-Cache bezeichnet) enthält die Rückgabe eines IBOS. Der IS-Cache kann einerseits als Input für einen nachfolgenden IBOS verwendet werden, andererseits kann der Inhalt des IS-Cache über CB(GETI:... abgefragt werden.
Welche IBOS den IS-Cache als Input verwenden können, ist in der jeweiligen Beschreibung des IBOS vermerkt.

Beispiel für die Verwendung des IS-Cache

Beispiel
ADR-NEU,,1,,1,
ADR-MUT-DIV,,1,@CUS@,,D,
Es wird der IBOS ADR-NEU ausgeführt. (Damit wird eine neue Adresse in OpaccERP erzeugt.) Der IBOS wird dabei als Argument-Array aufgerufen.
ADR-NEU,,1,,1,
Nach erfolgreicher Ausführung dieses IBOS steht im IS-Cache die Nummer der neu erstellten Adresse.
Es wird nun direkt der IBOS ADR-MUT-DIV ausgeführt. (Suchbegriff gem. Opacc Studio) Auch dieser IBOS wird als Argument-Array aufgerufen.
ADR-MUT-DIV,,1,@CUS@,,D,
Der IBOS ADR-MUT-DIV benötigt als erstes Argument eine Adressnummer. Wird das Argument leer gelassen, wird an dieser Stelle der IS-Cache verwendet. Es wird also direkt diejenige Adresse mutiert, welche mit dem vorangehenden IBOS erstellt wurde.

IBOS-Operation

Sie wird durch ihren Namen (z.B. ADR-NEU) eindeutig identifiziert.

Argumente der IBOS-Operation

Sie werden durch ihre Position im Argument-Array bzw. bei den Einzelargumenten identifiziert.
Es müssen nicht alle Argumente übergeben werden. Argumente welche auf das letzte übergebene Argument folgen, können weggelassen werden. Sie werden als leere Werte interpretiert.
Beispiel:
Diese beiden IBOS sind gleichwertig.
ART-MUT-DIV,101,1,,0,,,,Test,,,,,,,
ART-MUT-DIV,101,1,,0,,,,Test,
Die Beschreibungen der Argumente in dieser Dokumentation bestehen aus:

Nr

Nummer des Argumentes in der verbindlichen Reihenfolge.

Bedeutung

Fett geschriebene Argumente sind immer aktiv. Nicht fett geschriebene Argumente können durch einen leeren Wert passiv gesetzt werden.

Argument-Typ

A
alphanumerisch.
z.B. Müller Franz
N
numerisch. Nachkommastellen werden durch einen Punkt (.) getrennt.
z.B. 15.76 0.17 .792 1.3
D
Datum. Format tt.mm.(jj)jj
z.B. 03.09.13 oder 08.04.2014

Argumentlänge

Ist immer als maximale Länge zu verstehen.

Wert

Hier werden erlaubte Werte für das entsprechende Argument beschrieben.
Achtung
Achtung
Ein "leerer" Wert hat mehrere Bedeutungen.
Für fett geschriebene Argumente:
  • Space oder 0 je nach Argument-Typ.
  • Defaultwert
    • Gemäss IBOS-Cache.
    • Gemäss Einstellungen im Opacc Studio.
    • Gemäss Tabelle.
    • Gemäss anderen Werten (z.B. aktuelles Datum)
Für nicht fett geschriebene Argumente:
  • Passives Argument. (d.h. bestehender Wert soll nicht verändert werden.)
    Wird oft in Zusammenhang mit Mutationen verwendet. Übergabe als: ,,

Rückgabe der IBOS-Operation

Bei IBOS-Operationen versteht man unter Rückgabe:
  • Rückgabewert als Antwort der Operation. Diese ist optional und kann direkt (über IS(GETI:... ) oder via Clipboard (über CB(GETI:... ) abgefragt werden.
  • OK-Meldung als Info über den Verlauf der Operation. Diese kann immer (über IS(GETI:... ) abgefragt werden.
    • 0 = Fehler
    • 1 = OK
    • >1 OK mit Warnung
Detaillierte Informationen zum aufgetretenen Fehler können mit «IS(GETI:ERR_KEY)» abgefragt werden. Dieser Befehl liefert sowohl die Error-Nr. als auch den Error-Key. (Siehe auch OK-Rückgabe)

IBOS über Transaktions-Pool

Informationen zum Transaktions-Pool finden Sie unter "TechNotes / Einrichten OXAS / Applikationspools / Zusätze".
Pro Transaktions-Pool können beliebig viele Operationen aufgerufen werden.

Operation / Argumente

Operationsname,argument1,argument2,argument3,argument4,
Operationsname,argument1,argument2,argument3,
Operationsname,argument1,argument2, ,argument3,argument4,
Operationsname,argument1,argument2,argument3,
Operationsname,argument1,,argument3, ,argument4,argument5,
Regeln
  • Operationsname und Argumente werden zusammengefasst und durch Kommas getrennt.
  • Enthält ein Argument ein Komma, muss es in ' ' oder " " eingeschlossen werden.
  • Beginnt eine Zeile mit einem Argument, muss ein Komma vorangestellt werden.
  • Hinter dem letzten Argument jeder Zeile muss ein Komma stehen.
  • Argumente für welche kein Wert überbeben werden soll, müssen an der richtigen Stelle leer (mit ,,) erfasst werden.
Beispiel
DISPO-NEU,1,E,12.03.2014,2000,,A,I,,Hammer,1,,,"Klein,neuwertig",
DIPSO-NEU,1,E,12.03.2014,2000,,A,I,,Hammer,1,,,2,

Rückgabe

Rückgabewerte werden im IS-Cache abgelegt oder ignoriert.

OK-Rückgabe

Meldungen über fehlerhafte Operationen werden in einer Textdatei abgelegt.
Beispiel
DISPO-NEU,1,E,12.03.2014,2000,,A,I,,Hammer,1,,,"Klein,neuwertig",
##ERROR## (2532) Dispo-Mengen-Einheit unkorrekt:"Klein,neuwertig"

DIPSO-NEU,1,E,12.03.2014,2000,,A,I,,Hammer,1,,,2,
##ERROR## (25) Suchbegriff nicht gefunden:DIPSO-NEU

IBOS in F-Script

Alle IBOS-Operationen werden durch «IS(...)» aufgerufen.

Argument-Array

«IS(IBOS-Operation,arg1,arg2,...,argn,)»

Einzelargumente

«IS(SETI:BEGIN)»
«IS(SETI: arg1)»
«IS(SETI: arg2)»
......
«IS(SETI: argn)»
«IS(SETI:END)»

OK-Rückgabe

«IS(GETI:OK)»      # 0/1/>1 (Fehler N/J)
«IS(GETI:ERR_KEY)» # Error-Nummer und Error-Key
«IS(GETI:ERR_TXT)» # Error-Text (eigentliche Fehlermeldung)

Beispiele

Die möglichen Varianten am Beispiel von des IBOS EIN-DOK-NEU.

Argument-Array

«IS(EIN-DOK-NEU,4,H,3000,,123-A55,)»

Einzelargumente - Variante 1

Das Arbeiten mit Einzelargumenten ist vor allem dann nützlich, wenn einzelne Argumente sehr lang sind, oder mit sehr vielen Argumenten gearbeitet wird.
Zudem können die einzelnen Argumente mit Kommentar versehen werden, was in einem Argument-Array natürlich nicht möglich ist.
Variante 1: Es werden nur die Argumente zwischen BEGIN und END angegeben. Der Aufruf des IBOS erfolgt mit «IS(IBOS-Operationsname)» nachdem alle Argumente angegeben wurden.
«IS(SETI:BEGIN)»
# Dokumentstufe 4 - RE
«IS(SETI: 4)»
# Shortcut H
«IS(SETI: H)»
# Lieferanten Adress Nr.
«IS(SETI: 3000)»
# Lieferanten KP
«IS(SETI: )»
# Lieferanten Dokument Nr.
«IS(SETI: 123-A55)»
«IS(SETI:END)»
«IS(EIN-DOK-NEU)»

Einzelargumente - Variante 2

Das Arbeiten mit Einzelargumenten ist vor allem dann nützlich, wenn einzelne Argumente sehr lang sind, oder mit sehr vielen Argumenten gearbeitet wird.
Zudem können die einzelnen Argumente mit Kommentar versehen werden, was in einem Argument-Array natürlich nicht möglich ist.
Variante 2: Als erstes Argument wird direkt nach BEGIN der IBOS-Operationsname angegeben. Es folgen alle weiteren Argumente bis zum Abschluss mit END. Der Aufruf des IBOS erfolgt dann mit «IS», ohne dass der IBOS-Operationsname nochmals angegeben wird.
IS-Operationsname
«IS(SETI:BEGIN)»
# IBOS
«IS(SETI: EIN-DOK-NEU)»
# Dokumentstufe 4 - RE
«IS(SETI: 4)»
# Shortcut H
«IS(SETI: H)»
# Lieferanten Adress Nr.
«IS(SETI: 3000)»
# Lieferanten KP
«IS(SETI: )»
# Lieferanten Dokument Nr.
«IS(SETI: 123-A55)»
«IS(SETI:END)»
«IS»