Workspace.Currentdocument ist leer

  • Hallo!


    Ich habe gerade ein Phänomen entdeckt, das ich mir nicht erklären kann:
    Ich habe in Notes ein Dokument geöffnet (im Edit-Mode).
    Beim Drücken eines Buttons wird ein Script ausgeführt.
    Die Befehle sind meines Erachtens vorschriftsmäßig, aber der Eintrag für Workspace CurrentDocument bleibt leer.
    Dadurch funktioniert natürlich auch der Rest des Scriptes nicht...


    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = ws.CurrentDocument

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Du öffnest das Dokument aber nicht zufälligerweise in einer DialogBox oder der Button steckt in einer Subform?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Nö!


    Ein "normales" Dokument ohne Subforms.
    Der Button ist aus Formatierungsgründen in einer Tabelle. Das dürfte aber wohl nicht relevant sein ;)

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Das ist der gesamte Code:


    Sub Click(Source As Button)
    '**************************************************************************************************
    '* Person bei einer Einrichtung abmelden und die Informationen in die Historie
    '* schreiben
    '* Felder werden geleert, Einrichtung wird in Einrichtungslisten gelöscht
    '* (c) Andrea , 22.10.2009
    '* letzte Änderung:
    '**************************************************************************************************
    Dim ws As New NotesUIWorkspace

    Dim se As New NotesSession
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim EH, EH1, EH2, EH4 As String
    Dim EH3 As Variant
    Dim item As NotesItem
    Dim array As Variant
    Dim formula As String
    Dim coll As NotesDocumentCollection
    Dim tdoc As NotesDocument

    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document

    EH1 = doc.Einrichtung(0)
    EH2 = Cstr(doc.gemeldet_am(0))
    EH3 = ws.Prompt( 3, "abgemeldet am", "Bitte geben Sie das Datum der Abmeldung in der Form tt.mm.jjjj ein!" , Cstr(Today))
    EH = "Beschäftigt bei " & EH1 & " (gemeldet am " & EH2 & ", abgemeldet am " & EH3(0) + ")"
    Call uidoc.FieldAppendText("Einr_Historie", ";" & EH )
    Call uidoc.FieldSetText( Einrichtung, "")
    Call uidoc.FieldSetText( gemeldet_am, "")

    '**************************************************************************************************
    array = doc.GetItemValue("AlleAktivenEinrichtungen")
    Forall m In array
    If Instr(m, EH1) Then m = ""
    End Forall
    array = Fulltrim(array)
    Call doc.ReplaceItemValue( "AlleAktivenEinrichtungen", array)
    '************************
    formula = "Form = ""Company"" & Nummer = """ + doc.nummer(0) & " "" "

    Set db = se.CurrentDatabase
    Set coll = db.Search( formula, Nothing, 1)
    Set tdoc = coll.GetFirstDocument
    EH4 = tdoc.Nummer(0)
    array = doc.GetItemValue("CompanyCode")
    Forall m In array
    If Instr(m, EH4) Then m = ""
    End Forall
    array = Fulltrim(array)
    Call doc.ReplaceItemValue( "CompanyCode", array)

    Call doc.Save(True, False)
    End Sub

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Ich kann mir eigentlich auch nicht vorstellen, daß es am Code liegt....
    Kann mal wieder irgendwas am Client schuld sein?
    Werde das Script mal an einem anderen Client ausprobieren.

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Und was wären deiner Meinung nach die anderen Fehler im Script???

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • So! Test gemacht.
    Auf'm 6.5er Client auf einer anderen Maschine funktioniert's.


    Und nu?

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Bei der Formel formula kommt der folgende String raus:
    "Form = ""Company"" & Nummer = ""AMON-7LHM4L "" "
    Ich glaube, das ist noch nicht ganz richtig für die Suche, oder?

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • So:


    Jetzt habe ich das Script mal überarbeitet. Zwar läuft es auch meinem 8.5er Client immernoch nicht, aber die anderen Fehler sind raus und auf dem 6.5er läuft's jetzt ordentlich.


    Sub Click(Source As Button)
    '**************************************************************************************************
    '* Person bei einer Einrichtung abmelden und die Informationen in die Historie
    '* schreiben
    '* Felder werden geleert, Einrichtung wird in Einrichtungslisten gelöscht
    '* (c) Andrea , 22.10.2009
    '* letzte Änderung: 23.10.2009
    '**************************************************************************************************
    Dim ws As New NotesUIWorkspace

    Dim se As New NotesSession
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim EH, EH1, EH2, EH3, EH4 As String
    Dim item As NotesItem
    Dim item1 As NotesItem
    Dim item2 As NotesItem
    Dim array As Variant
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document

    EH1 = doc.Einrichtung(0)
    EH2 = Cstr(doc.gemeldet_am(0))
    EH3 = ws.Prompt( 3, "abgemeldet am", "Bitte geben Sie das Datum der Abmeldung in der Form tt.mm.jjjj ein!" , Cstr(Today))
    EH = "Beschäftigt bei " & EH1 & " (gemeldet am " & EH2 & ", abgemeldet am " & EH3 + ")"

    Set item = doc.GetFirstItem( "Einr_Historie" )
    Call item.AppendToTextList( EH )

    Set item1 = doc.GetFirstItem( "Einrichtung" )
    Call item1.Remove
    Set item2 = doc.ReplaceItemValue( "gemeldet_am" , "")
    ' Call doc.Save(True, False)

    '**************************************************************************************************
    array = doc.GetItemValue("AlleAktivenEinrichtungen")
    Forall m In array
    If Instr(m, EH1) Then m = ""
    End Forall
    array = Fulltrim(array)
    Call doc.ReplaceItemValue( "AlleAktivenEinrichtungen", array)
    '************************
    array = doc.GetItemValue("nummer")
    Forall m In array
    If Instr(m, EH4) Then m = ""
    End Forall
    array = Fulltrim(array)
    Call doc.ReplaceItemValue( "CompanyCode", array)

    Call doc.Save(True, False)
    End Sub

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Genau die die du jetzt rauskorrigiert hast.


    Du solltest besser standardmäßig Option declare eintragen, dann kann dir das gar nicht passieren.


    Die Formel stimmt schon, denn die doppelten Anführungszeichen müssen sein oder was soll daran deiner meinung nach nicht passen ?

  • OK, vergessen wir mal den Suchstring.
    Das hab ich jetzt soweit hinbekommen.
    Aber im 8.5er Client habe ich immernoch das Problem, daß die ws.CurrentDocument nicht gesetzt wird.
    Es ist auch egal, ob Button oder Aktion.
    Lege mal ein Bild des Script-Debuggers bei...

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Wie gesagt: Bei mir tut das Script mit dem 8.5.1 Client problemlos.


    Also wird es vermutlich daran liegen wie deine Maske aufgebaut ist oder eben dein Client hat einen Schuss.
    Das war ja bisher schon öfters bei dir der Fall

  • Tja, nachdem es bei einem Kollegen, der auch den 8.5er Client hat, funktioniert gehe ich auch eher davon aus, daß meine Client-Umgebung 'nen Schuß hat.


    Was würdest Du denn vorschlagen...? Komplett deinstallieren und inkl. bookmark etc. ganz neu aufsetzen?

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Na vielleicht warte ich damit, bis die deutsche Version von Notes 8.5.1 vorliegt...

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)

  • Notes Client neu installiert, keine Daten übernommen, sondern bookmark etc. neu erstellen lassen.


    Der Aufwand hat sich wohl gelohnt, denn jetzt klappt es!

    LG Lotusfee
    Domino 9.0.1/ Notes 8.5.2 :-o


    "Wenn man keine Ahnung hat, einfach mal Fresse halten" (Dieter Nuhr)
    ... oder Jemand fragen, der sich mit sowas auskennt. (Gelbe Seiten)