- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Doppelete Titel in der Datenquelle verhinden
Hallo,
ich stehe vor dem folgenden Problem und hoffe einer von Euch kann mir helfen.
Ich mรถchte beim Speichern von einem Datensatz in der Datenquelle prรผfen ob der Titel bereits vergeben ist.
Die Umsetzung wรผrde ich gerne mit einer RULE machen.
<RULE>
<SCHEDULE service="RecipeTitleValidator" id="rep1" delay="0">
<PARAM name="title">
<PROPERTY source="st_title" name="VALUE"/>
</PARAM>
</SCHEDULE>
<DO>
<VALIDATION>
<PROPERTY source="st_title" name="VALID"/>
<MESSAGE lang="*" text="Der Name ist bereits vergeben!"/>
</VALIDATION>
</DO>
</RULE>
Der Service RecipeTitleValidator wรผrde wie folgt aussehen
public class RecipeValidationService implements ValueService {
@Override
public Object getValue(final SpecialistsBroker broker, final Map<String, ?> parameters) {
//TODO Prรผflogik
return false;
}
}
Ich habe nur eine Frage, wie bekomme ich an den Service die aktuelle FS_ID von dem Datensatz รผbergeben?
Den aktuellen Datensatz muss ich fรผr die Prรผfung ja ausschlieรen.
Vielen Dank
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo David,
konntest du dein Problem mit einem hรถheren Delay lรถsen?
Wenn ja, wรคre es schรถn, wenn du Michaels Antwort als "richtige Antwort" markierst, damit andere Benutzer mit dem gleichen Problem die Lรถsung leicht finden kรถnnen.
Grรผรe,
Hannes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo David,
reden wir hier vom CC, vom SA oder von beidem?
Vielleicht hilft dieses Posting (und das darin verlinkte, das die "Basis" erklรคrt) weiter?
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Michael,
von beiden.
Gruss
david
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi David,
dann sollten die verlinkten (s.o.) Postings helfen (ich hatte die Links nachtrรคglich eingefรผgt).
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
vielen Dank fรผr die Tipps. Ich habe die Regel implementiert, die ID des Datenquelleneintrags erhalte ich auch bereits.
<RULE>
<SCHEDULE delay="100" id="rep1" service="RecipeValidationService">
<CONDITION>
<PROPERTY name="FOCUS" source="titel"/>
</CONDITION>
<PARAM name="title">
<PROPERTY name="VALUE" source="titel"/>
</PARAM>
</SCHEDULE>
<DO>
<VALIDATION scope="SAVE">
<PROPERTY name="VALID" source="titel"/>
<MESSAGE lang="*" text="Der Rezepttitel ist bereits vergeben!"/>
</VALIDATION>
</DO>
</RULE>
Ich hรคtte noch eine letzte Frage. Ich wรผrde gerne den Service nur beim Verlassen des FOCUS auf dem Feld titel antriggern. Geht das รผberhaupt?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi David,
nein, eine Regel nur "beim Verlassen" eines Feldes auszufรผhren geht nicht. Das liegt letztlich daran, dass mit den Regeln keine Events verbunden werden kรถnnen sondern quasi nur "Zustรคnde", die man abfragen kann.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ahh OK, vielen Dank.
Das ist natรผrlich relativ unglรผcklich, beim schnellen Tippen werden dadruch die Aktionen unterbrochen.
Dadurch kommt es zu dem folgenden Fehler.
FSVersion=5.2.312.72667#3807;JDK=1.8.0_91 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=09.03.2017 13:46:23
de.espirit.common.InterruptedError: java.lang.InterruptedException
at de.espirit.firstspirit.client.io.ServerCaller.handleCallException(ServerCaller.java:619)
at de.espirit.firstspirit.client.io.ServerCaller.call(ServerCaller.java:594)
at de.espirit.firstspirit.client.io.ServerCaller.call(ServerCaller.java:408)
at de.espirit.firstspirit.client.io.ServerCaller.doManagerCall(ServerCaller.java:508)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:477)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:58)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hmm, das finde ich jetzt eher seltsam. Die FS-Version ist allerdings auch รผber ein Jahr alt (sonst hรคtte ich vorgeschlagen hier unseren TechSupport zu fragen).
Hast Du mal versucht, den delay-Parameter zu รคndern?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo David,
konntest du dein Problem mit einem hรถheren Delay lรถsen?
Wenn ja, wรคre es schรถn, wenn du Michaels Antwort als "richtige Antwort" markierst, damit andere Benutzer mit dem gleichen Problem die Lรถsung leicht finden kรถnnen.
Grรผรe,
Hannes

