Autor Thema: EditDocument --> Ungültiges oder nicht vorhandenes Dokument  (Gelesen 3836 mal)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Hallo an Alle,

hab da mal wieder nen Problem ;)

Folgends. Durch einen Button werden 3 Agenten aufgerufen (theoretisch nacheinander was auch gemacht wird)

Button in Dokument A (DocA)
--> Aktuelles Dokument wir Gespeichert (DocA)
--> 1. Agent erstellt Dokument B (DocB)
--> Aktuelles Dokument wir Gespeichert (DocB)
--> 2. Agent erstellt Dokument C (DocC)
--> 3. Agent füht diverses aus. (siehe Unten)

3.Agent:

Es werden in allen 3 Dokumenten verschiedene Felder gesetzt,
dann möchte ich das DokA und DokB ins Frontend holen, speichern und schließen

CODE:
Code
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
REM Standard
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Dim DL As NotesDocument
Dim AU As NotesDocument
Dim AUDB As NotesDatabase
Set AUDB = session.GetDatabase(db.Server,[SERVER], [DB] )
Set DL = AUDB.GetDocumentByUNID(doc.GARefUNID(0))
Set AU = AUDB.GetDocumentByUNID(DL.AufDocUNID(0))
Set uidoc = workspace.EditDocument(True,AU,,,,False)
Call uidoc2.Save
Call uidoc2.Close
Set uidoc = workspace.EditDocument(True,DL,False,,True,False)
Call uidoc.Save
Call uidoc.Close

Anmerkung: Ich habe 2 verschiedene EditDocument in diesem odeauszug um zu zeigen das ich mit den Attributen schon ausprobiert bzw. geschaut haben das diese passen.


Bei drücken des Buttons klappt alles soweit bis man zu der Zeile mit dem Set UIDoc kommt. Dort kommt der Fehler
"Ungültiges oder nicht vorhandenes DOkument"
Fehlernummer: 4412

Ich hoffe ich habe nichts zu wichtiges vergessen undhoffe das Ihr mir helfen könnt.

Vielen Dank schonmal.
« Letzte Änderung: 04.08.09 - 16:47:27 von C_T »
Viele Grüße

Christian T.

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Hallo Christian,

AU und DL sind zwar deklariert, haben aber in der Zeile, in der der Fehler auftritt noch keinen Wert.

Gruß
Hubert

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
achso entschuldige genau das meinte ich mit was hier vergessen zu posten.....

is editiert oben....
Viele Grüße

Christian T.

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Set DL = AUDB.GetDocumentByUNID(doc.GARefUNID(0))

wie und wo wird doc deklariert?

was zeigt der Debugger für DL und AU an?

grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Und warum machen das *drei* Agenten? Von der Wartung abgesehen, kannst Du hier durchaus in (Refresh-)Timing-Probleme laufen.

Bernhard

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
@Bernhard,

Warum das 3 Agenten machen, folgendes: Die anderen beiden Agenten die ausgeführt werden sind durch fremdfirma erstellte Agenten an die ich möglichst wenig bzw. gar nicht dran rumfummeln will.


@Dau-In

ich habe mir in nem Print für DL und AU jewils die DOCUNIDS ausgeben lassen und die erscheinen auch i der ausgabe. und das Doc ist deklariert nur wieder vergessen hatte gestern irgendwie Keinen plan mit gar nichts mehr.

Anbei ein neuer Code indem jetzt hoffentlcih nichts fehlt.


[BUTTON]
Code
@Command([FileSave]);
@Command([RunAgent];"[AGENT1]"); REM {Dieser erstellt DocB};
@Command([FileSave]);
@Command([RunAgent];"[AGENT2]");REM {Dieser erstellt DocC};
@PostedCommand([RunAgent];"[AGENT3]");REM {Dieser ändert die Felder siehe unten};

[AGENT3]
Code
Sub Initialize
  On Error Goto ERRORSTEP
  Print "ZUSATZAGENT"
REM Umgebung
  Dim workspace As New NotesUIWorkspace
  Dim session As New NotesSession
