12. december 2003 - 17:02Der er
18 kommentarer og 1 løsning
Oprette opgaver eller kalender via script el. lign.
Vi er ved at konvertere et Groupwise system til Exchange. Groupwise har et system hvor man kan skrive opgaver mm. til nogle bestemte mapper som Groupwise poller på (det er ren tekst). Groupwise læser så opgaverne og sætter dem ind hos den i opgaven valgte bruger. Opgaverne bliver genereret fra et Navision C5 system for at gøre den ansvarlige bruger opmærksom på at han skal løse en opgave. Hvordan løser vi det i Exchange - jeg tænker på en løsning hvor man via en kommandopromt kan sende en ny opgave (task) eller kalenderentry (appointment). Jeg mener der findes noget i resourcekittet til Exchange, men det har jeg ikke. Måske kan man også gøre det via WSH.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Generelt kan du via CDO og WSH lave en ny kalender aftale, eller en opgave til en bestemt bruger. Dette script kan du så kalde fra en kommandopromt, så brugeren får det ind i sin Outlook.
Jeg kan godt lave en lille kort eksempel til dig, der kan gøre det.
Set CDOSession = CreateObject("MAPI.Session") CDOSession.Logon Set oFolder = CDOSession.GetDefaultFolder (CdoDefaultFolderCalendar) Set oMessages = oFolder.Messages Set oAppt = oMessages.Add oAppt.StartTime = "4/8/2000 2:30 pm" oAppt.EndTime = "4/8/2000 3:30 pm" oAppt.Subject = "Getting Married oAppt.Location = "1234 Church St." oAppt.Text = "Remember to pick up the ring" oAppt.Update
jeg kan ikke lige se hvordan man fortæller hvilken brugers kalender det drejer sig om.
Kan man benytter CDO i et script der afvikles lokalt på en PC og hvad skal der ud over WSH være installeret på PC'en.
Jeg har i mellemtiden fået SDK til Exchange 2003. Her er nogle eksempler med - skrevet i ældre udgave af Visual Studio.
Jeg har tilpasset programmet CreateAppointment så det kan kompileres i min Visual Studio 2003. Hvis jeg afvikler det på vores exchange server og opgiver min egen kalender, melder programmet at den har indsat et appointment i kalenderen, men i min kalender kan jeg ikke se noget.
Set CDOSession = CreateObject("MAPI.Session") CDOSession.Logon Set oFolder = CDOSession.GetDefaultFolder(CdoDefaultFolderCalendar, "tp") Set oMessages = oFolder.Messages Set oAppt = oMessages.Add oAppt.StartTime = "12/12/2003 2:30 pm" oAppt.EndTime = "12/12/2003 3:30 pm" oAppt.Subject = "Getting Married" oAppt.Location = "1234 Church St." oAppt.Text = "Remember to pick up the ring" oAppt.Update
Hvis jeg afvikler scriptet med CSCRIPT svarer "systemet"
F:\Designtech\ws1\test1.vbs(5, 1) Collaboration Data Objects: You do not have permission to log on. [Microsoft Exchange Server Information Store - [MAPI_E_FAILONEPROVIDER(8004011D)]]
Jeg ved ikke om løsningen med et skript er særligt velegnet - der er tale om ret mange brugere der skal skyde skriptet af.
Den bedste løsning ville være hvis der eksisterede en lille serviceapplikation der kunne polle opgaver (på samme måde som Groupwise gør) og herefter sender dem til exchange.
Jeg har fundet lidt kode i C# der kan oprette appointments:
// Reference to Microsoft ActiveX Data Objects 2.5 Library // Reference to Microsoft CDO for Exchange 2000 Library // Reference to Active DS Type Library static CDO.Appointment CreateAppointment(DateTime StartTime, DateTime EndTime, String Subject, String Location, String TextBody, CDO.IMailbox iMbx) { try { // Variables. CDO.Appointment iAppt = new CDO.Appointment(); ADODB.Connection Conn = new ADODB.Connection(); Conn.Provider = "ExOLEDB.DataSource";
Console.WriteLine("Appointment saved."); return iAppt; } catch (Exception err) { Console.WriteLine(err.ToString()); return null; } } Det ser ikke så kompliceret ud...
Vi har udviklet en NT-Service som poller et bestemt bibliotek for *.msg filer. Fra C5/XAL (eller andre programmer) skriver man sine e-mails, tasks, appointments, Notes i XML format ned i det bibliotek som "EtEllerAndet.msg" (ret simpelt far C5/XAL). Servicen propper det ned i Exchange serveren der leder det videre.
På den måde bliver man uafhængig af om den enkelte bruger har Outlook og hvilke sikkerhedsindstillinger den enkelte bruger har.
Brugerne skal bare have skriveret til det bibliotek servicen poller.
Servicen har derudover en del fejlservice (hvis modtageren ikke findes mm.) I forb. med servicen er der en CFG fil (XAL-fil) hvor man konf. selve servicen.
Jeg har det kørende på både W2K/Exchange 2000 og W2003/Exchange 2003 og det virker fint.
Hej Tommy, kunne jeg f[ dig til at maile mig dit lille program igen sammen med ops;tningsvejledningen... jeg har mistet det hele.
Please
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.