Autor Thema: Parentdocument neu zuweisen, aber wie?!  (Gelesen 4328 mal)

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Parentdocument neu zuweisen, aber wie?!
« am: 10.06.08 - 10:22:12 »
Hey alle zusammen,

ich hab n kleines Problem..

Wir haben bei uns ne DB, in der sich Dokumente mit Antwortdokumenten befinden.
Aus irgendwelchen Gründen habe ich ein Antwortdokument, dem das falsche Hauptdokument zugeordnet ist.
Jetzt wollte ich dem Antwortdokument mit einem Agent das Hauptdokument neu zuweisen, und zwar mit dieser Formel:


   Dim session As New notessession
   Dim db As notesdatabase
   Dim dc As notesdocumentcollection
   Dim doc As notesdocument
   Dim item As notesitem
   
   
   Set db=session.currentdatabase
   Set dc=db.unprocesseddocuments
   Set doc = dc.GetFirstDocument
   Set item = doc.ReplaceItemValue( "$ref", "FBAB1AC92:CB1A36EC-NC12573FD:002A0463" )
   Call doc.save(False,False,True)
   Set doc = dc.getnextdocument(doc)

   Loop Until doc Is Nothing

Der Typ des Feldes ist jetzt aber nicht mehr "Response", sondern "Textliste".
Im Antwortdokument habe ich einen Button "Gehe zum Hauptdokument". Wenn ich den nun betätige, bekomme ich die Fehlermeldung "Invalid universal id".

Wie kann ich den Fehler beheben? *verzweifeltschau*  ???

Danke schonmal für eure Antworten!

Gruß, Marius
   
Gruß, Marius

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #1 am: 10.06.08 - 10:31:42 »
gibts da nicht die Funktion makeResponse der Notesdocument klasse?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #2 am: 10.06.08 - 10:56:15 »
Richtig. Die Funktion gibt es
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #3 am: 10.06.08 - 11:29:42 »
Cool, dass ihr so schnell geantwortet habt!!

So sieht das Konstrukt jetzt aus:

   Dim session As New notessession
   Dim db As notesdatabase
   Dim dc As notesdocumentcollection
   Dim doc As notesdocument
   Dim docH As NotesDocument
   
   Set db=session.currentdatabase
   Set docH = db.GetDocumentByID("FBAB1AC92:CB1A36ECNC12573FD:002A0463")
   Set dc=db.unprocesseddocuments
   Set doc = dc.GetFirstDocument
   Call doc.MakeResponse(docH)  <------- hier bleibt der Debugger stehen
   Call doc.save(False,False,True)
   
   
Jedoch scheint er ein Problem mit der ID zu haben.
Beim Ausführen des Agents bekomme ich die Fehlermeldung
"Parent document is required to make a response Document".

Wenn ich mir die ID im Eigenschaften-Fenster des Hauptdokuments ansehe, steht die in zwei Zeilen so da:

OFBAB1AC92:CB1A36EC
ONC12573FD:002A0463

schau ich mir aber das $ref Feld eine anderen Antwortdokumentes dieses Hauptdokumentes an, sieht die ID so aus "FBAB1AC92:CB1A36EC-NC12573FD:002A0463"..

Woran liegt das und welches ist das richtige Format?
Gruß, Marius

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #4 am: 10.06.08 - 11:35:00 »
nimm doch mal die Doppelpunkte raus.

Edith: deine ID hat vorne 9 ziffern, oder sehe ich das falsch/kann ich nicht mehr rechnen??

setz dir doch hilfweise ein berechnete Feld, das dir die ID anzeigt, dann kannst du das überprüfen
« Letzte Änderung: 10.06.08 - 11:38:27 von DAU-in »
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #5 am: 10.06.08 - 13:32:47 »
Jippie.. es hat geklappt..

Hab die ID nochmal genau unter die Lupe genommen.
Die UNID ist ja genau 32 Zeichen lang, hab dann rausgefunden, dass bei der ID, die ich benutzt habe

