Lotus Quickr is dé omgeving voor het online delen van content. Content kan bestaan uit tekst en/of bestanden. Tot de standaardonderdelen van Quickr behoren het documentbeheer en workflow. Ondanks de vele standaarmogelijkheden die Quickr biedt, zijn deze soms niet voldoende voor het ondersteunen van een proces. Met behulp van de Quickr
placebot bent u in staat een eigen geautomatiseerd proces toe te voegen aan uw Quickr omgeving. Zo vereikt u de mogelijkheden van Quickr.
Een placebot is een Lotus Notes agent en kan op twee manieren 'getriggerd' worden:
1. door het submitten van een formulier
2. door te schedulen
Het submitten van een formulier is gelijk aan een webquerysave agent. De schedules worden op eenzelfde manier uitgevoerd als voor een Lotus Notes agent. De source code is beperkt tot LotusScript en Java.
Bij het ontwikkelen van een placebot gebruikt u de backend classes uit het object model van Lotus Notes. Daarnaast gebruikt een placebot de logging classes uit het object model. Het voordeel hiervan is dat vanuit de Lotus Quickr omgeving zo de betreffende log opgevraagd kan worden.
Een voorbeeld: een aanvraagformulier voor het bestellen van artikelen wordt door middel van een eenvoudige workflow afgehandeld. Wanneer de betreffende aanvraag is goedgekeurd, verplaatst de aanvraag uit Lotus Quickr naar een Lotus Notes database.
U voert de volgende activiteiten uit:
- u maakt een nieuw bestelformulier aan in Lotus Quickr (bijvoorbeeld gebaseerd op een Microsoft Excel werkblad waarin de gebruiker zijn/haar aanvraag kan specificeren)
- u koppelt een workflow aan dit bestelformulier
- u maakt een placebot, welke getriggerd wordt bij het submitten van het bestelformulier
configuratie van een placebot
het bestelformulier
U klikt op het Microsoft Excel formulier en voert hier de artikelregels in. Vervolgens komt het bestelformulier in een workflow terecht en wordt afgehandeld. Aan het einde van de workflow verandert de status. De aanpassing van de status 'triggert' de placebot.
placebot code:
Dim ses As New NotesSession
Dim ndb As notesdatabase
Dim docReport As NotesDocument
Dim strValue As String
Dim logAgent As New NotesLog( ses.CurrentAgent.name )
logAgent.LogActions = True
Call logAgent.OpenAgentLog
Call logAgent.LogAction("Log: Run agent: " & ses.CurrentAgent.name )
'set up error handling turn this off during debugging
On Error Goto lblLogError
een veld uitgelezen uit het Quickr document:
'document related sets
Set ndb = ses.CurrentDatabase
Set docReport = ses.DocumentContext
If docReport.HasItem("h_TextAbstract";) Then
strValue = ses.CommonUserName & " " & Cstr(Now)
strValue = strValue & " " & docReport.GetFirstItem("h_TextAbstract";).text
Call logAgent.LogAction("Log: abstract value" & strValue )
End If
alle velden uit Quickr gekopieerd naar een nieuw document:
Set targetdb = ses.GetDatabase(ndb.Server,strTargetDb)
If targetdb Is Nothing Then
Call logAgent.LogError(999,"Could not open targetdatabase";)
Err=999
End If
Set targetdoc = New notesdocument(targetdb)
Call docReport.CopyAllItems(targetdoc)
Call targetdoc.save(true,false)