Domino 9 und frühere Versionen > ND8: Entwicklung

Anhang direkt in der Maske

<< < (2/2)

mgeidl:
so, jetzt hab ich das ganze mal in einen agenten reingepackt. der agent wird mittels schaltfläche (neue anforderung - @ToolsRunMacro) aufgerufen und es funktioniert wunderbar.

allerdings steh ich jetz vor dem nächsten problem: in unserer mailschablone haben wir in der inbox sämtliche anträge drinnen. ich kann dort das @Toolsrunmacro aber net aufrufen, weil´s ja eine andere db is. für jede idee wär ich dankbar :-)

LG
Marietta

Peter Klett:
Es funktioniert wunderbar, aber Du kannst es nicht aufrufen. Hm, erklär' Dein Problem bitte nochmal

mgeidl:
in der Datenbank selbst funktioniert es wunderbar.
da gibt´s eine aktion "neue Personalanforderung" und die ruft den Agenten mit u.a. Script auf

Nun soll die aktion "neue Personalanforderung" aber als aktion in die Inbox der Mailschablone - dort kann ich das aber nicht so machen :-((

Hoffe, jetzt is es verständlicher ....

LG

Sub Initialize
   Dim workspace As New notesuiworkspace
   Dim anforderung As notesdocument
   Dim anhang As notesdocument
   Dim typ As Variant
   Dim collection As notesdocumentcollection
   Dim options(4) As Variant
   
   options(0)="Mitarbeiter"
   options(1)="Leiharbeiter"
   options(2)="Ferienarbeiter"
   options(3)="geringfügig beschäftigt"
   
   typ = workspace.Prompt (PROMPT_OKCANCELLIST, "Type wählen", "Bitte wählen Sie den Type der Anforderung", options(0), options)
   
   If Not typ="" Then
      
      Set anforderung=workspace.currentdatabase.Database.CreateDocument
      Call anforderung.ReplaceItemValue("Form","Personalanforderung")
      Call anforderung.ReplaceItemValue("was",typ)
      
      
      Set collection=workspace.currentdatabase.Database.Search("select form='Anhang' & Anhangart='"+typ+"'",Nothing,1)
      If collection.count=1 Then
         Set anhang=collection.GetFirstDocument
         
         Dim data As NotesRichTextItem
         Dim body As New NotesRichTextItem(anforderung,"Body_MA")
         
         Set data=anhang.GetFirstItem("Anhang")
         Set body=anforderung.getfirstitem("Body_MA")
         Call body.AppendRTItem(data)
         Call body.Update
         
      End If
      
      
      Call workspace.EditDocument(True,anforderung)
      
   End If
   
   
   
   
End Sub



DerAndre:
Hi.

Wenn Du das Script 1:1 übernimmst versuchst Du, das neue Dokument in der Mailbatenbank anzulegen und nicht in der Personaldatenbank.

Peter Klett:
Wie Andre schon geschrieben hat, bist Du einfach nur in der falschen Datenbank.

1. Tipp

Definiere saubere Variablen. Anstelle von mehrfacher Verwendung von

workspace.currentdatabase.Database

setze die in eine eigene Variable

Dim db As NotesDatabase
Set db = workspace.currentdatabase.Database

Wenn Du dann die db mal ändern musst, brauchst Du das nur ein einziges mal im Script tun

2. Tipp

Verwende nicht die CurrentDatabase vom workspace, denn das ist bei der Aktion in der Maildatenbank eben diese und nicht die Anforderungsdatenbank.

Setze stattdessen die db in Abhängigkeit des Agenten (ohne nachzuschauen über CurrentAgent (wohl in NotesSession) und Parent des Agenten). Dann ist die Datenbank immer die, in der der Agent gespeichert ist.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln