Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos BusinessObjectProvider: save, insert, update, delete, deleteLogical, insertAll, Collection, Modifiable, Regel.

globe with meridians Sprache: Deutsch · English

open book BusinessObjectProvider

BOs aus Regeln anlegen, ändern und löschen – save(), *All-Methoden und logisches Löschen.

Status
colourGrey
titleReferenz
Status
colourBlue
titleEntwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2

...

Wozu dient der BusinessObjectProvider?

Die Klasse BusinessObjectProvider

...

stellt

...

Funktionen zum Anlegen, Ändern und Löschen von Businessobjekten aus einer Regel heraus bereit – auch für Objekte, die nicht zum aktuellen Ablauf (Kontext) gehören.

Warnung
titleAchtung: parallele Bearbeitung

...

Bereits in Masken dargestellte Daten werden über den Kontext in

...

die Regel geladen.

...

Werden dieselben Daten parallel über den BusinessObjectProvider (update)

...

verarbeitet, kann es durch unterschiedliche Bearbeitungsversionen zu Fehlern

...

kommen.

...

Hinweis

...

title

...

@Deprecated insert

neu:

Interface Modifiable

Die Insert-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel ein neues Kontext-fremdes, also nicht zum aktuellen Ablauf gehörendes BusinessObjekt anzulegen, zu befüllen und in der Datenbank abzulegen.

Codeblock
public static <T extends BusinessObject> void insert(T type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

Die InsertAll-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel mehrere neue Kontext-fremde, also nicht zum aktuellen Ablauf gehörende BusinessObjekte anzulegen, zu befüllen und in der Datenbank abzulegen. Die übergebenen Einträge werden sequentiell abgearbeitet.

Codeblock
public static <T extends BusinessObject> void insertAll(Collection<T> type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

@Deprecated update

neu

Interface Modifiable

Die Update-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel ein existierendes Kontext-fremdes, also nicht zum aktuellen Ablauf gehörendes BusinessObjekt zu verändern und in der Datenbank abzulegen.

Codeblock
public static <T extends BusinessObject> void update(T type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

Die Update-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel existierende Kontext-fremde, also nicht zum aktuellen Ablauf gehörende BusinessObjekte zu verändern und in der Datenbank abzulegen. Die übergebenen Einträge werden sequentiell abgearbeitet.

Codeblock
public static <T extends BusinessObject> void updateAll(Collection<T> type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

Moderner Weg

Die statischen Methoden insert, update und delete sind deprecated. Nutze stattdessen das Interface Modifiable (save()/delete() direkt am BO).

save() – anlegen & ändern

Neue BOs mit new instanziieren, befüllen und mit save() speichern. Referenzen (z.​B. Artikel, Lager) über ihre Id zuweisen – z.​B. per QueryProvider.

Codeblock
languagejava
public class Bestellunganlegen implements InsertRule {
    public void insert(InsertContext context) throws BusinessException { 

        Anfrageposition newPos = new Anfrageposition();
        
        Artikel myArticel = QueryProvider.getById(Artikel.class, 40465351L);
        Lager myLager = QueryProvider.getById(Lager.class, 40276065L);
   
        newPos.setPositionsnr(0);        
        newPos.setArtikelId(myArticel.getId());
        newPos.setAnzahl(2.0d);
        newPos.setLagerId(myLager.getId());
     
     
		newPos.save();
    }
}

insertAll / updateAll / deleteAll

Verarbeiten eine Collection sequentiell und reichen jeden Eintrag an die jeweilige Einzelmethode weiter.

Codeblock
languagejava

...

@Deprecated delete

neu

Interface Modifiable

Die delete-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel ein existierendes Kontext-fremdes, also nicht zum aktuellen Ablauf gehörendes BusinessObjekt physikalisch aus der Datenbank zu löschen.

Codeblock
public static <T extends BusinessObject> void delete(T type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

Die deleteAll-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel existierende Kontext-fremde, also nicht zum aktuellen Ablauf gehörende BusinessObjekte physikalisch aus der Datenbank zu löschen. Die übergebenen Einträge werden sequentiell abgearbeitet.

Codeblock
public static <T extends BusinessObject> void deleteAll(Collection<T> type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

Die deleteLogical-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel ein existierendes Kontext-fremdes, also nicht zum aktuellen Ablauf gehörendes BusinessObjekt logisch aus der Datenbank zu löschen.

Codeblock
public static <T extends LogicalDeletable> void deleteLogical(T type) throws BusinessException;

Ein Beispiel dazu gibt es hier.

...

Die deleteLogicalAll-Methode erlaubt es dem Regelprogrammierer während der Abarbeitung einer Regel existierende Kontext-fremde, also nicht zum aktuellen Ablauf gehörende BusinessObjekte logisch aus der Datenbank zu löschen. Die übergebenen Einträge werden sequentiell abgearbeitet.

...

public static <T extends 

...

BusinessObject> void 

...

insertAll(Collection<T> type) throws BusinessException;

deleteLogical / deleteLogicalAll

Löschen Einträge logisch (nur für BOs, die LogicalDeletable implementieren). Bestehende Verknüpfungen können ein Löschen verhindern und die Regelverarbeitung abbrechen.

Codeblock
languagejava
QueryProviders

Verwandte Seiten

gear QueryProvider


Daten laden.

Öffnen →

gear DatasourceProvider


Datenquellen ausführen.

Öffnen →

gear GenerationProvider


Arbeitsschritte.

Öffnen →

Ein Beispiel dazu gibt es hier.