This sample code shows how to convert a fax to a task. The code first creates an incoming Fax activity, and then converts it to a Follow-up Task with a due date a week after it was received.
[C#] using System; using Microsoft.Crm.Sdk.Utility; namespace Microsoft.Crm.Sdk.HowTo { // Microsoft Dynamics CRM namespaces. using CrmSdk; ////// This sample shows how to convert a fax into a task. /// public class ConvertFaxToTask { static void Main(string[] args) { // TODO: Change the server URL and organization to match your Microsoft Dynamics CRM server and Microsoft Dynamics CRM organization. ConvertFaxToTask.Run("http://localhost:5555", "CRM_Organization"); } public static bool Run(string crmServerUrl, string orgName) { #region Setup Data Required for this sample. bool success = false; #endregion try { // Set up the CRM service. CrmService service = CrmServiceUtility.GetCrmService(crmServerUrl, orgName); service.PreAuthenticate = true; // Get the current user. WhoAmIRequest userRequest = new WhoAmIRequest(); WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest); // Create the fax object. fax fax = new fax(); // Set the properties of the fax. fax.subject = "Test Fax"; fax.description = "New Fax"; // Create the party sending and receiving the fax. activityparty party = new activityparty(); // Set the properties of the activity party. party.partyid = new Lookup(); party.partyid.type = EntityName.systemuser.ToString(); party.partyid.Value = user.UserId; // The party sends and receives the fax. fax.from = new activityparty[] { party }; fax.to = new activityparty[] { party }; // Create the fax. Guid createdFaxId = service.Create(fax); // Retrieve the created fax. // Be aware that using AllColumns may adversely affect // performance and cause unwanted cascading in subsequent // updates. A best practice is to retrieve the least amount of // data required. fax newFax = (fax)service.Retrieve(EntityName.fax.ToString(), createdFaxId, new AllColumns()); // Create the task object. task task = new task(); // Set the properties of the task. task.subject = "Follow Up: " + newFax.subject; // Set the due date of the task. task.scheduledend = new CrmDateTime(); // Get the date that the fax was received. CrmDateTime endDate = newFax.createdon; // Set the due date of the task to one week later. task.scheduledend.Value = endDate.UniversalTime.AddDays(7).ToString(); // Create the task. Guid createdTaskId = service.Create(task); #region check success if (createdTaskId != Guid.Empty) { success = true; } #endregion #region Remove Data Required for this Sample service.Delete(EntityName.fax.ToString(), createdFaxId); service.Delete(EntityName.task.ToString(), createdTaskId); #endregion } catch (System.Web.Services.Protocols.SoapException) { // Add your error handling code here. } return success; } } }