folder private on first use nicht in lotus script verfügbar

  • ich habe einen ordner, den ich als desktop privat bei erster nutzung deklariert habe. schiebe ich dort dokumente hin, wird auch einen privater ordner angelegt (2 fach sichtbar im designer). lediglich in lotus script kann ich den ordner nicht zuweisen?


    Dim s As New NotesSession
    Dim f As NotesView


    Set db = s.CurrentDatabase
    Set f = db.GetView("export")


    f ist nothing obwohl der ordner vorhanden ist!


    irgenwelche ideen? ach ja, version ist 6.5.2 (und daran lässt sich leider nix ändern ...)

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Die Hilfe sagt dazu aus:


    Zitat


    Using getView returns public views and folders and private views and folders that are owned by the effective id running the agent. Private views stored in the desktop are not


    Trifft da eine der Einschränkungen bei dir zu ?

  • bingo ...


    If the database is local, GetView returns both public and personal views and folders. If the database is on a server, GetView returns only public views and folders.


    schöner mist. brauche das für nen export. die sortierung soll halt anders sein als in der view. wollte daher die dokumente in nen privaten ordner schieben der entsprechend sortiert ist.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Patrick: da nur die markierten dokumente exportiert werden sollen geht es leider nicht anders.


    taurec: in den views wird der name interessanterweise angezeigt. klickt man sich weiter durch und schaut sich die eigenschaften an, sieht man anhand des erstellungsdatums das es sich um die 'ursprungsview' handeln muss.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Und wenn du den Export in einen Agenten packst, der auf alle Dokumente der aktuellen Ansicht läuft und den du von einer Ansichten-Aktion aufrufst.


    Dann sollte session.CurrentDatabase.UnprocessedDocuments doch alle Dokumente liefern.


    Oder vielleicht bekommst du über die UIView Kontakt zu der NotesView selbst.


    HTH
    Thomas

  • wie gesagt, das problem ist das ich eine andere sortierung benötige!


    auch wenn ich in der ansicht nach thema stehe, soll der export immer nach datum erfolgen. daher hilft aus meiner sicht nur das verschieben in einen ordner (der entsprechend sortiert ist). da evtl. mehrere personen gleichzeitig exportieren ist ein öffentlicher ordner auch nicht die optimale lösung.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Vielleicht kann man die Aktion in der Ansicht nach Thema umbenennen in "Für Export markieren" o.ä.


    Sie fügt dann die markierten Dokumente dem persönlichen Ordner hinzu (und bringt öffnet ihn vielleicht auch).


    In dem Ordner ist dann die Aktion "Exportieren". Wenn du über die UIView an die NotesView kommst, kannst du auch mit einem Navigator oder einer NotesViewEntryCollection arbeiten, um den Export sortiert nach den Ordner-Kriterien durchzuführen.


    Verkaufen könnte man den Anwendern das eventuell darüber, dass sie erst aus verschiedenen Ansichten die zu exportierenden Dokumente sammeln können und dann auf einen Schlag exportieren.


    Ist der Ordner sichtbar, dann können die Benutzer sogar per Drag'n'drop Dokumente auf den Ordner ziehen...



    HTH
    Thomas

  • Oder du programmierst die Sortierung. Machst einen Agenten wie Thomas geschrieben hat, dann hast du die Dokumente in einer Dok-Collection.
    Dann hast du eine View mit den selben Dokumenten aber in der gewünschten Sortierung (nach Datum). Du weist diese Dokumente einer zweiten Dok-Collection zu, loopst durch diese hindurch, schaust bei jedem Dokument nach, ob es in der ersten Dok-Collection vorkommt, wenn ja mach nichts, ansonsten mach DocCollection.DeleteDocument(doc).

    • Offizieller Beitrag

    Patrick
    braucht zu viel Zeit. Besser ist es ein 2D-Array zu erstellen, durch die Collection zu gehen und in dem Array einen Sortierstring zu hinterlegen und die UniversalID des dazugehörigen Dokumentes.


    Das Array wird dann mittels QSort nach der Dimension sortiert, in der sich der Sortierschlüssel befindet und dann muss nur noch das Array vom 1. bis zum letzten Eintrag durchgegangen werden. Mittels der UniversalID kann man dann sehr schnell (NotesDatabase.GetDocumentByUNID) auf die Dokumente zugegriffen werden.


    aweinrei
    für die Ansicht gibt es doch Eigenschaften und das Feld $Flags, die abgfragt werden können. Anhand dieser Eigenschaften oder des Feldes kann ermittelt werden ob es sich um eine provate oder eine öffentliche Ansicht handelt. D.h allerdings, Du müsstest durch alle Ansichten/Ordner gehen und die Eigenschaften prüfen, bist Du beim richtigen Ordner angekommen ...


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • mache es jetzt so:
    Dim dc As NotesDocumentCollection
    Dim dc_universalid List As String


    Set dc = db.UnprocessedDocuments
    c = dc.Count

    For i = 1 To c
    Set d1 = dc.GetNthDocument(i)
    dc_universalid(d1.UniversalID) = d1.UniversalID
    Next i


    dann gehe ich durch die sortierte ansicht und frage dann nur noch ab:


    If Iselement(dc_universalid(d.UniversalID)) Then



    funktioniert wunderbar und ist auch kein performanceproblem, da ich eh nur max 500 dokumente in der db habe ...


    danke nochmal für eure tipps. gebe dafür auf dem nächsten developercamp einen aus :pint:

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)