27. februar 2004 - 11:57
Der er
4 kommentarer
Opret huskeseddel i kalender fra anden database
Jeg har en database hvor jeg holder styr på alle mine arbejdsopgaver. Men ofte glemmer man jo lige at der ligger en opgave man skal følge op påm på en bestemt dag.
Jeg vil derfor gerne kunne tilføje en huskeseddel i min kalender, ved et lille tryk på en kanp.
Der skal gerne laves et link til selve dokumentet i opgavedatabasen, og det er selvfølgelig nødvendigt at den spørger om en dato.
Nogen som lige har lidt kode der minder om dette ?
27. februar 2004 - 12:52
#2
Her kommer en mulig løsning:
Koden fra den første agent "Calendar_CreateEntry" (som kaldes fra mine systemer)
_item := "Entry in Calendar";
_wintitle := ""+_item;
REM { can not be created before this document is saved, should the document be saved?};
REM { kan ikke oprettes, før dette dokument er gemt. Skal det gemmes?};
_text := @ProperCase(_item)+ " kan ikke oprettes, før dette dokument er gemt. Skal det gemmes?";
@If(@IsNewDoc; @Command([FileSave]); @Success);
_text1:= "Choose the type of entry you want to create.";
_corr := "Calendar entry":"Task entry";
_formlist := "Appointment":"Task";
_default := @Subset(_corr;1);
_choice:= @Prompt([OkCancelList]:[NoSort]; _wintitle;_text1; _default; _corr);
_member := @Member(_choice;_corr);
_form := @Subset(@Subset(_formlist;_member);-1);
_mailserver := @Subset(@MailDbName;1);
_maildatabase := @Subset(@MailDbName;-1);
@Environment("FormType"; @Text(_form));
@Environment("MailServer"; _mailserver);
@Environment("MailDatabase"; _mailDatabase);
@Command([EditMakeDocLink]) ;
@Command([ToolsRunMacro]; "(Calendar_CreateEntryStep2)")
Agent 2
Sub Initialize
Dim workspace As New NotesUIWorkspace
Dim session As New notessession
Dim lookres As lookconftype
form$ = session.getenvironmentstring("FormType")
mailserver$ = session.getenvironmentstring("MailServer")
maildatabase$ = session.getenvironmentstring("MailDatabase")
Dim maildb As NotesDatabase
' Set maildb = session.getdatabase(mailserver$,Maildatabase$)
Dim doc As NotesDocument
Dim note As notesdocument
Dim sourcedoc As notesdocument
Set sourcedoc = workspace.currentdocument.document
Set maildoc = workspace.ComposeDocument( mailserver$ , maildatabase$, form$)
Set note = maildoc.document
' ' Setting the appointmenttype according to the
' Select Case form$
' Case "Appointment" : note.appointmenttype = "0"
' Case "Task" : note.appointmenttype = "0"
' Case Else
' End Select
' Copying referance-ID to make linking easy
refitemlist$ = "CompanyID DepartmentID ContactID"
refprefix$ = "Ref"
Call copyItemsFromContactDB(sourcedoc, note, refitemlist$, refprefix$)
' Copying fields to make view-index easy
itemlist$ = "Companyname CompanyShortName Departmentname Contactname"
prefix$ = ""
Call copyItemsFromContactDB(sourcedoc, note, itemlist$, prefix$)
maildoc.Reload
' Fill document with information about submitting document
Call maildoc.gotofield("body")
' Paste the DocLink from clipboard to the body field. The DocLink was copied to clipboad in the calling agent
Call maildoc.paste()
Call maildoc.fieldappendtext("body", getcomputedbody(sourcedoc, ""))
Dim companyname$
If sourcedoc.CompanyShortName(0) = "" Then
companyname$ = sourcedoc.CompanyName(0)
Else
companyname$ = sourcedoc.CompanyShortName(0)
End If
subject$ = "> " + companyname$ + ", " + sourcedoc.ContactName(0) + ", "
Call maildoc.gotofield("subject")
Call maildoc.FieldSetText( "Subject", subject$)
Agenten indeholder også lidt integration via et ScriptBibliotek. Men det er udelukkende for at hente ekstra værdier fra kildesystemet. Jeg gemmer unikke felter, som peger på kildedokumenterne for senere at kunne referere til dem eller danne oversigter sorteret efter kunde/projekt/opgave.
Det burde være muligt at decifrere hvad der er specifik for min applikation og hvad der er standard. Spørg bare løs
27. februar 2004 - 13:29
#3
nice løsning.
En anden mulighed er den helt pragmatiske at sende dokumentet fra din opgavedatabase til din postkasse. I postkassen er der standard kode der kan lave en mail om til enten en 'To Do' eller en 'Calendar Entry'.
Det eneste det kræver er at felterne i din opgavebase hedder subject og body (af hensyn til mailintegrationen) - Hvis de ikke hedder det kan du dog benytte forward istedet for; men så er det hele dokumentet, der kommer over i et samlet rtf, hvilket jo ikke altid er kønt.
27. februar 2004 - 18:54
#4
Hvis du sætter Form til Appointment og opretter et CalenderDateTime med en dato, kommer denne mail med som en kalender memo.
Du kan så studere andre felter, som sætter typen af dette kalender memo!
/Hans Holt