Пользователи хотят создавать заметки (аннотации) на вкладке с настраиваемым представлением заметок, созданным с помощью html и javascript. Я добавил следующий код в ресурс, и хотя примечание создано и инцидент связан по желанию, веб-ресурс возвращает в форме внутреннюю ошибку сервера 500.
Вот добавленный код:
<script>
function addNewNote(title_b, notetext_b) {
debugger;
caseId = getUrlParam("id");
console.log("Case ID: " + caseId);
console.log("Title: " + title_b);
console.log("NoteText: " + notetext_b);
var entity = {};
entity["objectid_incident@odata.bind"] = "/incidents(" + caseId + ")";
entity["subject"] = title_b;
entity["notetext"] = notetext_b;
var req = new XMLHttpRequest();
req.open("POST", parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/annotations", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
debugger;
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204) {
var uri = this.getResponseHeader("OData-EntityId");
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec(uri);
var newEntityId = matches[1];
} else {
parent.Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send(JSON.stringify(entity));
parent.Xrm.Page.getControl("WebResource_NotesTabView").refresh();
}
</script>
<form action="" method="get" class="form-newnote">
<div class="form-newnote">
<label for="sub">Title </label>
<input type="text" size="114" name="sub" id="sub" required="true">
</div>
<div class="form-newnote">
<label for="notetext">Note </label>
<textarea name="notetext" rows="4" cols="114" id="notetext"></textarea>
</div>
<div class="form-newnote">
<button onclick="addNewNote(sub.value, notetext.value)">Add Note</button>
</div>
</form>
Перед нажатием «Добавить заметку»: до
После нажатия «Добавить заметку»: после
Сохранить помните, что записка успешно создана и связана с делом.