Share via


CRMEmail.UpdateAndRetrieve Method

The UpdateAndRetrieve method updates an e-mail object and then retrieves it.

Syntax

[Visual Basic .NET]
Public Function UpdateAndRetrieve(
  ByVal Caller As CUserAuth,
  ByVal EmailId As String,
  ByVal EmailXml As String,
  ByVal RecipientsXml As String,
  ByRef OutRecipientsXml As String
) As String
[C#]
public string UpdateAndRetrieve(
  CUserAuth  Caller,
  string  EmailId,
  string  EmailXml,
  string  RecipientsXml,
  out string  OutRecipientsXml
);
[C++]
public: String* UpdateAndRetrieve(
  CUserAuth*  Caller,
  String*  EmailId,
  String*  EmailXml,
  String*  RecipientsXml,
  String**  OutRecipientsXml
);

Parameters

Caller

Specifies the identity of the caller. The caller must have the prvWriteActivity and prvReadActivity privileges to perform this action. See CUserAuth.

EmailId

Specifies the ID of the e-mail object that is to be updated.

EmailXml

Specifies an XML string describing the e-mail object. The XML schema is described by emailactivity.xsd.

RecipientXml

Specifies an XML string describing the sender and the recipients of the e-mail object. The XML schema is described by activityparty.xsd.

OutRecipientsXml

[out]  Specifies an XML string describing the sender and the recipients of the e-mail object. The XML schema is described by activityparty.xsd.

Return Value

Returns a String type that specifies the XML data describing the e-mail object. The XML schema is described by emailactivity.xsd.

Remarks

If there is an error, SOAP throws an exception and the error message is reported in System.Web.Services.Protocols.SoapException.Detail.OuterXml.

All IDs passed to the platform are GUIDs wrapped in braces. For example: {6522D89A-A752-4455-A2B0-51494C6957C3}

Example

[C#]
// strServer should be set with the name of the platform Web server
string strServer = "myservername";

// virtualDirectory should be set with the name of the Microsoft CRM
// virtual directory on the platform Web server
string virtualDirectory = "mscrmservices";
string strDir = "https://" + strServer + "/" + virtualDirectory + "/";

// BizUser proxy object
Microsoft.CRM.Proxy.BizUser bizUser = new Microsoft.CRM.Proxy.BizUser ();
bizUser.Credentials = System.Net.CredentialCache.DefaultCredentials;
bizUser.Url = strDir + "BizUser.srf";

// CRMEmail proxy object
Microsoft.CRM.Proxy.CRMEmail email = new Microsoft.CRM.Proxy.CRMEmail();
email.Credentials = System.Net.CredentialCache.DefaultCredentials;
email.Url = strDir + "CRMEmail.srf";

string strErrorMsg;
string strEmailId = "{391B302C-E2F8-4E19-83E2-3B2D291B4E31}";

try
{
   Microsoft.CRM.Proxy.CUserAuth userAuth = bizUser.WhoAmI();

   // Set up the XML string for the activity
   string strActivityXml = "<emailactivity>";
   strActivityXml += "<messagesubject>Test Email 1</messagesubject >";
   strActivityXml += "<messagebody>Test Email 1</messagebody>";
   strActivityXml += "<ownerid type=\"" + Microsoft.CRM.Flags.ObjectType.otSystemUser.ToString() +"\">";
   strActivityXml += userAuth.UserId + "</ownerid>";
   strActivityXml += "</emailactivity >";

   // Set up the XML string for the activity parties
   string strPartiesXml = "<activityparties>";
   strPartiesXml += "<activityparty>";
   strPartiesXml += "<addressused >rachel@adventure-works.com</addressused >";
   strPartiesXml += "<partyobjecttypecode>" + Microsoft.CRM.Flags.ObjectType.otContact.ToString() + "</partyobjecttypecode>";
   strPartiesXml += "<participationtypemask>";
   strPartiesXml += Microsoft.CRM.Flags.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_CC_RECIPIENT.ToString();
   strPartiesXml += "</participationtypemask>";
   strPartiesXml += "</activityparty>";
   strPartiesXml += "</activityparties>";

   // Now update the e-mail object
   string strResultsXml = email.UpdateAndRetrieve(userAuth, strEmailId, strActivityXml, strPartiesXml, out strPartiesXml);
}
catch (System.Web.Services.Protocols.SoapException err)
{
   // Process the platform error here
   strErrorMsg = ("ErrorMessage: " + err.Message + " " + err.Detail.OuterXml + " Source: " + err.Source );

}
catch (Exception err)
{
   // Process other errors here
   strErrorMsg = ("ErrorMessage: " + err.Message );
}

Requirements

Namespace: Microsoft.CRM.Proxy

Assembly: microsoft.crm.proxy.dll

See Also

© 2003 Microsoft Corporation. All rights reserved.