Home › Forum › Nuclos Entwicklung › Makros und Regeln › customRule Status ändern – Nuclos 4.0.17
- Dieses Thema hat 11 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahre, 5 Monaten von
Martin Rithos.
-
AutorBeiträge
-
16 Juni 2014 um 13:22 Uhr #7674
Jan Smiesko
TeilnehmerHallo,
ich experimentiere mit der neuen API und wenn ich nachstehendes Programm ausführte, kommt die Fehlermeldung: „Der Datensatz konnte nicht gespeichdert werden, weil er zwischenteitlich von einem anderen Benutzer geändert wurde. ….“
package org.nuclet.businessentity;
import org.nuclos.api.rule.CustomRule;
import org.nuclos.api.context.CustomContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.StatemodelProvider;
import org.nuclet.statemodel.PartnerSM;/** @name
* @description
* @usage
* @change
*/
@Rule(name="Test", description="Test")
public class Test implements CustomRule {public void custom(CustomContext context) throws BusinessException {
Partner p = context.getBusinessObject(Partner.class);
StatemodelProvider.changeState(p, PartnerSM.State_10);}
}Ich möchte, dass nach gewissen custom-Schritten der Status geändert wird und nicht ein Dialog erscheint.
Kennt dieses Verhalten jemand?
FG
Jan17 Juni 2014 um 00:27 Uhr #7676Ramin Goettlich
TeilnehmerKönnen Sie etwas genauer beschreiben, was Sie versuchen?
* Diese Regel hängt an einem Button in der Maske für die Entität Partner?
* Tritt die Fehlermeldung beim Klick auf diesen Button auf oder später, z.B. bei einem anschliessenden Versuch, zu speichern?
* Hängen am Statuswechsel nach Status 10 ebenfalls Regeln?
* Der Inhalt der server.log wär hilfreich, um die Quelle des Fehlers besser zu lokalisieren.17 Juni 2014 um 01:38 Uhr #7678Jan Smiesko
Teilnehmer* Diese Regel hängt an einem Button in der Maske für die Entität Partner?
Antwort: Ja* Tritt die Fehlermeldung beim Klick auf diesen Button auf oder später, z.B. bei einem anschliessenden Versuch, zu speichern?
Antwort: beim Klick auf diesen Button* Hängen am Statuswechsel nach Status 10 ebenfalls Regeln?
Antwort: Nein, hätte ich als nächstes getestet* Der Inhalt der server.log wär hilfreich, um die Quelle des Fehlers besser zu lokalisieren.
Attachments:17 Juni 2014 um 10:06 Uhr #7679Ramin Goettlich
Teilnehmer* Hängen an der Entität Partner auch Update- oder UpdateFinal-Regeln?
* Ein grösserer Ausschnitt der server.log wäre gut, der gepostete Teil enthält nur die Fehlermeldung, mehr Zeilen oberhalb würden zeigen, was vorher passiert ist.17 Juni 2014 um 10:36 Uhr #7681Jan Smiesko
Teilnehmer* Hängen an der Entität Partner auch Update- oder UpdateFinal-Regeln?
Antwort: Nein* Ein grösserer Ausschnitt der server.log wäre gut, der gepostete Teil enthält nur die Fehlermeldung, mehr Zeilen oberhalb würden zeigen, was vorher passiert ist.
Antwort: Oberhalb kommt das gleiche wie bereits übermittelt, weil 2x ausgeführt. Davor kommt nur der Startprozess. Die letzten Zeilen vor dem Fehler siehe Beilage.Attachments:17 Juni 2014 um 11:43 Uhr #7682Ramin Goettlich
TeilnehmerWir haben auch Fälle, in denen wir Statuswechsel per CustomRules ausführen – problemlos.
CustomRule-Buttons lassen sich entweder so konfigurieren, dass sie nur klickbar sind, wenn der Datensatz gespeichert ist oder so, dass sie auch klickbar sind, wenn der Datensatz geändert und noch nicht gespeichert, also dirty, ist. In letzterem Fall wird implizit gespeichert, bevor der Inhalt der CustomRule zur Ausführung kommt. Das wäre eine mögliche Ursache, könnte das der Fall sein?
Ggf. hilft ein Screenshot unmittelbar vor Klick auf den Button weiter.
17 Juni 2014 um 12:34 Uhr #7684Jan Smiesko
TeilnehmerLeider tritt der Fehler in beiden Fällen auf. Eingefallen ist mir noch, dass die Entität Partner zwei Aktionen (natürlichePerson bzw. juristischePerson) hat. Die Buttons sind nur in einer Aktion (Layout) implementiert.
CustomRegel „ausführen“ wurde auf State_20 geändert.
siehe Screenshot …
Attachments:17 Juni 2014 um 12:56 Uhr #7687Ramin Goettlich
TeilnehmerDann sollte es so eigentlich funktionieren, am besten mal ein Ticket auf support.nuclos.de erstellen.
Kurzfristiger Workaround ggf: Entfernen der Buttons und Ausführen des Statuswechsels über die Status-Dropdown (die CustomRules tun ja nicht mehr, als den Status zu wechseln).
17 Juni 2014 um 15:42 Uhr #7689Jan Smiesko
TeilnehmerDanke für die Info!
Der Grund für customRule ist, dass der User mit einem Klick den Wechsel vornimmt, ohne dass ein Dialog erscheint.
Werde bei Gelegenheit ein Ticket erstellen …
FG
Jan27 August 2015 um 08:20 Uhr #8518Martin Rithos
TeilnehmerGibt es hierzu eventuell Neuigkeiten? Ich stehe vor dem gleichen Problem.
25 September 2015 um 13:26 Uhr #8530Franz Holzer
Teilnehmerwas genau ist dein Problem ?
Bei mir funktioniert das ohne Probleme.Versionen ?
6 Oktober 2015 um 02:53 Uhr #8569Martin Rithos
TeilnehmerMittlerweile 4.5.2 und weiterhin das gleiche Problem.
Über einen Button soll der Status gewechselt werden. Doch es erscheint jedes Mal folgende Meldung:
Sicherheitshalber speichere das BO zuvor nochmals ab, leider ohne Erfolg.
import org.nuclos.api.provider.StatemodelProvider;
import org.nuclet.meinnuclet.AuftraegeSM;BusinessObjectProvider.update(auftrag);
StatemodelProvider.changeState(auftrag,AuftraegeSM.State_50);
🙁
-
AutorBeiträge