Domino 9 und frühere Versionen > ND7: Entwicklung
db.search liefert ungewollte Ergebnisse
MadMetzger:
Genau aus dem Grunde habe ich nachgefragt... Warum suchst du dann nicht direkt nach den Gerätedokumenten?
koehlerbv:
Ich denke, jetzt kommen wir vom Thema etwas ab - man kann das Problem ja auch allgemeiner sehen: Wie suche ich nach ranges in Strings in Mehrfachfeldern?
Die ideale Lösung wäre sicherlich:
1 Dokumenttyp "Gerätetyp"
1 Dokumenttyp "Gerät"
Dadurch auch nur eine Seriennummer pro Dokument, und man kann das einzelne Gerät zudem noch viel besser beschreiben (Auslieferung, Bemerkungen, Kunde, Standort, Historie). Aber auch das ist wieder zu konkret für das allgemeine Problem - siehe oben.
Ich sehe für das Kernproblem (wenn die Applikation nicht gerade gezogen werden kann oder soll) nur eine Möglichkeit (zumindest auf die Schnelle und so zwischendurch gepostet):
- Ermittlung der "Gleichteile" der Strings für "von" und "bis"
- Bilden einer DocumentCollection auf Basis des "Gleichteils" (mit dbSearch und @Contains oder mit einer kategorisierten Ansicht und GetAllDocumentsByKey (key, False))
- Und dann Loopings drehen ...
Bernhard
Alexis:
Bernhard Du warst schneller, trotzdem meine Erklärung:
Tut mir leid wenn ich mich nicht deutlich genug ausgedrückt habe:
Jedes Gerät wird in zig Anlagen eingesetzt und wird in der Datenbank als ein Antwortdokument pro Anlage einmal geführt mit der Stückzahl n. In diesem Dokument sind nun alle n Seriennummern gespeichert, die in der Anlage vorkommen.
Dieses wiederholt sich hundertfach entsprechend der Vielzahl von Geräten, die in der Anlage vertreten sind.
Ich hoffe es ist jetzt ausreichend klar.
Alexis
MadMetzger:
Ich glaube jetzt habe ich es verstanden... Ein Gerätetyp kann x-mal in einer Anlage verbaut sein und je Typ und Anlage gibt es ein Antwortdok mit allen Seriennummern der eingebauten Geräte?
Algorithmus hat ja Bernhard schon geliefert... Poste doch aber bitte hinterher, wie und ob du es hinbekommen hast... Einige sind bestimmt neugierig... ;)
Alexis:
Hallo,
ich habe mich für folgenden Weg entschieden:
- User wählt Gerätetyp und Seriennummernbereich aus
- Baue aus ersterem eine Collection über alle erfassten Geräte in der DB
- Untersuche dann per Schleife das Array mit allen Seriennummern auf Übereinstimmung
- Bei Erfolg wird das/die Dokument(e) in ein Ordner gestellt
Dieser Weg macht wohl auch dadurch Sinn, dass ich nicht ausschließen kann, dass Gerätefamilien ev. sogar gleiche Seriennummernbereiche verwenden (bitte nicht fragen warum). Der Zeitfaktor dürfte bei dem Ziel (Rückrufaktion) keine zu große Rolle spielen.
Danke für Eure anregenden Beiträge. Bei Erfolg setze ich ein "Daumen hoch".
Alexis
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln