Domino 9 und frühere Versionen > ND8: Entwicklung
Optimierung einer Ansichtauswahl-Formel
Klaas:
Hallo,
ich habe eine Ansicht in der immer die Kunden angezeigt werden, welche in dieser Woche ausgeliegert werden. Solche Ansichten habe ich auch noch für in 1 Woche und für vor einer Woche.
Die User wollen aber nicht das in einer Ansicht alle Wochen stehen.
Und die User wollen so viele Daten, das es nicht in eine Kalenderansicht passt.
Die Ansicht wird nämlich ausgedruckt.
Für die Dokumenten auswahl habe ich folgende Auswahlformel:
Der Indexaufbau dauert relativ lange.
Die Dokumente liegen in einer Gedys Intraware.
Dann kann ein Dokument noch 3 x Auftauchen ( 1 Lieferung 2. und 3.)
Wenn es keine Teillieferung ist dann nur als 1 und als 3 Lieferung.
--- Code: ---Today:=@Today;
Day:=@Weekday(Today);
DeliveryDate:=fdSMCDeliveryDateKBI;
SecoundDeliveryDate:=fdSMCSecoundDeliveryDateKBI;
ThirdDeliveryDate:=fdSMCThirdDeliveryDateKBI;
Teillieferung:=fdSMCPartDelivery;
SELECT
DocType = "faActivities" &
DeliveryDate !="" &
(TemplateName = "Auftrag BK" | TemplateName = "Folgeauftrag BK") &
!(DeleteStatus != 0) &
@Contains(@Text(fdSMCInfoTo);"5") &
(
(DeliveryDate >= @Adjust(Today;0;0;@ToNumber("-"+@Text(@Sum(Day : -2)));0;0;0) &
DeliveryDate <= @Adjust(Today;0;0;@Sum(@ToNumber("-"+@Text(Day)):6);0;0;0)) |
(SecoundDeliveryDate >= @Adjust(Today;0;0;@ToNumber("-"+@Text(@Sum(Day : -2)));0;0;0) &
SecoundDeliveryDate <= @Adjust(Today;0;0;@Sum(@ToNumber("-"+@Text(Day)):6);0;0;0) &
Teillieferung = "Ja") |
(ThirdDeliveryDate >= @Adjust(Today;0;0;@ToNumber("-"+@Text(@Sum(Day : -2)));0;0;0) &
ThirdDeliveryDate <= @Adjust(Today;0;0;@Sum(@ToNumber("-"+@Text(Day)):6);0;0;0))
)
--- Ende Code ---
Und nun meine Fragen:
-kann man an der Auswahlformel noch etwas optimieren, damit der Indexaufbau schneller geht?
-kann ich in der Ansicht verhindern, das beim Speicher von Dokumenten ein Refresh/Reload von Gedys ausgeführt wird? Ähnlich wie Autoupdate für Ansichten in Agenten?
Für jede Antwort bin ich sehr dankbar.
Viele Grüße
Klaas
ascabg:
Hallo,
Datumswerte inklusive der Berechnung von Datumswerten in einer Ansichtsauswahl.
Wenn Du die Suche hier im Forum mal kurz in Anspruch nimmst, dann wirst Du sehr viele Verweise in die Richtung finden, dass es der Performance nicht gerade sehr foerderlich ist so etwas zu tun.
Andreas
koehlerbv:
Tipps:
Embedded single category view mit YYYY-MM als Kategorie. Dann kannst Du sogar vor dem Aufruf die KW auswählen lassen, die interessiert.
Machbar, auf aufwändiger: Personal folders für die Anzeige und eine Routine, die diese entspr. Bedarf füllt.
Bernhard
pram:
Weil ichs grad zur Hand habe
Folgende Formel liefert YYYY KW:xx
--- Code: ---_date := HierMeinDatum;
_donnerstag := @Adjust(_date; 0; 0; 3-@Modulo(5+@Weekday(_date);7);0;0;0);
_Jan4 := @Date(@Year(_donnerstag);1;4);
_kw1Do := @Adjust(_Jan4; 0; 0; 3-@Modulo(5+@Weekday(_Jan4);7);0;0;0);
KW := @Integer(1,5+(_donnerstag-_kw1Do)/86400/7);
@Text(@Year(_donnerstag)) + " KW:" + @Right("0" +@Text(KW);2)
--- Ende Code ---
Gruß
Roland
Klaas:
Erstmal vielen Dank für euer Schnellen Antworten.
@Andreas:
Als ich mich an das Thema herran gesetzt habe, hatte ich schon vermutet, das druch die Datumsberechung es zu Performance Problemen kommt. Bei meinem Rechner habe ich keine Probleme aber die User beschweren sich.
Die Überlegung die Berechnung abhängig der KW zu machen ist super. Denn im Dokument selbst habe ich schon die KW's berechnet. Das heist ich spare eine Wertberechung.
@Bernhard:
Mit Ordner wäre das Problem des Indexaufbaus behoben. Aber der Programmieraufwand ist um einiges größer. Ich denke ich werde erst das mit den KW's versuchen und in Ruhe Ordner erstellen, diese von einem Agenten befüllen lassen und wenn sich ein Dokument ändert den Agenten erneut laufen lassen. So hat der Server die Arbeit und die User bekommen nichts davon mit.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln