Deletion Stubs auslesen, sonderbarer Fehler?

  • Geht nicht, dann würden die Dokumente ja trotz löschung in der DB verbleiben.
    also wächst die DB an.
    Es soll keine VIEW geben um die Dokumente anzuzeigen.
    Wie ich oben schon schrieb, geht es darum, das eine externe Apllikation das ganze verarbeiten soll.
    Es wird also danach alles ausserhalb von Notes geschehen.
    eider drück mir etwas der SChuh was die Zeit angeht, also tendiere ich zunächst zu der Lösung mit der seperaten DB, die dann ja auch immer vorhanden sein sollte.

  • Dir ist aber schon klar, daß du zusätzlich zum genannten Event jeden Agenten bzw jedes Script anpassen musst, das im Backend Dokumente löscht.
    Denn der Event greift nur Frontend-Löschungen ab.


    Ich frage mich immer noch wozu der ganze Aufwand.


    Warum braucht deine externe Applikation die gelöschten Dokumente

  • Damit die Application weiß, das es das dazugehörige Dokument ebenfalls löschen soll.


    In Notes Gelöscht -> lösche in ext applikation.


    Daher brauche ich einen hinweiß darauf ob das dokument gelöscht ist. Funktioniert mit den DelStubs super, solange ich daran komme.
    Also muß ich mir was einfallen lassen da es ja offensichtlich nicht immer geht und von irgendwas abhängt das ich nicht eingrenzen kann.

  • Die Idee ist ansich gut.
    Funktioniert leider nicht, da ich ja nicht ständig alle Dokumente auf der einen und auf der anderen Seite durchforsten will.
    DUnd zudem soll das ganze auch noch in vernünftigen Zeitrahmen passieren.
    Wenn ich auf der einen Seite 20.000 Dokumente habe, gehe ich dann hin und prüfe gegen alle?
    Zudem sync ich ja auch nciht nur einen user sondern mehrere.
    Und auf der seite die jetzt nites ist, kann auch jede andere beliebige ich nenn es mal Groupware lösung stehen.
    Die Lösung mit alles was nicht da ist wird gelöscht bringt dann auch noch andere Probleme mit sich.
    Wenn die DelStubs ordentich funktioneiren würden, dann wäre das alles auch kein Problem.
    Wie gesagt, ich weiß noch immer nicht warum mir das ding manchmal um die ohren fliegt und ein anderes mal nicht.

  • Also ein paar deiner Argumente sind etwas seltsam:


    Zitat


    Und auf der seite die jetzt nites ist, kann auch jede andere beliebige ich nenn es mal Groupware lösung stehen.


    Das würde der Nutzung von Deletion Stubs als Kriterium widersprechen, denn diese gibt es nur bei dieser einen Groupware Lösung


    Ein vernünftiger Zeitrahmen ist nur eine Frage wie die Synchronisation aufgebaut ist.
    Das Löschen kann ich sehr leicht und performant machen, indem ich anhand eines einzigen eindeutigen Kriteriums mir alle Elemente der einen und der anderen Seite hole und dann alles auf Empfängerseite eliminiere was auf Senderseite drin ist. Sind im Normall ein DBColumn auf Notes Seite und ein Select auf ner relationalen DB.
    Und Textlistenoperationen sind auch sehr zügig.
    Nur wenn es um den Abgleich von Inhalten geht wird es zeitaufwändig
    Ergebnis ist eine kurze Liste der Löschungen.


    Und die Deletion Stubs funktionieren richtig, nur dein Zugriff darauf nicht, was aber nicht an den Deletion Stubs selbst liegt.


    Und der Punkt automatisierte nicht userinitiierte Löschungen hast du damit auch nicht bedacht

  • Du kannst mir nicht erzählen, das der Aufruf falsch ist. Denn dann würde es NIE funktionieren. Es liegt am Empfängersystem, hier Lotus Notus.
    Im selben Programmdurchlauf bekomme ich mal ein DB Handle, und mal nicht.


    Wenn ich die Funktionierende Datenbank im Dateisystem mit dem Namen der nicht Funktionierenden versehe, funktioniert das auch.


    Das heisst, das der Name, der vorher angeblich nicht zu finden war, plötzlich wieder zu finden ist. Ohne das icham Sourcecode was änder. Der Hund muß also woanders begraben sein.


    Ich ich kann nur sagen, das zwischen Funktionieren und nicht Funktionieren lediglich eine OU ins Sytem eigefügt wurde. Seit dem Punkt funktioniert kein neu angelegter User mehr....


    Und das System, auf dem ich den Fehler dsas erste mal hatte, war auch eins mit OU's. Aber Du sagst mir, daran kann es nicht liegen.


    Dann habe ich definitiv keine Idee mehr und weiß nicht was es noch sein kann.


    Eventuell Ports und Firewall? Aber auch da glaube ich eher nicht dran...


    Das Kuriose ist, das ich im Domino Admin sehen kann, das der User, der Syncronisiert auf die Datenbank zugreift die es nicht gibt.......


    Gibt es vll noch andere Dateien die die Api da vermissen könnte? Leider ist der einzigste HInweis, Datei nicht gefunden.


    Und zum Aufbau des Sync: Wiederspricht sich nicht ganz. denn die ich nenne sie mal GroupWare Seite wird für jede Groupware selbstverständlich neu geschrieben weil unterschiedliche ysteme, wie du schon richtig gesagt hast. Die andere, ich nenne sie mal CRM Seite. wird nicht neu entwickelt, wäre auch auch etwas blöd :)


    Und somit ist es wieder passend, da alle implementirungen auf der GW Seite die gleichen Schnittstellen haben müssen.


    Ja was die Automatischen Löschungen angeht, gebe ich dir recht, die würde ich nciht mitbekommen, wäre aber meines erachtens nicht so schlimm, da es sich nur um die unkomplizierten C&S elemte handelt ;)
    Nein, die automatisch gelöschten brauche ich nicht. Die Termine werden in der CRM Welt gehalten. Jeder User bekommt halt nen Termin von der CRM Welt ins Notes gelegt.
    Ja ich weiß ist nicht die optimalste Lösung, aber das ist nicht auf meinem Mist gewachsen.

  • Du ziehst da falsche Schlussfolgerungen.


    Nur weil es bei einer Datenbank geht und bei einer anderen nicht heisst das noch lange nicht daß er Aufruf korrekt sein muss.
    Seltsamerweise haben ja API Programme, die direkt in C geschrieben sind kein Problem mit deinem Phänomen.


    Ich hatte schon ein paar Mal auf die eventuellen Konvertierungsprobleme hingewiesen die beim Aufruf einer eigentlich sprachenfremden API entstehen können. Die können sich genauso auswirken. Aber das scheinst du ja einfach zu ignorieren.


    Und daß das ganze von CRM nach Notes gehen soll hattest du bisher nicht erwähnt. Nur frage ich mich dann: Wozu interessieren dich dann die Löschungen im Notes ?


    Aber das Konzept für die Groupware Seite musst du so für jede Grouware neu entwickeln, während bei einem richtigen Sync das Konzept das gleiche bleibt nur die Aufrufe sich ändern würden, was bei einem Wechsel viel weniger Aufwand machen würde.


    Und zu den Löschungen: Da geht es nicht nur um die SoftDeletions sondern auch um alles was z.B. per Archivierung (manuell oder auch automatisch), Fixups, Syncs mit mobilen Endgeräten oder SyncServern,.... gelöscht wird.

  • Okay, Jungs.


    Ihr habt mich weich gekocht. Ich prüfe jetzt ob das Dokument existiert.Wenn nicht, ist es offensichtlich gelöscht worden.
    Damit habe ich die API aus dem Programm verbannt und mache alles über die DOM Objects.


    Trotdem würde ich halt gern wissen was da schiefgelaufen ist. Alse werde ich Hartnäckig weiter bohren :)


    Zitat

    Nur weil es bei einer Datenbank geht und bei einer anderen nicht heisst das noch lange nicht daß er Aufruf korrekt sein muss.
    Seltsamerweise haben ja API Programme, die direkt in C geschrieben sind kein Problem mit deinem Phänomen.


    Sorry, aber entweder ein Aufruf fällt auf die Nase oder nicht. Das der gleiche Aufruf, im gleichen Programmdurchlauf mit einer DB funktioniert und mit der anderen nicht kann nicht am Aufruf liegen. Wenn falsch dann falsch. halbschwanger gibt es nicht :) Lasse mich aber gern eines besseren belehren.


    Zitat

    Ich hatte schon ein paar Mal auf die eventuellen Konvertierungsprobleme hingewiesen die beim Aufruf einer eigentlich sprachenfremden API entstehen können. Die können sich genauso auswirken. Aber das scheinst du ja einfach zu ignorieren.


    Und die habe ich ja auch berücksichtigt. Daher habe ich nur alphanummerische Kleinbuchstaben benutzt. Ohne deutsche Umlaute. Denke das ich das Konvertierungsproblem damit erschlagen haben.


    Zitat

    Und daß das ganze von CRM nach Notes gehen soll hattest du bisher nicht erwähnt. Nur frage ich mich dann: Wozu interessieren dich dann die Löschungen im Notes ?


    WeilNotes nicht das führende System ist. Deshalb muß ich das wissen das die CRM Seite auch dann angepasst wird. Termin in Notes gelöscht, raus aus dem CRM, btw. als fertig markieren.


    Zitat

    Aber das Konzept für die Groupware Seite musst du so für jede Grouware neu entwickeln, während bei einem richtigen Sync das Konzept das gleiche bleibt nur die Aufrufe sich ändern würden, was bei einem Wechsel viel weniger Aufwand machen würde.


    Nope. Es wird ein Interface implementiert. Und die Erfahrung hat gezeigt, das die Groupwarelösungen tatsächlich so unterschiedlich sind und auch mit unterschiedlichen APIs arbeiten. Also ist da fasst eh immer der komplette Weg fällig, zumindest was die Zugriffe auf die Groupware angeht.


    Zitat

    Und zu den Löschungen: Da geht es nicht nur um die SoftDeletions sondern auch um alles was z.B. per Archivierung (manuell oder auch automatisch), Fixups, Syncs mit mobilen Endgeräten oder SyncServern,.... gelöscht wird.


    Deshalb sind die deletion Stubs ja auch absolut genial. Weil die Dokumente halt gelöscht sind.


    Meine nächste Aktion wird es sein, ein frisches Domino out of the box aufzusetzen und dann noch mal zu testen. Und dann füge ich eine OU hinzu. Malsehen was passiert. :)

  • Du verwechselst da ein paar Dinge miteinander, denn dein Vergleich mit schwanger hinkt.


    Ein ganz einfaches Beispiel:


    Du rufst eine Funktion auf und übergibst ihr zwei Feldwerte.
    Beim ersten Dokument funktioniert es beim zweiten nicht.
    Warum ?
    Einmal sind die Werte korrekt, z.B. zwei Zahlen, beim zweiten Mal nicht weil es z.B. eine Zahl und ein Text ist.


    Der Aufruf ist völlig korrekt trotzdem funktioniert es das zweite Mal nicht.
    Soviel zum teilweise schwanger.


    Und genau das ist das was ich mit Konvertierungsproblematik meine.
    Du beschränkst dich beim Blick darauf auf Sonderzeichen, ich betrachte da auch unterschiedliche Sprachen, Schnittstellen und somit auch unterschiedliche Übergabeformate.
    Was auf den ersten Blick korrekt aussieht muss es nicht unbedingt sein.


    Z.B. hast du einen String "Test" und da hängen noch zwei 0-Zeichen (also Char(0)) dran.
    Diese werden dir bei keiner Ausgabe angezeigt, trotzdem wird bei vielen Funktionen der Text nur korrekt verwendet wenn diese Zeichen weg sind.


    Und genau bei der Eklärung zu Löschungen und fertig markiert frage ich mich immer noch: Wozu dieser ganze Aufriss mit den Deletion Stubs ? Denn Anfangen kannst du damit immer noch nichts, außer du hast die UNID des Notes Eintrags in deinem CRM System nach der Synchronisierung. Und wenn du das hast geht es doch viel einfacher: UNID im CRM vorhanden, Dok im Notes nicht vorhanden -> CRM Termin erledigt
    Und das ganz ohne jeglichen Deletion Stub


    Dann hast du da andere Erfahrungen als ich.
    Denn die von mir beschriebene Technik kann ich in jedem Groupware System verwenden. Ich muss nur die Aufrufe nicht aber die ganze Logik ersetzen.
    Für dich scheint aber API = logischer Aufbau zu sein, was ich für völlig daneben halte