Hi guys,
I wrote some javascript code that creates an email activity with a PDF attachment. It's functional from the CRM web client (On-Premise) and using the Outlook client when I'm in online mode, but when I go OFFLINE I get the following error "The activitymimeattachment with id xxxxxxx Does Not Exist".
I make 2 ajax calls, the first to create the Email Activity (which returns the newly created ActivityId) which I then send to my second Ajax call to create the ActivityMimeAttachment and associate it with the activity. As I said, when I'm online, it's all fine, and if I look at the ajax responses in the screenshots attached, the one that fails is looking for a ActivityMimeAttachmentId = "13F85C43-2E26-E311-96FB-005056C00008" which doesn't exist in the ActivityMimeAttachment Table. The attachment does get saved but with an id of "15F85C43-2E26-E311-96FB-005056C00008" (the SECOND number in the guid is different). If I look at the JSON response for the successfull call (when online), the value of activitymimeattachmentId is correct.
This is driving me NUTS ! Is there a difference between the oData service on the CRM server and service that is running on the local pc ?
I wrote some javascript code that creates an email activity with a PDF attachment. It's functional from the CRM web client (On-Premise) and using the Outlook client when I'm in online mode, but when I go OFFLINE I get the following error "The activitymimeattachment with id xxxxxxx Does Not Exist".
I make 2 ajax calls, the first to create the Email Activity (which returns the newly created ActivityId) which I then send to my second Ajax call to create the ActivityMimeAttachment and associate it with the activity. As I said, when I'm online, it's all fine, and if I look at the ajax responses in the screenshots attached, the one that fails is looking for a ActivityMimeAttachmentId = "13F85C43-2E26-E311-96FB-005056C00008" which doesn't exist in the ActivityMimeAttachment Table. The attachment does get saved but with an id of "15F85C43-2E26-E311-96FB-005056C00008" (the SECOND number in the guid is different). If I look at the JSON response for the successfull call (when online), the value of activitymimeattachmentId is correct.
This is driving me NUTS ! Is there a difference between the oData service on the CRM server and service that is running on the local pc ?
I've also included a snippet of my code.
var ODATA_ActivityMimeAttachmentCollection = "/ActivityMimeAttachmentSet"; var ODATA_EmailCollection = "/EmailSet"; var RegardingEntity = new Object(); RegardingEntity.LogicalName = "contact"; RegardingEntity.Id = customerid[0].id; var objEmail = new Object(); objEmail.RegardingObjectId = RegardingEntity; objEmail.Subject = "Contract email"; var jsonEntity = window.JSON.stringify(objEmail); //* Create an email record *// $.ajax({ async : true, type: "POST", contentType: "application/json; charset=utf-8", datatype: "json", url: serverUrl + ODATA_ENDPOINT + ODATA_EmailCollection, data: jsonEntity, beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); }, success : function (data) { //** Create the email attachment **// emailId = data.d.ActivityId; if (emailId) { var refEntity = new Object(); refEntity.LogicalName = "email"; refEntity.Id = emailId; //refEntity.Name = "Subject"; var objAnnotation = new Object(); //objAnnotation.ObjectTypeCode = "email"; objAnnotation.Subject = "PDF Contract Document"; objAnnotation.ActivityId = refEntity //objAnnotation.ObjectId = refEntity; objAnnotation.MimeType= "application/pdf"; objAnnotation.Body = binaryFileToString(); objAnnotation.FileName = "Signed_Contract.pdf"; //Parse the entity object into JSON var jsonEntity2 = window.JSON.stringify(objAnnotation); //AJAX function to Create a CRM record using OData $.ajax({ async : true, type: "POST", contentType: "application/json; charset=utf-8", datatype: "json", url: serverUrl + ODATA_ENDPOINT + ODATA_ActivityMimeAttachmentCollection, data: jsonEntity2, beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); } }); } },