Response und Response to Response Funktion

  • Hallo,
    ich habe eine Datenbank bekommen und da komm ich momentan nicht weiter...
    Die Datenbank ist folgendermassen aufgebaut:
    Ich habe eine Ansicht (dort ist Antwortdokumente hierarchisch anzeigen lassen) eingestellt. In der Ansicht habe ich drei Action Buttons um neue Dokumente anzulegen, erster Button ist Subject, zweiter Button ist Response und dritter Button ist Response to Response.
    In der Maske habe ich folgende Felder drin, Subject, Category, Editor, Revison Date, Attachment.


    Leider hab jetzt in einer neuen Ansicht (Antwortdokumente hierarchisch anzeigen lassen nicht angehakt) gesehen das es dort viele Dokumente gibt die in der anderen Ansicht nicht sichtbar sind...Was koennte hier der Fehler sein? Oder wee kann ich jetzt diese Dokumente einer entsprechenden Subject oder Response Dokument zuweisen?
    Hab da auch schon was in einem anderen Forum gefunden:
    http://atnotes.de/index.php?topic=13984.0
    aber das hat mir leider auch nicht weitergeholfen...
    Ich bin fuer jeden Tip dankbar und hoffe ihr habt ein paar Ratschlaege....
    Viele Gruesse
    Chris

  • Der Fehler koennte sein, dass zu den Antwortdokumenten die armen Eltern gekillt worden sind.
    Ueberpruef das doch mal. Im $Ref Feld sollte die ID des parent stehen. Wenn Du das in der DB nicht findest.......

  • Also ich hab das jetzt ueberprueft und du liegst vollkommen richtig, da sind keine Elterndokumente mehr vorhanden :(
    Was kann ich jetzt in diesem Fall machen um diese "Elternlose" Dokumente wieder an Eltern zu bringen?
    Ich muesste in dem Fall ja neue Eltern mit einer ID erschaffen die die $REF Nummer der Elternlosen enthaelt?
    Ich hab das noch nie gemacht, deswegen steh ich jetzt komplett auf dem Schlauch....waere echt super wenn ihr Tips und Anregungen haettet :)
    Viele Gruesse Chris

  • sorry, aber ich finde das $REF Feld nicht, wo kann ich das denn loeschen...das REF Feld wird in der Liste der anderen Felder mit aufgelistet, aber ich kann das dort nicht loeschen?
    Wenn das dann geloescht ist verwandeln sich die "Elternlose" in normale Dokumente, ist das richtig? Aber dann wuerden sich ja die Dokumente die Eltern haben auch in normale Dokumente verwandeln?
    Viele Gruesse Chris

  • Ich hab jetzt gesehen das bei den "Elternlosen" Dokumenten teilweise oft 10 oder mehr Dokumente die gleiche $REF Nummer haben, also demnach auch das gleiche Elterndokument....kann ich das Elterndokument nicht nachtraeglich erstellen?
    Gruss
    Chris

  • Natürlich kannst Du das. Und die dafür vorgesehenen ResponseDocs hängst Du dann mit Hilfe des von Dir verlinkten Artikels an das neue Dokument wieder an. An der Umsetzung der Inhalt des Artikels kommst Du natürlich nicht vorbei.


    Bernhard

  • Hallo,
    ich hab jetzt bei den Elternlosen Dokumenten $REF entfernt und diese sind nun auch in der Ansicht sichtbar in der es vorher nicht sichtbar war.
    Jetzt wuerde ich gerne dieses Dokument an ein anderes Dokument als Antwortdokument zuordnen.
    Hab jetzt folgendes mal versucht:


    Sub Click(Source As Button)
    Dim docParent As NotesDocument
    Dim db As NotesDatabase
    Dim docCur As NotesDocument


    Set docParent = db.getDocumentByUNID("DF9E2D309E730D5E86256BE0000E812E")
    Call docCur.RemoveItem("AE1EE5D859ADF6AF86256F250057AD93")
    Call docCur.MakeResponse( docParent )
    End Sub


    Aber da erscheint Object variable not set.
    Damit moechte ich einem Dokument ein anderes Dokument als Antwortdokument zuweisen.


    Ich hoffe ihr koennt mir weiterhelfen und bin echt dankbar fuer jeden Tip...ich komm da nicht weiter...
    Gruss Chris

  • Du gehst extrem unstrukturiert an die Probleme heran, Chris. So wird das nie was ...


    Zunächst: "Es erscheint object variable not set". Sollen wir jetzt für Dich suchen? Da Dir ein simples ErrorHandling fehlt, hätte zumindest der Debugger die richtige Zeile angesagt:
    Call docCur.RemoveItem("AE1EE5D859ADF6AF86256F250057AD93")


    docCur wurde nie instantiiert. Ergo: This object variable was not set!


    Weiters: Was sollen die hartverdrahteten Replik-IDs?
    Hast Du den von Dir selbst gefundenen BP-Artikel nicht gelesen? Ohne dessen Verständnis geht es nicht. Und wie Du ein Dokument umschiesst, ist dort exakt beschrieben. Dies dann auch für x Dokumente zu erweitern, ist - wenn man des verstanden hat - kein Problem mehr.


    Tipp: Versuche an prinzipielles Programmier-Know-How zu kommen. Ein Lehrgang, ein wirklich gutes Buch ... Vergiss davor Dein bisheriges Herangehen (komplett!!). Sonst bleibt das pures Gefrickel. Vor allem: Verwende NIE Code, den Du nicht komplett verstanden hast. Das ist ggf. sonst identisch mit dem Strick, den man sich selbst um den Hals legt.


    Bernhard

  • Hallo,
    also es hat jetzt mit dem untenstehenden Code funktioniert wie ich es wollte. Ich hatte ncoh ne Frage und zwar kann man das auch umnaendern, dass er alle selektierten Dokumente unter ein Hauptdokument anordnet?
    Ich hab es mal versucht ueber einen Agenten und dort alle selektierten dokumente ausgewaehlt, aber dies hat nicht funktioniert...
    Gruss Chris


    Funtionierender Code:
    Sub Click(Source As Button)
    Const VIEWNAME_LOOKUP_PARENT$ = "All"
    Const COLUMN_NO_LOOKUP$ = "10"
    Const MSGPICKLIST_TITLE$ = "Document selection"
    Const MSGPICKLIST_TEXT$ = "Please select a main document to which you want to assign this response document:"
    Const ERRMSG_1001$ = "Current document is not a response."
    Const ERRMSG_1002$ = "Current document is not in edit mode."
    Const ERRMSG_LINE2$ = "Operation has been canceled."

    On Error Goto ErrorHandler

    Dim session As New NotesSession
    Dim uiws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim db As NotesDatabase
    Dim docCur As NotesDocument
    Dim docParent As NotesDocument
    Dim vPicklistReturn As Variant
    Dim strLeftValue As String
    Dim strRightValue As String
    Dim i As Integer

    Set db = session.CurrentDatabase
    Set uidoc = uiws.CurrentDocument
    Set docCur = uidoc.Document

    'Only continue if the current document is a response & if it is in the edit mode
    If Not docCur.IsResponse Then Error 1001, ERRMSG_1001
    If Not uidoc.EditMode Then Error 1002, ERRMSG_1002

    'Display the main documents and let the user select one
    vPicklistReturn =uiws.Pickliststrings(PICKLIST_CUSTOM, False, db.Server, db.FilePath,VIEWNAME_LOOKUP_PARENT,_
    MSGPICKLIST_TITLE, MSGPICKLIST_TEXT, COLUMN_NO_LOOKUP)

    If Isempty(vPicklistReturn) Then Goto GoOut 'user did not select a document

    'Assign the new main document to the current response doczment
    Set docParent = db.getDocumentByUNID(vPicklistReturn(0))
    Call docCur.RemoveItem("$Ref")
    Call docCur.MakeResponse( docParent )

    'Refresh
    Call uidoc.Reload
    Call uidoc.Refresh

    GoOut:
    Exit Sub
    ErrorHandler:
    Select Case Err
    Case 1001 To 1999: 'User defined errors
    Msgbox Error$ & Chr(10) & Chr(10) & ERRMSG_LINE2, 64, db.Title
    Resume GoOut
    Case Else:
    Resume GoOut
    End Select
    End Sub

    • Offizieller Beitrag

    funktioniert.


    1. in einer Ansicht alle Dokumente anklicken, die zu Antwortdokumenten werden sollen.
    2. an diese Dokumente kommst Du im Agenten mit NotesDatabase.UnprocessedDocuments
    3. mit PickListCollection ein Hauptdokument erfragen
    4. Schleife über die NotesDocumentCollection aus Punkt 2 und die Dokumente mit MakeResponse zu Antwortdokumenten machen, dabei ggf. das Feld Form mit einem anderen Maskennamen ersetzen.


    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

  • Vor allem sollte man den Code verstehen - bislang ist das nur eine Kopie des Codes aus dem Atnotes-BP-Artikel.
    Gerade für den angestrebten Zweck wäre es nun sehr kontraproduktiv, wenn alle ausgewählten ResponseDocs im EditMode sein müssten ...


    Ich kann also immer noch nicht erkennen, dass der Fragesteller um strukturiertes Herangehen bemüht ist.


    Bernhard