OnLoad を起動するサービス アクティビティ フォームにいくつかの Javascript が添付されています。Service Case (Service Activity に関連する) に関連付けられた TechId を取得し、Service Activity のリソースをデフォルトでこのユーザーに設定しようとします。
上のスクリーンショットでわかるように、リソース フィールドに正しい「名前」が挿入されますが、アイコンが「破損」しているため、適切に解決されていないようです。これを削除して同じユーザーを手動で追加すると、すべて問題ありません。このアクティビティを画像のまま保存しようとすると、スケジューリング エンジンに問題があることを示すエラーが生成されます。
この値を設定するために使用するコードは次のとおりです。
function SetTechId()
{
if (Xrm.Page.getAttribute("resources").getValue() == null)
{
if (Xrm.Page.getAttribute("regardingobjectid").getValue() != null)
{
var caseId = Xrm.Page.getAttribute("regardingobjectid").getValue()[0].id;
var endPoint = getODataEndPoint();
var odataSelect = endPoint + "/IncidentSet?$select=new_new_fieldtechs_incident/OwnerId,new_new_fieldtechs_incident/OwningUser&$expand=new_new_fieldtechs_incident&$filter=IncidentId eq guid'" + caseId + "'";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataSelect,
beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
success: function (data, textStatus, XmlHttpRequest)
{
if (data.d != null)
{
var fieldTech = data.d.results[0];
var ownerId = fieldTech.new_new_fieldtechs_incident.OwnerId;
//because the resources field in the service activity is a partylist, we need to treat this differently
var partylist = new Array();
partylist[0] = new Object();
partylist[0].id = ownerId.Id; //Guid (i.e., Guid of User or Contact etc)
partylist[0].name = ownerId.Name; //Name (i.e., Name of User or Contact etc)
partylist[0].entityType = "account"; //entity schema name of account or contact
Xrm.Page.getAttribute("resources").setValue(partylist);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) { }
});
}
}
}
function getODataEndPoint() {
return Xrm.Page.context.prependOrgName("/xrmservices/2011/OrganizationData.svc");
};