Home Forum Nuclos Entwicklung Makros und Regeln MasterDataVO intid

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #4407
    Markus Glitzner
    Teilnehmer

    Hallo!

    Wie komme ich in einem MasterDataVO (ohne Statusmodell) zur aktuellen INTID?

    CollectableSearchExpression liefert nicht das richtige Ergebins, da die Datensätze nicht eindeutig sind.

    folgende Varianten hätte ich mal probiert, geht aber nicht:
    id = mdvo.getField(„Id“, Integer.class);
    id = mdvo.getField(„intid“+“Id“, Integer.class);

    Gruß
    Hugo

    #4409
    Frank Pavlic
    Teilnehmer

    Hallo Hugo,
    wenn wir von der Hauptentität reden —-> server.getObjectId()

    Reden wir von Dependants, dann getId(), zum Beispiel:

    Collection deps = server.getDependants(„“, null);
    for (MasterDataVO ap : deps) {
    Integer id = (Integer) ap.getId();
    }

    Gruß

    Frank

    #4413
    Markus Glitzner
    Teilnehmer

    getId hab ich gesucht (das ich da nicht selber drauf gekommen bin), danke.

    funkt aber auch erst, wenn der Datensatz bereits gespeichert ist. Vielleicht geht ja eine zweite Regel, die ich dann im Anschluss ausführe …

    #4417
    Frank Pavlic
    Teilnehmer

    Hallo Hugo,
    richtig, getId() macht keinen Sinn in einer Aktion „Speichern“, sondern eher in Aktion „Speichern im Anschluss“. Wobei da noch ein Bug ist, siehe Beitrag
    https://www.nuclos.de/index.php/de/forum/makros-und-regeln/3491-geschaeftsregel-speichern-im-anschluss-bug. Laut JIRA ist dieser bereits gefixt und müsste mit der nächsten Version 3.2.0 funktionieren.

    Wenn Du nicht auf den Fix warten kannst, hast Du immer noch die Möglichkeit, in der Regel mit server.getMasterDataIds(Entität, CollectableSearchExpression) zu arbeiten und die neu angelegten Daten zu holen. Die server.getObjectId() gibt Dir auf jeden Fall die INTID des Hauptdatensatzes zurück, und damit kannst Du dann die per getMasterData(…) auf die Subform-Datensätze zugreifen und bearbeiten. Die Geschäftsregel muss logischerweise dann in der Aktion „Speichern im Anschluss“ ausgeführt werden.

    Nicht elegant, aber funktional…

    Gruß

    Frank

    #4418
    Markus Glitzner
    Teilnehmer

    super, danke für die Info!

    Gruß
    Hugo

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)