Avatar billede tommypedersen Nybegynder
12. december 2003 - 17:02 Der 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.

Jeg vil være meget glad for et hint!

//Tommy
Avatar billede kedde65 Praktikant
13. december 2003 - 14:15 #1
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.

VH CK
Avatar billede tommypedersen Nybegynder
13. december 2003 - 14:33 #2
Hej CK

Det må du meget gerne...

Jeg fandt følgende eksempel:

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.

Det var et andet kapitel.

MVH Tommy
Avatar billede kedde65 Praktikant
13. december 2003 - 14:54 #3
Det var ca. det samme eksempel jeg ville have kommet med. Men du skal bruge sætningen

Set oFolder = CDOSession.GetSharedDefaultFolder
(CdoDefaultFolderCalendar, recipient)

Hvor recipient er et pobjekt der refererer til den bruger der skal oprettes kalender aftaler til.

Jeg kan ikke komme med et konkret eksempel nu, da jeg ikke sidder indenfor rækkevideaf min Exchange...

VH CK
Avatar billede tommypedersen Nybegynder
13. december 2003 - 16:05 #4
Hej har ændret eksemplet til:

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";

      //Set the appointment properties.
      iAppt.StartTime = StartTime;
      iAppt.EndTime = EndTime;
      iAppt.Subject = Subject;
      iAppt.Location = Location;
      iAppt.TextBody = TextBody;

      //Save the appointment
      Conn.Open(iMbx.BaseFolder, "", "", -1);
      iAppt.DataSource.SaveToContainer(iMbx.Calendar, Conn,
        ADODB.ConnectModeEnum.adModeReadWrite,
        ADODB.RecordCreateOptionsEnum.adCreateNonCollection,
        ADODB.RecordOpenOptionsEnum.adOpenSource, "", "");

      Console.WriteLine("Appointment saved.");
      return iAppt;
  }
  catch (Exception err)
  {
      Console.WriteLine(err.ToString());
      return null;
  }
}
Det ser ikke så kompliceret ud...

MVH Tommy
Avatar billede tommypedersen Nybegynder
13. december 2003 - 19:09 #5
Hej

Hvis jeg afvikler scriptet:

Set CDOSession = CreateObject("MAPI.Session")
CDOSession.Logon
Set oFolder = CDOSession.GetDefaultFolder(CdoDefaultFolderCalendar, recipient)
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

kommer aftalen ind i min kalender - ligemeget hvad der står i "recipient"

Følgende har jeg fundet på MSDN:

Syntax
Set objFolder = objSession.GetDefaultFolder(ObjectType [, mailbox] )

objFolder

On successful return, represents the default Folder object specified by ObjectType.

objSession

Required. The Session object.

ObjectType

Required. Long. Specifies the default folder to be retrieved.

mailbox

Optional. String. Specifies a delegate store in which to search for the folder.


I princippet skal man vel sende aftalen som e-mail til modtageren.

MVH Tommy
Avatar billede tommypedersen Nybegynder
18. december 2003 - 10:29 #6
Hej CK (og måske andre)

Jeg skal ud og installere opgaven i morgen - så det brænder lidt.

Jeg tror den simpleste løsning ville være at sende opgaven som en E-mail til modtageren - hvis I kan hjælpe med at løse det er det super.

HVORDAN SENDER MAN EN OPGAVE SOM E-MAIL ????

//Tommy
Avatar billede tommypedersen Nybegynder
31. december 2003 - 14:25 #7
Vi får udviklet en tekst-gateway (.NET NT-service) til Exchange server, der udnytter CDO.

//Tommy
Avatar billede ylwen Nybegynder
08. marts 2004 - 17:51 #8
>>Tommy

Fik du nogen sinde løst dit problem??
Jeg sidder nemlig med det samme problem nu!!
Avatar billede tommypedersen Nybegynder
08. marts 2004 - 18:17 #9
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.

//Tommy
Avatar billede ylwen Nybegynder
08. marts 2004 - 18:19 #10
Er det noget du kan dele med os?
Avatar billede tommypedersen Nybegynder
08. marts 2004 - 19:19 #11
Er det noget du skal bruge til en eller flere installationer? - hos kunder eller jer selv?

Det er noget vi har regnet med at sælge men vi ved ikke hvordan vi kan styre det så det ikke bare bliver kopieret til højre og venstre.
Avatar billede ylwen Nybegynder
08. marts 2004 - 19:21 #12
Jeg skal bruge det privat
Avatar billede tommypedersen Nybegynder
08. marts 2004 - 19:55 #13
Nu skal du vel ikke bruge det til at sende SPAM - det tror jeg faktisk det ville være ret godt til.

Hvis du skal bruge det privat må du godt få programmet, men det er ikke noget free-ware program.

Jeg kan sende det pr. e-mail
Avatar billede ylwen Nybegynder
08. marts 2004 - 19:59 #14
:) nej ikke til spam, bare rolig. du kan sende det til tbm@slet_menzel.dk  du ved hvad du skal slette i mailadressen ;)

Tak for hjælpen
Avatar billede tommypedersen Nybegynder
09. marts 2004 - 08:59 #15
jeg kan ikke sende noget til tbm@***menzel***.dk
Avatar billede ylwen Nybegynder
09. marts 2004 - 09:24 #16
det var mærkeligt... prøv med torsten istedet for tbm
Avatar billede tommypedersen Nybegynder
09. marts 2004 - 09:47 #17
er sendt...
Avatar billede tommypedersen Nybegynder
09. marts 2004 - 22:33 #18
Det virker ikke...

prøv at sende en e-mail på tp@***designtech***.dk så kan jeg returnere på den! (fjern lige ***)
Avatar billede ylwen Nybegynder
25. maj 2004 - 22:07 #19
Hej Tommy, kunne jeg f[ dig til at maile mig dit lille program igen sammen med ops;tningsvejledningen... jeg har mistet det hele.

Please
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester