Home Forum Nuclos Konfiguration Sonstiges Diverse Fragen eines Neulings

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #6898
    Marcel Fuhrmann
    Teilnehmer

    Hallo 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!


    Marcel

    #6899
    Ramin Goettlich
    Teilnehmer

    Hallo 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,
    nuclosian

    #6901
    Marcel Fuhrmann
    Teilnehmer

    Hallo 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?


    Marcel

    #6905
    Ramin Goettlich
    Teilnehmer

    Hallo,

    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");
    }

    }

    }
    }

    #6911
    Marcel Fuhrmann
    Teilnehmer

    Hallo,

    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.


    Marcel

    #6928
    Frank Pavlic
    Teilnehmer

    Hallo 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

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)