bleuerouge | Bonjour, j'ai créé un Webservice me permettant d'interagir avec une base Exchange via CDO, hors si mon webservice un fois renseigné m'écris bien dans le bon calendrier, je m'aperçois que le format qu'il vient d'envoyer n'est pas le bon et que le fichier n'est donc pas pris correctement. Je ne connais pas exactement le format de donnée utilisé pour les taches, j'ai fait la même pour des rendez vous qui marche a peu près correctement, mais les taches restent un mystère.
quelqu'un pourrait il m'aguiller sur le manière donc je devrai ou encore me renseigner sur le schema dav exact d'une tache (outlook task), le site de la msdn est pour le moins évasif a ce sujet.
Merci d'avance
Code :
- public string AddTache (string destinataire,string dtstart, string dtend, string dtdue, string sujetTache, string descriptionTache)
- {
- string result = String.Empty;
- // Core Task Properties
- string cdoTaskStartDate = "{00062003-0000-0000-C000-000000000046}/0x00008104" ;
- string cdoTaskDueDate = "{00062003-0000-0000-C000-000000000046}/0x00008105";
- string cdoTaskPercentComplete = "{00062003-0000-0000-C000-000000000046}/0x00008102";
- string cdoTaskComplete = "{00062003-0000-0000-C000-000000000046}/0x0000811c";
- string cdoTaskDateCompleted = "{00062003-0000-0000-C000-000000000046}/0x0000810f";
- string cdoTaskStatus = "{00062003-0000-0000-C000-000000000046}/0x00008101";
- string cdoTaskState = "{00062003-0000-0000-C000-000000000046}/0x00008113";
- string cdoTaskActualEffort = "{00062003-0000-0000-C000-000000000046}/0x00008110";
- string cdoTaskEstimatedEffort = "{00062003-0000-0000-C000-000000000046}/0x00008111";
- string cdoTaskMode = "{00062003-0000-0000-C000-000000000046}/0x00008518";
- //Common Props
- string cdoBillingInformation = "{00062008-0000-0000-C000-000000000046}/0x00008535";
- string cdoCompanies ="{00062008-0000-0000-C000-000000000046}/0x00008539";
- string cdoMileage = "{00062008-0000-0000-C000-000000000046}/0x00008534";
- // Reminder Props
- string cdoReminderDelta = "{00062008-0000-0000-C000-000000000046}/0x00008501";
- string cdoReminderNextTime = "{00062008-0000-0000-C000-000000000046}/0x00008560";
- string cdoReminderTime = "{00062008-0000-0000-C000-000000000046}/0x00008502";
- string cdoReminderSet = "{00062008-0000-0000-C000-000000000046}/0x00008502";
- string sURL = string.Empty;
- try
- {
- sURL = ConfigurationSettings.AppSettings["serveur"] + destinataire + "/t%C3%A2ches/" + Guid.NewGuid().ToString() + sujetTache +".eml";
- ADODB.Connection oCn = new ADODB.Connection();
- ADODB.Record oRc = new ADODB.Record();
- ADODB.Fields oFields;
- oCn.Provider = "exoledb.datasource";
- oCn.Open(sURL, "", "", 0);
- if(oCn.State == 1)
- {
- result = result + "Connection Successful";
- }
- else
- {
- result = result + "Connection Unsuccessful";
- return result;
- }
- oRc.Open(sURL, oCn,
- ADODB.ConnectModeEnum.adModeReadWrite,
- ADODB.RecordCreateOptionsEnum.adCreateOverwrite,
- ADODB.RecordOpenOptionsEnum.adOpenSource,
- "",
- ""
- );
- oFields = oRc.Fields;
- oFields["DAV:contentclass"].Value = "urn:content-classes:task";
- oFields["http://schemas.microsoft.com/exchange/outlookmessageclass"].Value = "IPM.Task";
- oFields["urn:schemas:httpmail:subject"].Value = sujetTache;
- oFields["urn:schemas:httpmail:htmldescription"].Value = "MACH 4 CRM : " + descriptionTache + "<br/><a href='" + ConfigurationSettings.AppSettings["MACH4CRM_path"] + "'>"+ sURL + "</a><br/>Outlook Web Access :<a href='"+sURL+"?cmd=open' >" + sujetTache + "</a>";
- oFields["urn:schemas:httpmail:textdescription"].Value = descriptionTache;
- oFields[cdoTaskStartDate].Value = DateTime.Parse(dtstart);
- oFields[cdoTaskDueDate].Value = DateTime.Parse(dtdue);
- oFields[cdoTaskActualEffort].Value = 36000; // Minutes. This prop is really funky.
- oFields[cdoTaskEstimatedEffort].Value = 72000; // Minutes This prop is also funky.
- oFields[cdoReminderSet].Value = true;
- oFields[cdoReminderDelta].Value = 1500; // 15 minutes.
- oFields[cdoReminderNextTime].Value = DateTime.Parse(dtend);
- //oFields.Update();
- //oFields["urn:schemas-microsoft-comfficeffice#Keywords"].Value = Array("Mango", "Kiwi" );
- oFields[cdoBillingInformation].Value = "MACH4";
- //oFields[cdoCompanies].Value = {"MACH4"};
- //oFields[cdoMileage].Value = "120";
- //oFields.Append(cdoTaskStatus,ADODB.DataTypeEnum.adInteger,0 ,0 , 0);
- //oFields.Append(cdoTaskPercentComplete, ADODB.DataTypeEnum.adDouble,0 ,0 , "0.0" );
- oFields.Update();
- oRc.Close();
- oRc = null;
- oFields = null;
- oCn.Close();
- oCn = null;
- }
- catch (Exception e)
- {
- return sURL + e.Message.ToString() + "<br/>" + e.Source.ToString() + e.HelpLink +e.InnerException;
- }
- return result;
- }
|
|