REM Standard
  Dim db As NotesDatabase
  Dim uidoc As NotesUIDocument
  Dim doc As NotesDocument
  Set db = session.CurrentDatabase
  Set uidoc = workspace.CurrentDocument
  Set doc = uidoc.Document
  Dim DL As NotesDocument
  Dim AU As NotesDocument
  Dim AUDB As NotesDatabase
  Set AUDB = session.GetDatabase(db.Server,[DB])
  Set DL = AUDB.GetDocumentByUNID(doc.GARefUNID(0))
  Print "DL = " + Cstr(DL.UniversalID) 'hier erscheint auch wirklich ne DOCUNID
  Set AU = AUDB.GetDocumentByUNID(DL.AufDocUNID(0))
  Print "AU = " + Cstr(AU.UniversalID) 'hier erscheint auch wirklich ne DOCUNID
  AU.XX_EBDocUNID = DL.EBDocUNID(0)
  doc.XX_AufDocUNID = DL.AufDocUNID(0)
  doc.XX_FELD1 = Cstr(session.CommonUserName)
  doc.XX_FELD2 = "[TEXT]"
  doc.XX_FELD3 = "[TEXT]"
  doc.AAName = AU.AufName(0)
  doc.AANr = AU.AufNr(0)
  doc.AADocUNID = AU.AufDocUNID(0)
  If AU.LNR(0) <> "" Then
    DL.LNR = AU.LNR(0)
    doc.LNR = AU.LNR(0)
  Else
    Dim Profil As NotesDocument
    Set Profil = db.GetProfileDocument("[MASKE]")
    If Profil Is Nothing Then
      Messagebox "Profildokument nicht gefunden --> Abbruch"
    Else
      Dim LNRS As String
      LNRS = Profil.X_JZ(0) + Profil.X_JZT(0) + Cstr(Profil.X_LNR(0))
      doc.LNR = LNRS
      DL.LNR = LNRS
      AU.LNR = LNRS
      Profil.X_LNR = Profil.X_LNR(0) + 1
      Call Profil.Save(True,False)
    End If
  End If
  Print "AU2 = " + Cstr(AU.UniversalID) 'hier erscheint auch wirklich ne DOCUNID
  Set uidoc = workspace.EditDocument(True,AU,,,,False) '<--------- HIER IST DER FEHLER bzw. HIER KOMMT DIE MELDUNG
  Call uidoc.Save
  Call uidoc.Close
  Print "DL2 = " + Cstr(DL.UniversalID)
  Set uidoc = workspace.EditDocument(True,DL,False,,True,False)
  Call uidoc.Save
  Call uidoc.Close
  Set uidoc = workspace.EditDocument(True,doc,False,"","",False)
  Call uidoc.Save
  Exit Sub
ERRORSTEP:
  Const Teilbereich = ""
  Msgbox "Es ist ein Fehler aufgetreten." & Chr(10)  & Chr(10) _
  & "Teilbereich: " & Teilbereich & Chr(10) _
  & "Fehlermeldung: " & Error$ & Chr(10) _
  & "Fehlernummer: " & Err & Chr(10) _
  & "Codezeile: " & Erl & Chr(10) _
  ,64,"Error"
  Print "Teilbereich: " & Teilbereich & " - " & Cstr(Error$) & " - Nr: " & Cstr(Err) & " - Zeile: " & Cstr(Erl)
  Exit Sub
End Sub


So dies ist eigentlcih der exakt kopierte COde aus meinem Agenten

Hoffe euch fällt was ein.
Viele Grüße

Christian T.

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
... nur mal so ins Blaue ...
welches Form-Item hat das (Backend-) Doc "AU" und gibt es diese Maske wirklich in der DaBa?

Thomas

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
jep gibt es, es gibt alle 3 masken und auhc alle 3 dokumente
Viele Grüße

Christian T.

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Entschuldigt das ich nochmal pushe aber hat hier jemand noch ne Idee???
Viele Grüße

Christian T.

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... welche Eigenschaften hat dein Agent - nicht überall funktionniert NotesUIWorkspace

Toni
Grüßle Toni :)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
@Toni

inwiefern meinst du Eigentschaften, der bzw. die Agenten werden ja über nen Button im Client also ausgeführt.....
Viele Grüße

Christian T.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Ich glaube er meint eher das Ziel (z.B. Alle ausgewählten Dokumente) des/der Agenten. Das findest du im Eigenschaftsdialog auf dem ersten Reiter.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz