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.
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;
}
}
}