feldwert zu agenten "übertragen"

  • Hallo,


    habe folgendes Problem ..
    zumindest fiell mir bis jetzt nichts ein.
    ALso Idee aus einer View heraus für ausgewählte Dokumente (zum Löschen / bzw ins Archive verschieben ) wird ein Agent gestartet, der andere Dokumente (die den = Wert eines Feldes vom zu löschendem Doc enthalten) prüfen soll und ersetzen durch ein neues Wert.
    Frage:
    Wie kann ich diesen Wert an Agenten übergeben ??
    Wenn ich zB ein Action-Button mit Delete Funktion einsetze, der dann das ausgewählte Doc löschen soll und den Agenten ruft zur Änderung..
    irgendwie blicke ich da nciht mehr durch..
    einfach mit GetFieldValue komme ich ja nciht weiter oder.. ?..ich brauch doch erstmal dieses Wert als "Selection" Kriterium
    (PS nur Formel-Sprache darf sein)
    vlt gibt es ja auch cleverere Ideen.


    (weiß nicht ob ich das Problem gut erläutert hab um 23:16 Freitag Abends :):))
    Danke euch vorab ..und schönes WE

  • Warum nur Formelsprache? Wenn es daran liegt, dass du LS nicht tief genug beherrschst, ist das kein Argument. Die Hilfe trägt ihren Namen zu Recht.


    Nur mit Formeln wirst du nicht weit kommen. LS bietet die Möglichkeit, einem Agenten beim Aufruf aus einem anderen Agenten heraus, eine DocID mitzugeben. Das ist mit Formelsprache nicht möglich.


    Ein möglicher Weg wäre folgender: mit CaretNoteID bekommst du die NoteID des in der Ansicht gerade hervorgehobenen Dokumentes. Mit GetDocumentByID bekommst du das korrespondierende Backenddokument. Hier greifst du den fraglichen Wert ab und führst damit eine FTSearch durch. Beachte dabei, dass das hervorgehobene Dokument in der NotesDocumentCollection mit enthalten ist, das du mit DeleteDocument erst löschen musst. Die verbleibenden Dokumente kannst du mit ReplaceItemValue manipulieren. Das zu archivierende Dokument kann dann per CopyToDatabase in eine andere Datenbank verschocben werden.


    Der Nachteil hieran ist, dass du immer nur ein Dokument hervorheben und es und seine "Partner" bearbeiten kannst; das kann umständlich werden. Daher wäre eine andere Möglichkeit, dass du gleich eine FTSearch durchführst und erst hinterher entscheidest, welches Dokument archiviert werden soll und welche manipuliert. Dann kann der Agent auch vollständig im Backend laufen.

    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

  • nein ...ich bemühe mich LS zu lernen ..


    Formel weil es Aufgabe sein soll , die andere später erledigen müssen..ich muss erstmal eine Musterlösung entwerfen ...
    und komme irgendwie bei Lösung mit dem Agenten nicht klar , wie ich den Wert holen kann...


    aber so schwierig war das ger nciht gedacht...sollte irgendwie ganz einfach lösbar sein, was lernenden Anfänger schaffen sollen


    hab nur nen Brett vorm Kopf und sehe nicht die Möglichkeit es einfach zu lösen..


    vlt zuerst DOk in eine andere Archive View oder so Verschieben ..und irgendein Statusfeld setzen..dass gelöscht ist..es muss nciht unbedingt ganz raus aus DB..
    dann im Agenten nach dem Statusfeld suchen. so habe ich zumindest den richtigen Dokument mit gesuchtem Wert..das könnte ich es dann einfach per @getfield auslesen ?


    aber komme auch hier nicht weiter, denn irgendwie muss ich ja dann andere Documente durchlaufen um nach gleichem Wert zu suchen..ein Agent kann doch nicht erst ein Doc finden und dann ale andern durchsuchen ??? wäre shcön wenn ja..

  • Eine mögliche Lösung habe ich skizziert. Und wenn es eh andere programmieren sollen, kann dir die Sprache doch egal sein. Oder missverstehe ich dich gerade?


    Im Endeffekt spielt das ohnehin keine Rolle. Weder @Command([AgentRun]), noch @Command([RunAgent]), noch @Command([ToolsRunMacro]) bieten die Möglichkeit, irgendetwas mitzugeben. Willst du es so haben, wie von dir beschrieben, ist und bleibt es LotusScript oder Java.


    Wie du einem Agenten was übergibst, steht in der Hilfe unter der Run-Methode der NotesAgent-Klasse (alles was kursiv geschrieben ist, darf in der Hilfe nachgeschlagen werden).


    Die Möglichkeit mit dem Statusfeld ginge natürlich auch. Nur das Verschieben in eine View nicht. Ein Dokument wird in einer View dargestellt, oder nicht; verschieben geht nur bei Ordnern. Aber ich denke, es ist klar, was gemeint ist, daher das nur der Vollständigkeit halber.


    Zitat


    denn irgendwie muss ich ja dann andere Documente durchlaufen um nach gleichem Wert zu suchen..


    FTSearch


    Zitat


    ein Agent kann doch nicht erst ein Doc finden und dann ale andern durchsuchen


    Warum nicht? Einfachstes Beispiel:

    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

  • die werden nur einführung bekommen und formelsprache..nicht weiter ,,, so eine art tutorium
    und Lösung soll ja dann quasi zum Vergleich dienen was gefordert war...damit die das mit eigenen Lösungen vergleichen


    hm...also ich muss irgendwie tricksen...
    vlt per Picklist ??
    user startet agenten aus menü... zuerst Dialogbox mit Auswahl der zu Löschenden Werte..dann habe ich auch den wert...wie suche ich die andern docs ab?

  • Zitat


    wie suche ich die andern docs ab?


    Entschuldigung, aber reden wir gerade aneinander vorbei? Ich habe doch bereits mehrfach FTSearch erwähnt

    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

  • hallo,
    funktioniert denn FTSearch auch mit Formel agenten ??
    habe dazu nichts in Hilfe gefunden ..also nur beispiele mit LS


    das Verschieben in die andere könnte man doch "simulieren"--
    also wenn die Selection bei der einen View den gelöschten Status nciht erlaubt, und in der anderen also dann nur den ...dann wäre das Doc "vorschoben".. also nur in der anderen view zu sehen ...
    denke ich...
    na ja aber ich denke mein problem liegt immer noch woanders...

  • Ja, dein Problem liegt IMO darin, dass du dich auf Formeln versteifst und etwas anderes überhaupt gar nicht erst in Betracht ziehst. Nicht alles in in Formelsprache machbar, LotusScript wurde nicht zum Spaß erfunden.


    Das möchte ich gern erläutern. Nehmen wir an, wir haben eine View mit Rechnungen. Nehmen wir weiter an, wir haben je 5 Rechnungen für Susi Schneckenschiss, Detlef Dummbeutel und und Hein Blöd. Dann nehmen wir an, du willst die erste Rechnung (sortiert nach Datum) archivieren und zu den anderen 4 ein Merkmal hinzufügen oder ein Merkmal ändern (das spielt jetzt keine Rolle).
    Selbstredend ist es kein Problem, die erste Rechnung im Status zu verändern (@SetField), dass sie in einer anderen View auftaucht (verschieben geht nicht, zum wiederholten Male; bitte beschäftige dich mit dem Konzept von Ansichten und Ordnern!). Was aber mit den anderen Vieren? Bei nur 4 kann man das natürlich per Hand machen, ohne Frage. Aber was, wenn es 400 sind? Oder 4000? Und nicht 3 Namen, sondern 30.000? Eben!
    Also: mit LS kannst du nach dem Kriterium "Susi Sonnenschein" suchen und bekommst eine Collection von 5 Documents, die du recht einfach bearbeiten kannst. Und eben genau das ist der Unterschied zwischen LS und @Formeln in diesem Falle: das eine geht, das andere geht nicht, weil der Sprachumfang simpel und einfach das nicht hergibt. Punkt!


    Eines kommt da noch hinzu: solange wir nicht wissen, was genau du für eine Anwendung hast und was exakt verlangt ist, können wir nur im Nebel rumstochern.


    Du hast dir schon einmal ein sehr hohes Ziel gesteckt (es ging um Namen von Attachments) und wurdest darauf hingewisen, dass es nicht ganz so einfach sein wird, wie du dachtest. Es ist nichts dagegen zu sagen, seine Ziele hoch zu stecken. Im Gegenteil: das ist ehrenwert. Aber wenn die Basics fehlen, ist das eher hinderlich. Also bitte präszisiere, was exakt du eigentlich hast und möchtest und vor allem: liefere doch einmal ausschlaggebende Gründe dafür, warum es Formeln sein müssen. Deine bisherige Begründung ist nicht stichhaltig.


    Und solange du diese Hausaufgaben nicht gemacht hast, ist jedwede weitere Diskussion überflüssig.

    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

  • Danke..
    möchte mich etwas verteidigen..
    gegen das Lernen von LS habe ich ncihts..will es auch nebenbei bei meinen Aufgaben die ich kriege lernen (Attachements ist eine davon)..
    Diese Musterlösung, und die es mir in diesem Thema geht, ist für einen Kurs für Studenten gedacht, die eine Einführung ins LN kriegen (es werden nur allgemenie View, FOrms Outlines und gängige FOrmeln besprochen, die Studenten kriegen eine Szenario nd Aufgaben dazu und müssen eine DB erstellen)
    Ich muss ledeglich eine Musterlösung zu diesen Aufgaben vorbereiten, so wie es von Studenten erwartet wird, die keine LS kennen und in Rahmen dieser Veranstalltung nicht kennen brauchen... deswegen darf auch meine Lösung keine LS enthalten.
    es ist alles "fiktiv" oder wie nennt man das ...also wird nicht irgendwo praktisch eingesetzt, rein zum Üben mit LN.
    Hoffe habe dieses Teil meiner HausA. erfüllt:)


    Konzept der Views und Ordners ist mir eigentlich bekannt, und mein Vermerk...ich hatte "verschieben" in "" genommen....
    da man ja eigentlich Doks gar nicht verschiebt, die werden dort ind Views nur angezeigt,,die gehören ja nicht dazu ,wie in Ordnern, wenn die Docs dorthin kopiert werden.


    .. und jetzt konkretisieren der Aufgabe..
    Es gibt Mitarbeiter, due sind bei verschiedenen Documenten als Bearbeiter eingesetzt. Wenn zB ein MA aus der Firma ausscheidet, soll er irgendwie (entfernt, verschoben,status geändert oder sonst wie ausgezeichnet zum Unterschied zu anderen MA ) werden. DIe Dokumente die er als Bearbeiter hatte sollen in dem Fall einen neunen Bearbeiter kriegen, AUswahl durch irgendein Dialog mit User,(Picklist,oder so etwas wo User einen nuen MA wählen kann, der dann in alle die DOcs vom alten Bearbeiter eingesetzt wird.. )
    so ist die kurzstellung dieser Aufgabe.


    werde die Tage mit dem jenigen reden , der die Aufgabe ausgedacht hat.,,vlt klärt er mich auf, was er sich dabei dachte,,,hoffe dass er mir weiterhelfen kann...


    ideen sind aber trotzdem wilkommen..:)


    Gruss Nelli