Home › Forum › Allgemeines › Allgemeines zu Nuclos › addition
- Dieses Thema hat 41 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahre, 6 Monaten von
K. Struckmeier.
-
AutorBeiträge
-
29 November 2016 um 11:20 Uhr #9144
K. Struckmeier
TeilnehmerHier 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:29 November 2016 um 11:35 Uhr #9145Nick Röder
TeilnehmerDas 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
29 November 2016 um 12:02 Uhr #9146K. Struckmeier
TeilnehmerVielen Dank. Ja ich hatte die Regel doppelt :). Wenn ich jetzt aber einen Artikel anlege, speichert er es ab, aber es wird nichts addiert.
29 November 2016 um 12:12 Uhr #9147Nick Röder
TeilnehmerHaben Sie eine Update-Regel definiert? Ihr Beispiel oben ist nur eine Insert-Regel.
29 November 2016 um 13:02 Uhr #9148K. Struckmeier
TeilnehmerMeinen Sie die „Anlegen (im Anschluss)“ Regel?
29 November 2016 um 13:22 Uhr #9149K. Struckmeier
TeilnehmerMü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);
}
}29 November 2016 um 13:24 Uhr #9150Nick Röder
TeilnehmerDas 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=81938329 November 2016 um 13:34 Uhr #9151K. Struckmeier
Teilnehmerwü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?
29 November 2016 um 13:43 Uhr #9152K. Struckmeier
TeilnehmerJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Es klappt. DANKE DANKE DAKE !!!!!
29 November 2016 um 14:10 Uhr #9153K. Struckmeier
TeilnehmerNä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);}
}29 November 2016 um 14:32 Uhr #9154Nick Röder
TeilnehmerHier 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.
30 November 2016 um 12:01 Uhr #9156K. Struckmeier
TeilnehmerHallo 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? -
AutorBeiträge