Beiträge von michaelz

    taurec:
    Gefragt war ob man ein Exchange Postfach mit dem Exchange Protokoll in Notes verarbeiten kann. Ich entnehme Deiner Aussage nein.


    heuti:
    IMAP alleine reicht nicht. Es geht schon darum möglichst auch die Termine und die Kontakte in Notes zu haben.


    Ausserdem ist IMAPgegen die MS Online Services derzeit nicht möglich. Das ganze sol gegen einen Exchange Online gemacht werden.


    Also scheint es da keine Lösung für zu geben.


    Danke Euch

    Hallöchen,


    ich bin etwas verwirrt, das das Forum Notes<>Exchange unterhalb von mobile liegt und hoffe das ich hier richtig bin mit meiner Anfrage.


    Im prinzip ist es recht simple:


    Notes / Domino soll mit Kalender, Adressen und Mails aus einem Exchange herraus gefüttert werden.
    Am genialsten ist natürlich eine Connectortechnologie, die im Hintergrund läuft und das dann halt tut.


    Bisher habe ich leider immer nur von Migration gelesen, was mir suggeriert, das die Daten einmalig übernommen werden. Es kann natürlich auch sien, das ich das Wort Migration immer nur in diesem Zusammenhang benutze und es hier halt falsch ist. :)


    Es wäre schön wenn mir dazu jemand ein paar sachliche Aussagen schreiben könnte um einzuschätzen ob das sinvoll und produktiv machbar ist.


    Vll gibt es ja auch sowas wie den DAMO, nur uimgekehrt. :) Sprich ein Exchange connector der sich in den Client integriert.


    Gruß Michael

    Okay, ich übersetze noch mal eben:


    Brauche ich für BB einen eigenen Domino Server oder kann ich das auch mit dem regulär laufenden Dominoserver machen?


    Das war die Frage.
    Deine Antwort lese ich so:
    Es muß kein dedizierter Server nur für den BB existieren. Es reicht der der das Mailing sowieso macht.

    Hallo,


    muß ich, um Domino mit einem BB zu Synchroniseren einen eigenen Domino Server einsetzen? Es geht um 20 User. Reicht es nicht das die Datenbanken dann vom vorhandenen Server gehohlt werden?

    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 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.

    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.

    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.

    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.

    Ich hatte mir gedacht, ich such mir die Stelle, BEVOR definitiv gelöscht wird,ruf eine eigene Routine auf, die in eine gesonderte Datenbak die Daten in jeweils einem Dokument ablegt, die ich brauche (das wer war es habe ich ja da ich weiß wer löschen will) und habe damit eine Datenbank it "myDeletionStubs" die für mich aber auch immer zugänglich sind.


    Sieht da noch jemand irgendwelche Stolperfallen bei der IDee?


    Gruß Michael

    Ganz einfach. Gibt es zu einer DocID ein DelStub, wurde dieses Dokument gelöscht.


    Und da es hier um einen automatismus geht, kann ich keine andere Softeware nutzen um das zu prüfen.


    Ich habe aber eine weitere Idee um die CAPI zu umschiffen.


    Wenn nun jedesmal wenn ein Dokument gelöscht wird, in eienr weiterne Datenbank ein Dokument angelegt wird, wo halt die Originale ID und der Username und das Löschdatum drin steht, habe ich darauf ja Zugriff ohne Com.
    Ich muß nur einmalig wissen das ein Dokument gelöscht ist. Danach wird es nicht mehr berüksichtigt.


    Wie klingt das?


    Kann mir jemand aus dem Stehgreif sagen wo ich den Punkt in den Templates (8.5) finde, wo ein Dokument gelöscht wird? ALso genau den Punkt bevor das löschen gestartet wird. Damit müsste ich nach meinem empfinden alle möglichen Löschwege abgefangen haben.

    Okay, wenn dem so ist, wie Du sagtst, verstehe ich nciht, das exakt der selbe Aufruf bei einer Datenbank funktioniert und bei der nächsten nicht.


    Das Programm geht mehrere Datenbanken nacheinander durch. EIne funzt eine nicht. Wie kann da dann der Aufruf falsch sein?
    Die Datenbanekn werden in einem anderen Teil des Programms über die DOmObject ausgelesen. ALso mit dem gleichen Daten die aus der Konfiguration der Software stammen gefüttert. Dort kann ich nur den Servernamen und den Filenamen angeben.
    Mehr nicht.
    Also habe ich derzeit folgendes Konstrukt:
    Datenbank a:
    Geänderte Dokumente seit dem xxx werden gelesen
    Geänderte Deletionstubs seit dem xxx werden gelesen


    Datenbank b:
    Geänderte Dokumente seit dem xxx werden gelesen
    Geänderte DeletionStubs seit dem xxx werden nicht gelesen weil eine Datei nicht gefunden wird.


    Wenn ich Datenbank a den namen der Datenbank b gebe, funktioniert es wieder.

    Du hast recht, aber nach meinem Verständnis ist hier die Brücke zwischen C und C#/VB.net.
    Die Definition sagt, er soll die Funktion aus der DLL nehmen und als Übergabeparameter die verwalteten Parameter die angegeben sind.


    Aber ich denke das hier auch nicht wirklich das Problem liegt.


    Ich habe eben mal folgendes probiert:


    Datenabnk, die nicht geht in eine Datenbank umbenenannt (im Filesystem) die geht. Und siehe da, sie geht.


    Danach habe ich dann wieder umbenannt und sie da, es geht nicht mehr. Es liegt also nicht an der DB, oder siehst du das anders?
    Vielleicht noch als Hinweis, wobei ich erstmal nicht glaube das das was damit zu tun hat.


    Ich habe als letzten SChritt bevor ich diesen Fehler bekommen ahbe eine OU hinzugefügt. Seitdem klappt das ganze nicht mehr, egal, ob ich nun einen User mit OU anlege oder ohne. Ist da vll etwas was zu beachten wäre?
    Ich denke mal nicht, denn Notespeek nutzt ja die selben Funktionen.


    Und zusatz:
    Als Fehlermeldung von DBOpen kommt: Datei nicht gefunden.
    Aber die Datei ist definitv da.....


    Ich verzweifel grade echt. Das kost mich dermasen viel Zeit....
    Und dann so ein nicht wirklich nachvollziehbarer Fehler.
    Hat denn wirklich keiner ein Stück Code in VB.Net der Funktioniert um die DelStubs zu lesen?


    Alternativ C#, liesst sich ähnlich wie VB :)


    gruß Michael

    Sory, ich vergaß die definition:

    Code
    <DllImport("nnotes.dll")> Private Shared Function _
                OSPathNetConstruct( _
                ByVal portName As String, _
                ByVal ServerName As String, _
                ByVal FileName As String, _
                ByVal retPathName As StringBuilder _
                ) As UInteger
            End Function

    Hier der Code. Zusätzliche Erläuterungen in [color=0066FF]BLAU[/color] im Code.


    Code
    Public Shared Function GetDeletedObjectsUNIDs(ByVal serverName As String, _            ByVal dbName As String, ByVal todayMinusDays As Int32) As ArrayList            Dim databasePath As String            Dim returnStringBuffer As StringBuilder            Dim status As IntPtr            Dim databaseHandle As IntPtr            Dim stubs As ArrayList = New ArrayList            Dim resultStringRef As IntPtr            Dim currentNlsInfo As IntPtrTry                returnStringBuffer = New StringBuilder(256)                ' --- build an API-friendly path to the current database (i.e., <Server>!!<FilePath>)                OSPathNetConstruct("", serverName, dbName, returnStringBuffer)                databasePath = returnStringBuffer.ToString

    [color=0066FF]Der Pfad sieht bei allen Datenbank von der Syntax gleich aus. server!!mailordner\mailfilename ohne nsf[/color]

    Code
    ' Holen eines Pointers auf eine (unmanaged) Struktur vom Typ NLS_INFO                currentNlsInfo = OSGetLMBCSCLS()                ' Pointer auf einen String im unverwalteten Speicherbereich, der später das Ergebnis aufnimmt holen                resultStringRef = Marshal.StringToHGlobalUni(databasePath)                ' Nimmt den Rückgabewert des Funktionsaufrufs von NLS_translate(...) auf                Dim nlsStatus As UInt16                ' Länge des Ergebnisstrings                Dim returnLength As Int16 = databasePath.Length * 2                ' Konvertieren des Datenbankpfads in das LMBCS-Format (eigenes Format von Lotus-Notes)                nlsStatus = NLS_translate(databasePath, -1, resultStringRef, returnLength, (NlsTranslateFlags.TARGETISLMBCS Or NlsTranslateFlags.SOURCEISUNICODE), currentNlsInfo)

    [color=0066FF]
    ' Hier ist der Status bei beiden Datenbaken 0, DatabasePath ist gefüllt[/color]


    Da sich zwei Datenbanken unterschiedlich verhalten, stellt sich mir die Frage warum ist das so. Ich versuche die DB zu öffnen und der DB Handle ist null. Was mich total kirre macht ist die Tatsache, das ich bei einer DB einen Handle bekomme und bei einer anderen nicht.

    Dann habe ich ganz klar das recht auf der DB zu arbeiten. Manager. Sollte reichen um die zu lesen
    Was mir bei meiner weiteren Recherche aufgefallen ist, das das DB Handle gar nicht richtig übergeben wird. Ich gehe davon aus das ein DB´Handle von 0 nicht grade eine geöffnete Datenbank ist.
    Da stellt sich mir dann aber die frage, warum die eine Datenbank geht und die andere nicht.
    Beide liegen in mal und haben keine SOnderzeichen oder lange dateinamen.
    der aufbau für die anfrage ist:
    svr!!mail/ntest
    svr!!mail/ntest1


    bei ntest1 geht es bei der zweiten nicht
    Der Fehler trat bei mir erst nach dem ich eine OU angelegt habe auf.
    Noch ideen zu später stunde?

    Ja, ich kann darauf zugreifen.
    Zum Ablauf:
    Erst werden die ncih gelöschten Dokumente gehohlt. Geht einwandfrei über die Domino Object Library
    Dann werden noch die gelöschten Documente (deletion Stubs) gehohlt.
    Über die CAPI. Geht mal und geht mal nicht.
    Also je nach datenbank.
    Wie sieht es denn aus mit den Berechtigungen des Registrationsserver in den Dantenbanken? Der darf doch alle und gibt es unterschiede an en Rechten zum lesen von Documenten und lesen von Deletion stubs?

    Mahlzeit,


    ich mal wieder....


    Ich hab irgendwie ein Problem mit der C-API. Ich beschreibe als erstes mal die Umgebung:


    Installierter Notes Client Version 8.5
    Domino: 8.0.2
    Syncdienst für Drittanwendung


    Problem:


    Die Deletion Stubs.
    Ich teste die Schnittstelle grade gegen mehrere Templates. Bisher war ich so naiv, das die deltetion Stubs halt deletion stubs sind und in jeder DB gleich behandelt werden.
    Leider sieht es so aus, das ich mit einer bestimmten Datenbank probleme habe, diese deletion Stubs zu lesen.
    Hier bekomme ich bei dem AUfruf der Funktion:


    NSFDbGetModifiedNoteTable


    den Fehler: ungültige Parameter


    Gibt es beim öffnen von Datenbanken, deren Besitzer eine OU haben einen Unterschied zu Datenbanken ohne OU?


    Ich bin für jede Hilfe Dankbar. Sollte jemand ein kleines Tool haben, mit dem sich die DelStubs auslesen lassen, würde ich dieses gern nutzen um einfach mal auf die Datenbanekn zu schauen.
    Noch besser wäre es, wenn das ganze in vb.net verfasst ist :)


    mit rauchendem Kopf und hoffnung auf wertolle tips


    Michaelz

    Zitat


    taurec schrieb:
    Das konnten sie auch davor schon nicht. Das war schon immer ein DateTime.


    Muß ich dich etwas Korrigieren. Bis Versionen kleiner 8 hat das Template die Daten aber verarbeitet. Erst ab 8 gibt es beim öfnnen eine Fehlermeldung vom Template. ABer das ist ja Zweitrangig, weil behoben.

    Zitat


    Hast du dich auch wirklich vollständig an das Calendaring & Scheduling Redbook gehalten ?


    Teilweise haben ältere Versionen nicht ganz strikt auf die EInhaltung bestanden, aber wenn du es sauber machst gibt es da auch keine Probleme


    Ich würde mich liebend gerne strikt an das Redbook halten, aber wie es bei IBM Informationen fast üblich ist, ist es nicht grade sehr Verständlich geschrieben. Für mich zumindest.


    Auch nach ausgiebiger Lektüre des Redbooks ergibt sich für mich noch immer nicht klar, welche Felder denn nun ein "muß" sind. Hier fehlt mir persönlich eine Übersicht, welches Template welche Felder haben muß. Ebendso vermnisse ich en Dokument, welches die Änderungen von Verson 7 auf Version 8 beschreibt.


    Lege ich in Version 6 einen Termin an, habe ich ca. 10 Items. Bei Version 7 sind es dann 15 und ab 8 plötzlich 25. Da muß doch ein Dokument sein, das beschreibt welche Änderungen gemacht wurden. Zumindest für Standardtemplates....


    Ich werde mir nun noch einmal alle Items anschauen, die ich schreibe und welche Werte sind in den Items befinden.


    Und ich finde ebenfalls keine Informationen zu einem Feld namens UTA. Das existiert nur in Dokumenten, die von Extern geschrieben werden... Keine Ahnung was das wieder ist.


    Gruß Michael.