Home Forum Nuclos Entwicklung Makros und Regeln nachgeschlagenen Wert via Regel aktualisieren

Ansicht von 7 Beiträgen - 1 bis 7 (von insgesamt 7)
  • Autor
    Beiträge
  • #8198
    Martin Rithos
    Teilnehmer

    Hallo zusammen,

    ich habe eine Maske in der diverse Werte nachgeschlagen und übertragen werden. Bspw. wird auf eine Preisliste zugegriffen. Die dort aufgelisteten Preise werden von Zeit und Zeit verändert. Der Nutzer wird das Feld, worauf sich das nachgeschlagene Feld bezieht, nur einmal setzen. Daher kurzum meine Frage, kann ich in einer Regel, bspw. eine Aktualisieren-Event-Regel, anweisen, dass die Werte erneut ausgelesen werden?

    Vielen Dank im Voraus. 🙂

    #8203
    Thomas Hempel
    Teilnehmer

    Hallo Priorditch,

    warum speicherst Du bei dieser Sachlage nicht eine Referenz auf den Preis? Dann wäre er automatisch immer aktuell!

    Gruß
    Thomas

    #8207
    Martin Rithos
    Teilnehmer

    Hallo Thomas,

    ich scheine dahingehend auf dem Schlauch zu stehen. Wie ich BO mit Hilfe von Referenzfeldern verknüpfen kann ist mir klar. Auch wie ich dank der Referenzfelder auswählbare Werte für „List of Values“-Felder erreiche. Woran ich aber scheitere ist genau einen referenzierten Wert automatisch zu übernehmen.

    Beispiel:

    Ich habe ein Businessobjekt „Autos“ in dem sich ein „Value of List“-Referenzfeld auf das BO „Türen“ befindet. Im BO „Türen“ gibt es wiederum ein Feld „Preis“.

    Nun möchte ich, dass im BO „Autos“ abhängig von der Auswahl der Tür, der dazugehörige Preis automatisch in ein Feld übernommen wird. Wie stelle ich das an? :unsure:

    Wenn ich zusätzlich zu den Türen, noch das Feld „Preis“ referenziere, passiert bei der Auswahl der Tür gar nichts – sprich das Feld bleibt leer.

    Vielen Dank im Voraus.

    #8208
    Frank Pavlic
    Teilnehmer

    Hi,
    du hast in der BO „Autos“ ein Feld, bspw. „Türpreis“, welches den Preis der ausgewählten Tür enthalten soll. Dann hinterlegst Du beim LOV-Feld „Tür“ eine Layout-Regel „Wert nachschlagen“ und da den Aktionstyp „Nachgeschlagenen Wert übertragen“. Als Quellkomponente wählst Du dann das Feld „Preis“ aus, als Zielkomponente „Türpreis“.
    Mehr zu diesem Thema findest du im Wiki unter http://wiki.nuclos.de/display/Konfiguration/Layout+Regeln

    Gruß
    Frank

    #8210
    Martin Rithos
    Teilnehmer

    Hallo Frank,

    genau so habe ich es bisher gelöst. Aber was mache ich, wenn sich der Türpreis, zur ausgewählten Tür, ändert? Daraufhin steht solange der alte Preis im BO Autos (Feld Türpreis) bis der Benutzer die Tür ändert oder erneut auswählt, was nicht passieren wird.

    Oder wird der nachgeschlagene Wert bei jedem Aufruf/Abspeichern auf’s neue abgefragt und übertragen?

    #8212
    Thomas Hempel
    Teilnehmer

    Hallo priorditch,

    ich will ja nicht an Deinem fachlichen Design mäkeln, also:

    Das kann eine Regel übernehmen, und zwar eine UpdateRule für das BO Tür.

    – wenn eine Änderung gespeichert wird
    – erstelle eine Liste aller Dependents „Auto“ (getAuto)
    – schreibe den Preis der Tür in alle Auto.tuerpreis

    Das wärs schon. Im Kern müsste in der Regel etwa stehen:


    private void AutoTuerPreiseSetzen(Tuer tuer) throws BusinessException {

    List lstAutos = tuer.getAuto();
    for(Auto auto : lstAutos){
    auto.setTuerpreis(tuer.getPreis());
    }
    }

    Wer einen Fehler findet, darf ihn behalten, ist jetzt nicht getestet B)

    Gruß
    Thomas

    #8232
    Martin Rithos
    Teilnehmer

    Danke, Thomas. Im Nachhinein war es eine überaus dämliche Frage, da hatte ich den Wald vor lauter Bäumen nicht gesehen. Nun ist alles klar.

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