Home Forum Nuclos Konfiguration Businessprozesse Feldinhalt von Client beim Speichern verwenden

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #4264
    Martin Schwärzel
    Teilnehmer

    Hallo

    Ich muss beim Speichern eines Datensatzes aus einem Datumsfeld die week_of_year auslesen können und in ein Feld eintragen können, damit nach der Kalenderwoche sortiert werden kann.
    Wie komme ich an die Werte ran. Wenn sie schon in der Datenbank drin sind, weiss ich wie aber bevor sie gespeichert sind ist mir nicht klar.

    Danke und Gruss

    martin69

    #4276
    Thomas Schiffmann
    Teilnehmer

    Hallo martin 69,

    um die Kalenderwoche eines Datum zu bestimmen, können Sie in einer Geschäftsregel die Klasse java.util.Calendar verwenden (http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html).

    Beispiel:

    Date d = (Date)server.getFieldValue("datumsfeld");
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    int kw = c.get(Calendar.WEEK_OF_YEAR);

    Evtl. müssen Sie noch die Eigenschaft minimalDaysInFirstWeek festlegen, da die Berechnung der Kalenderwoche davon abhängig ist.

    Viele Grüße
    tsc

    #4387
    Martin Schwärzel
    Teilnehmer

    Hallo tsc

    Hat mit der Kurzversion geklappt, danke

    Calendar c = Calendar.getInstance();
    c.setTime((Date)server.getFieldValue(„Auftrag“,“zustelldatum“));
    server.setFieldValue(„Auftrag“,“kalenderwoche“,c.get(Calendar.WEEK_OF_YEAR));

    Viele Grüsse
    martin69

    #4504
    Martin Schwärzel
    Teilnehmer

    Hallo

    Ich habe zusätzlich eine Exception eingebaut, welche aber nicht ausgegeben wird.

    public void rule(RuleInterface server) throws NuclosBusinessRuleException {

    Calendar c = Calendar.getInstance();
    c.setTime((Date)server.getFieldValue("Auftrag","zustelldatum"));
    if ((Date)server.getFieldValue("Auftrag","zustelldatum") == null) {
    throw new NuclosBusinessRuleException("Das Zustelldatum ist nicht ausgefüllt!");
    }
    else{
    server.setFieldValue("Auftrag","kalenderwoche",c.get(Calendar.WEEK_OF_YEAR));
    }
    }

    Beim Speichern wird die Regel bei vorhandenem Datum korrekt ausgeführt.
    Wenn kein Eintrag vorhanden ist wird nicht die Exception ausgegeben, sondern die Standardmeldung

    Der Datensatz konnte nicht erzeugt werden.
    null

    Was fehlt noch?

    Danke und Gruss
    Martin

    #4506
    Thomas Schiffmann
    Teilnehmer

    Hallo Martin,


    c.setTime((Date)server.getFieldValue("Auftrag","zustelldatum"));

    verursacht bereits eine NullPointerException. Wenn Sie die Zeile in den else-Block verschieben, sollte es funktionieren.

    Viele Grüße
    tsc

    #4524
    Martin Schwärzel
    Teilnehmer

    Danke, genau das wars

    Martin

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