Set docH = db.GetDocumentByID("FBAB1AC92:CB1A36ECNC12573FD:002A0463")

die beiden roten Zeichen überflüssig waren.

der Befehl lautet jetzt:
Set docH = db.GetDocumentByID("BAB1AC92CB1A36ECC12573FD002A0463")
Die Doppelpunkte müssen auch raus.

Danke für eure wie immer schnelle Hilfe!!!
Marius
Gruß, Marius

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #6 am: 10.06.08 - 13:43:54 »
Bist Du Dir sicher, Marius, dass das mit der hardkodierten UNID eine wirklich gute Idee ist?

Bernhard

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #7 am: 10.06.08 - 15:13:35 »
Hey Bernhard,

nunja, es ist zumindest eine "schnelle" Möglichkeit, ein Dokument einem bestimmten Hauptdokument zuzuweisen.
Aber natürlich ist es umständlich, die UNID immer per Hand im Agent zu ändern, wenn man mehrere verschiedene Hauptdokumente hat.

Was wäre denn der einfachste Weg, den Code zu verallgemeinern??

Marius
Gruß, Marius

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #8 am: 10.06.08 - 15:18:39 »
Marius, mal doch mal bitte genau auf, was Du denn überhaupt vorhast.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #9 am: 10.06.08 - 15:24:18 »
Bernhard das hat er  doch eigentlich schon.

Gegeben ist in Antwortdokument das an der Falschen Ecke hängt und das ich schon ausgewählt habe.

Gesucht ist eine Methode es einem anderen Parent zuzuweisen.

eigentlich ganz einfach generisch zu lösen.

Unprocessed für das Dokument das ich in der Ansicht markiert habe

Picklist auf eine definierte Ansicht zum suchen des neuen Parents.

Makeresponse des unprocessed Dokuments auf das mit der Picklist ausgewählte Dokument
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #10 am: 10.06.08 - 16:27:25 »
Danke Thomas, für deine Erläuterung.

Aber hier nochmal zum angucken  ;)

Gruß, Marius

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #11 am: 10.06.08 - 20:30:50 »
Aber die von Thomas beschriebene Lösung wäre genauso schnell umzusetzen
gewesen, wie Deine Grafik.

Mach es so wie Thomas beschrieben hat oder rufe in Deinem Agenten eine Inputbox
auf, in der Du/der Benutzer die UNID eingeben kann....
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Schorschi353

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Parentdocument neu zuweisen, aber wie?!
« Antwort #12 am: 11.06.08 - 15:48:03 »
Hab jetzt noch PickListString eingebaut, jetzt kann man das Dokument auswählen, welches man als neues Hauptdokument deklarieren will, der Code sieht jetzt so aus:


   Dim session As New notessession
   Dim uiws As New NotesUIWorkspace
   Dim db As notesdatabase
   Dim dc As notesdocumentcollection
   Dim doc As notesdocument
   Dim docH As NotesDocument
   Dim vPicklist As Variant
   
   Set db=session.currentdatabase
   
   vPicklist = uiws.PickListStrings( PICKLIST_CUSTOM, , db.Server , db.FilePath , "Lookup\ProjektNachUNID", "Projekt wählen", "Bitte deklarieren Sie ein Projekt als Hauptdokument!", 1  )
   If ( Isempty( vPicklist ) ) Then
      Messagebox "Vorgang abgebrochen!" , , "Projekt auswählen"
      Exit Sub
   Else
      Messagebox Cstr(vPicklist(0)) , , "Ausgewählte Projekt-UNID:"
   End If
   
   Set docH = db.GetDocumentByUNID(Cstr(vPicklist(0)))
   Set dc=db.unprocesseddocuments
   Set doc = dc.GetFirstDocument
   Call doc.MakeResponse(docH)
   
   Call doc.save(False,False,True)

Danke euch nochmal!  :)

Marius
Gruß, Marius

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz