Domino 9 und frühere Versionen > ND7: Entwicklung

Im Frontend das Backend löschen

(1/2) > >>

botschi:
Hallo,

ich habe in der Maske einen Button, der Doks sammelt, diese in eine andere DB Kopiert und dann löscht. Das an sich funktioniert auch.
Leider soll das Dok im Frontend auch gelöscht werden und da hapert es noch. Das Dok wird auch gelöscht, allerdings bekomme ich die Meldung "Cannot remove Notesdocument when instantiated by NotesUIDocument" und das kann ich eigentlich auch nachvollziehen.
Ich versuch es so

--- Code: ---Call gvFrontendTicket.close(True)
Call gvBackendTicket.remove(True)
--- Ende Code ---

Kann man das lösen, ohne die Meldung zu bekommen?  ::)

Matthias

MadMetzger:
Mir fehlen ein wenig Details, wie du die beiden Dinger deklariert und belegt hast. Wahrscheinlich hast du aber dir das Backend per uidoc.Document beschafft, oder? In dem Fall würde ich mir das Backend über die Unique-Id und die aktuelle Notesdatabase beschaffen, nachdem du das UI geschlossen hast. Aber das ist nur eine Vermutung...

botschi:
Sehr interessanter Ansatz, da bin ich noch gar nicht drauf gekommen.
Das Backend hole ich mir über das Frontend, hast Du richtig vermutet.

Ich probier das gleich mal aus.
Danke für den Hinweis!

Matthias

botschi:
Das hat nicht funktioniert, kommt die gleiche Meldung.

Aber es funktioniert jetzt mit angehängtem Code, ich weiss aber nicht warum  ???
Das ist mir ehrlich noch nie passiert!

--- Code: ---Sub Click(Source As Button)

Dim s As New NotesSession

Set gvProfil = gvTTS.getprofileDocument("prof_Archiv")
Set gvOrigTTS = s.GetDatabase(gvProfil.server(0), gvProfil.db(0))

Dim ivAlteUnid As String
Dim ivNeueUnid As String
Dim ivHistorie As NotesDocument
Dim ivVermerk As NotesDocument
Dim ivNeueKopie As NotesDocument
'#########################################################
' aktuelles Ticket kopieren
ivAlteUnid = gvBackendTicket.UniversalID
Set ivNeueKopie = gvBackendTicket.CopyToDatabase(gvOrigTTS) ' kopieren
ivNeueKopie.UniversalID = ivAlteUnid
ivNeueUnid = ivNeueKopie.UniversalID
' If ivAlteUnid <> ivNeueUnid Then
' Msgbox "Jo"
' End If
'#########################################################

gvKopieren = "ja"
Call gvFrontendTicket.close(True)
Exit Sub
Set gvBackendTicket = Nothing
Set gvBackendTicket = gvTTS.GetDocumentByUNID(ivAlteUnid)
'Set gvFrontendTicket = Nothing
'Sleep(1)
' Call gvBackendTicket.remove(True)

'Dim ws As New NotesUIWorkspace
'Set gvFrontendTicket = ws.CurrentDocument
'Call gvFrontendTicket.close(True)

End Sub
--- Ende Code ---

Laut Hilfe wird das Dok KOPIERT und nicht ausgeschnitten oder dergleichen. Es gibt kein 'remove' in dem Codeschnipsel. Es gibt auch keine Ansichts- oder Datenbankscripte oder sowas.

Kann mir bitte jemand sagen, warum das so funktioniert wie es soll?

botschi:
Alles zurück!

Ich hab im Queryclose der Maske einen Agentenaufruf. Dieser Agent löscht das Dokument dann.
Völlig verwirrt gewesen  ::)

Matthias

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln