Home Forum Allgemeines Allgemeines zu Nuclos addition

Ansicht von 12 Beiträgen - 31 bis 42 (von insgesamt 42)
  • Autor
    Beiträge
  • #9144
    K. Struckmeier
    Teilnehmer

    Hier sind meine Regeln (Screenshot).

    Hier ist mein aktueller Code:

    package org.nuclet.businessentity;

    import org.nuclos.api.rule.InsertRule;
    import org.nuclos.api.context.InsertContext;
    import org.nuclos.api.annotation.Rule;
    import org.nuclos.api.exception.BusinessException;

    /** @name
    * @description
    * @usage
    * @change
    */
    @Rule(name=“Regel“, description=“Regel“)
    public class Regel implements InsertRule {

    @Override
    public void insert(InsertContext context) throws BusinessException {
    Artikel artikel = context.getBusinessObject(Artikel.class);
    artikel.setMenge1(artikel.getMenge1().add(artikel.getMenge2()));
    }
    }

    Attachments:
    #9145
    Nick Röder
    Teilnehmer

    Das ist ein Screen des Regelmanagers. Bitte posten Sie ein Bild aus der Listenansicht der Regeln.

    KonfigurationRegelwerkeRegel (serverseitig).

    Wir brauchen ja eine Übersicht über alle Ihre Regeln

    #9146
    K. Struckmeier
    Teilnehmer

    Vielen Dank. Ja ich hatte die Regel doppelt :). Wenn ich jetzt aber einen Artikel anlege, speichert er es ab, aber es wird nichts addiert.

    #9147
    Nick Röder
    Teilnehmer

    Haben Sie eine Update-Regel definiert? Ihr Beispiel oben ist nur eine Insert-Regel.

    #9148
    K. Struckmeier
    Teilnehmer

    Meinen Sie die „Anlegen (im Anschluss)“ Regel?

    #9149
    K. Struckmeier
    Teilnehmer

    Müsste dieser Code nicht funktionieren?

    package org.nuclet.businessentity;

    import org.nuclos.api.rule.InsertRule;
    import org.nuclos.api.context.InsertContext;
    import org.nuclos.api.annotation.Rule;
    import org.nuclos.api.exception.BusinessException;

    /** @name
    * @description
    * @usage
    * @change
    */
    @Rule(name=“addition“, description=“addition“)
    public class addito implements InsertRule {

    public void insert(InsertContext context) throws BusinessException {

    Artikel artikel = context.getBusinessObject(Artikel.class);
    int a,b,c;
    a=artikel.getMenge1();
    b=artikel.getMenge2();
    c=a+b;
    artikel.setMenge1(c);
    }
    }

    #9150
    Nick Röder
    Teilnehmer

    Das kann ich Ihnen nicht sagen. Eine Anlegen-Regel greift beim Anlegen eines Objekts. Eine Update-Regel greift, wenn Sie einen bestehenden Datensatz ändern.

    Ist die Regel vom Typ Final, greift die Regel erst nach dem der Datensatz gespeichert wurde. Dies nutzt man u.a. um dann andere Objekte ebenfalls zu ändern.

    Das alles können Sie hier nachlesen.
    http://wiki.nuclos.de/pages/viewpage.action?pageId=819383

    #9151
    K. Struckmeier
    Teilnehmer

    würde dieser Code den ich eben gepostet hat funktionieren. Ich habe nämlich diesen Code jetzt in „Anlegen“ gespeichert. In der Maske von Artikel (wenn ich einen neuen Artikel anlegen will) habe ich einmal Menge1 und Menge2. Und wenn ich den Artikel abspeicher sollte sich doch der Wert in Menge1 ändern, oder?

    #9152
    K. Struckmeier
    Teilnehmer

    JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Es klappt. DANKE DANKE DAKE !!!!!

    #9153
    K. Struckmeier
    Teilnehmer

    Nächstes Problem wie mache ich es, dass wenn ich im BO Wareneingang, Attribute Menge, eine zahl eingebe und die dann zum BO Artikel, Attribute Menge2, dazu addiert wird?

    Hier mein Code:

    package org.nuclet.businessentity;

    import org.nuclos.api.rule.InsertRule;
    import org.nuclos.api.context.InsertContext;
    import org.nuclos.api.annotation.Rule;
    import org.nuclos.api.exception.BusinessException;

    /** @name
    * @description
    * @usage
    * @change
    */
    @Rule(name=“addition“, description=“addition“)
    public class addition implements InsertRule {

    @Override
    public void insert(InsertContext context) throws BusinessException {
    Artikel artikel = context.getBusinessObject(Artikel.class);
    Wareneingang wareneingang = context.getBusinessObject(Wareneingang.class);

    int a,b,c;
    a=wareneingang.getMenge();
    b=artikel.getMenge2();
    c=a+b;
    artikel.setMenge2(c);

    }
    }

    #9154
    Nick Röder
    Teilnehmer

    Hier finden Sie Beispiele um sich ein Objekt anhand der ID zu holen.

    http://wiki.nuclos.de/pages/viewpage.action?pageId=819945

    Alternativ können Sie auch in den bestehenden Regeln des Lager-Nuclets nachsehen. Dort gibt es ja viele Methoden die als Beispiele dienen.

    #9156
    K. Struckmeier
    Teilnehmer

    Hallo ich verstehe diesen Code nicht so ganz:

    Artikel myArticel = QueryProvider.getById(Artikel.class, 40465351L);
               
            myArticel.setEinstandspreis(3.99d);
             
            BusinessObjectProvider.update(myArticel);

    Das ist vom Bsp. Aktualisieren bestehender Einträge.
    Wo muss ich da was ändern?

Ansicht von 12 Beiträgen - 31 bis 42 (von insgesamt 42)