使用 Javascript 在 CRM 中创建电话呼叫记录



>当我尝试使用 Javascript 在 CRM 中创建电话记录时,我收到以下错误消息,我无法弄清楚原因,有什么帮助吗?

 {
    "readyState": 4,
    "responseText": "{rn"error": {rn"code": "", "message": {rn"lang": "en-US", "value": "Error processing request stream. The property name 'from' specified for type 'Microsoft.Crm.Sdk.Data.Services.PhoneCall' is not valid."rn}rn}rn}",
    "status": 400,
    "statusText": "Bad Request"
} 
 "error" 
 "Bad Request" 
<code>
    var fromArray = [];
 var FromActivityParty = {
      PartyId:
     {
      Id: Xrm.Page.context.getUserId(),
      LogicalName: "systemuser"
     },
      ActivityId: {
       Id: TeamId,
       LogicalName: "team"
      },
      ParticipationTypeMask: { Value: 1 }
     };
 fromArray[0] = FromActivityParty;
 var toArray = [];
 var ToActivityParty = {
    PartyId:
     {
      Id: Xrm.Page.data.entity.getId(),
      LogicalName: "account"
     },
      ActivityId: {
       Id: TeamId,
       LogicalName: "team"
      },
      ParticipationTypeMask: { Value: 2 }
     }; 
  toArray[0] = ToActivityParty;
    var PhoneCall = {   
        from: fromArray, 
        to: toArray,
        Subject: "Create a phonecall record",
        OwnerId: fromArray,
        PhoneNumber: phoneNumber
    }

        CrmRestKit.Create("PhoneCall", PhoneCall)
                .fail(function (xhr, status, errorThrown) 
                { 
                    console.log(JSON.stringify(xhr, null, 4)); 
                    console.log(JSON.stringify(status, null, 4)); 
                    console.log(JSON.stringify(errorThrown, null, 4)); 
                })
                .done(function (data, status, xhr) {
                    console.log(JSON.stringify(data, null, 4));
    }
</code>

如果使用 REST 终结点,则需要使用与活动方实体的关系添加"收件人"和"发件人"。

这是我使用的代码:

var phoneCall = {};
phoneCall.phonecall_activity_parties = [
	new ActivityParty(2, "systemuser", "GUID"),
	new ActivityParty(1, "contact", "GUID")
]; //2 = 'To'            1 = 'From'
//TODO: Call CREATE using phoneCall object.
function ActivityParty(typeMask, logicalName, partyId) {
	if (partyId && partyId[0] === '{') {
		partyId = partyId.substring(1, partyId.length - 1);
	}
	this.PartyId = {
		LogicalName : logicalName,
		Id : partyId
	};
	this.ParticipationTypeMask = {
		Value : typeMask
	};
}

好吧,错误消息对我来说听起来很清楚。"from"似乎不是电话呼叫类型的有效属性名称。

快速猜测:您是否尝试过将"From"与大写字母一起使用?我看到您的其他属性是这样写的。

最新更新