Home › Forum › Nuclos Konfiguration › Sonstiges › Diverse Fragen eines Neulings
- Dieses Thema hat 5 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 10 Jahren, 3 Monaten von
Frank Pavlic.
-
AutorBeiträge
-
15 August 2013 um 18:16 Uhr #6898
Marcel Fuhrmann
TeilnehmerHallo zusammen,
ich habe ein mich die Tage ein wenig mit Nuclos beschäftigt und bin regelrecht begeistert. Innerhalb weniger Zeit hatte ich schon was halbwegs Anschauliches zusammen. Und das trotz wenig Ahnung 🙂
Nach Anlegen von Entitäten, Relationen und diversen Layouts bin ich allerdings auf das ein oder andere Problem gestoßen, auf das ich mir bisher keinen Reim machen konnte.1. Beim definieren einer Aktion, kann ich keine Entität auswählen. Das Auswahlfeld ist leer. Im Wiki gibt es dazu einen Artikel, aber dort scheint das zu klappen.
2. Für Entitätenattribute habe ich kein Typ „Zeit“ gefunden. Also einen Zeitstempel. Oder auch Datum und Zeit in einem. Wie geht das?
3. Statusmodelle sind nicht entitätsübergreifend, oder?
4. In z.B: einem automatisch generierten Layout benötige ich eine Druckfunktion. In Subformularen ist eine Funktion mit drin. Wie geht man das an?
5. „Pflichtfelder“. Wenn ich ein neues Attribut erstelle kann ich das als Pflichtfeld deklarieren. Mache ich das nachträglich bei einem bestehendem, bin ich immer gezwungen einen Defaultwert zu setzen. Mache ich da etwas falsch?
Vielen Dank für Eure Hilfe!
—
Marcel15 August 2013 um 21:45 Uhr #6899Ramin Goettlich
TeilnehmerHallo Marcel,
1) Aktionen stehen aktuell nur für Entitäten mit Statusmodell zur Verfügung.
2) Der Datentyp „Zeit“ fehlt tatsächlich noch. Man muss sich mit einem Textfeld behelfen (dort z.B. „13:33“). Geplant ist die Einführung eines solchen Datentyps in Nuclos bereits, siehe http://support.nuclos.de/browse/NUCLOS-1292
3) Gute Frage! Nein, für entitätsübergreifende Prozesse dienen die Arbeitsschritte / Generatoren.
4) Unklar was gemeint ist (in Subformularen ist eine drin?). Das wonach Sie suchen, sind vermutlich Datenquellen und Formulare, siehe z.B. http://wiki.nuclos.de/display/Konfiguration/Reporting+Formulare und die entsprechenden Nebenseiten dort.
5) Wenn ein Feld zum Pflichtfeld werden soll, darf es ja nicht mehr leer sein – deswegen ja Pflichtfeld. Also muss ein Standardwert festgelegt werden, der in den Fällen gesetzt wird, wo der Inhalt in den bestehenden Daten leer ist.
Grüsse,
nuclosian16 August 2013 um 13:03 Uhr #6901Marcel Fuhrmann
TeilnehmerHallo nuclosian,
danke für die schnellen Antworten.
zu 2) Das ist in der Tat ein wenig unschön. Schon gar wenn man mit Terminen für Kunden arbeiten will. Ohne solche Funktionalität kann ich Nuclos gleich wieder einstampfen. 🙁
Gibt es denn Hoffnung, dass diese Möglichkeit relativ zeitnah entwickelt wird?—
Marcel18 August 2013 um 00:30 Uhr #6905Ramin Goettlich
TeilnehmerHallo,
worin genau besteht denn die Anforderung? In allen Fällen, in denen wir Uhrzeiten benötigten, war ein „umfunktioniertes“ Textfeld hinreichend. Die Eingabe lässt sich ja z.B. über eine Regel validieren (damit auch nur HH:MM drinsteht und HH zwischen 0 und 24 liegt und MM zwischen 0 und 60), z.B. mit einer Regel ähnlich der unten abgebildeten. Auch liesse sich die Eingabe in Regeln in echte Zeiten umrechnen und damit z.B. rechnen).
Ein eigener Datentyp hätte lediglich den Vorteil, dass man z.B. ein passendes Widget für die komfortable Eingabe einer Uhrzeit über die Oberfläche (statt der textuellen direkten Eingabe) hätte. Andererseits: Ein Datum gibt ja in der Regel auch schneller direkt per Hand ein.
Da deswegen der Bedarf eher geringt ist, ist ein spezieller Datentyp für Uhrzeiten momentan niedrig priorisiert und in allernächster Zukunft nicht vorgesehen.
Wenn sich jemand bereit zeigt, ein solches Feature zu finanzieren, rutscht die Priorität natürlich rasch nach oben 😉 Den Aufwand schätzen wir auf ca. 2-3 Tage.
Grüsse,
nuclosian
public static void formatTime(org.nuclos.server.ruleengine.RuleInterface server, String sEntity, String sFieldFrom, String sFieldUntil) throws NuclosBusinessRuleException {
Collection collmdvo = server.getDependants(sEntity, null);
for (MasterDataVO position: collmdvo) {
String beginnzeit = position.getField(sFieldFrom, String.class);
String endezeit = position.getField(sFieldUntil, String.class);if ((beginnzeit != null) && (endezeit != null)) {
// Doppelpunkt
final String TIME24HOURS_PATTERN = "([01]?[0-9]|2[0-3]):[0-5][0-9]";
java.util.regex.Pattern patternDoppelpunkt = java.util.regex.Pattern.compile(TIME24HOURS_PATTERN);
java.util.regex.Matcher matcherBeginnzeit = patternDoppelpunkt.matcher(beginnzeit);
java.util.regex.Matcher matcherEndezeit = patternDoppelpunkt.matcher(endezeit);// ohne Doppelpunkt
final String TIME24HOURS_PATTERNOhneDp = "([01]?[0-9]|2[0-3])[0-5][0-9]";
java.util.regex.Pattern patternOhneDp = java.util.regex.Pattern.compile(TIME24HOURS_PATTERNOhneDp);
java.util.regex.Matcher matcherBeginnzeitOhneDP = patternOhneDp.matcher(beginnzeit);
java.util.regex.Matcher matcherEndezeitOhneDP = patternOhneDp.matcher(endezeit);if (matcherBeginnzeit.matches()) {
} else if (matcherBeginnzeitOhneDP.matches()) {
StringBuilder sbBeginnzeit = new StringBuilder(beginnzeit);
sbBeginnzeit.insert(2,":");
String resultbeginn = sbBeginnzeit.toString();
position.setField(sFieldFrom, resultbeginn);
} else {
throw new NuclosBusinessRuleException("Bitte Uhrzeit entweder im Format hh:mm oder im Format hhmm angeben");
}if (matcherEndezeit.matches()) {
} else if (matcherEndezeitOhneDP.matches()) {
StringBuilder sbEndezeit = new StringBuilder(endezeit);
sbEndezeit.insert(2,":");
String resultende = sbEndezeit.toString();
position.setField(sFieldUntil, resultende);
} else {
throw new NuclosBusinessRuleException("Bitte Uhrzeit entweder im Format hh:mm oder im Format hhmm angeben");
}}
}
}
20 August 2013 um 11:08 Uhr #6911Marcel Fuhrmann
TeilnehmerHallo,
es geht um Terminierung von Kunden… Nein, wir wollen niemanden ausschalten. Nur Termine legen und im Nachhinein natürlich auch auswerten. 🙂
Was die Eingabe angeht, bin ich auch ein Freund von Tastatureingabe.
—
Marcel20 August 2013 um 16:01 Uhr #6928Frank Pavlic
TeilnehmerHallo Marcel,
die einfachste Variante sehe ich über zwei Comboboxen, eine für Stunde und eine für Minuten. Stunde-Box enthält die Werte 00-23, Minuten-Box 00,15,30,45 . Für Termine eintragen kommst Du damit super aus! Damit brauchst Du auch nichts über Regeln evaluieren. Denn ich glaube nicht ,dass Du Kundentermine wie 10:23 Uhr ausmachst.Just my 2 cents.
Gruß
Frank -
AutorBeiträge