let file_is_uploaded;
let fileMaxSize = 20971520;//20M
var timer = 0;
function myfun(executionContext){
var formContext = executionContext.getFormContext();
var file = formContext.getAttribute("his_attachment").getValue();
var notesFileSize = getNotesFileSize(formContext);
console.log(notesFileSize);
if(file){
var filesize = file.fileSize+notesFileSize;
if (filesize > 1400000) {
Xrm.Navigation.openErrorDialog({ errorCode: "E0001", message: "文件不能超过20M" }).then(
function (success) {
file_is_uploaded = setInterval(getDelete, 1000,executionContext);
},
function (error) {
});
}
}
}
function getDelete(executionContext){
timer++;
console.log(timer);
var deletebutton = window.parent.document.getElementById('id-b72efc4f-5395-483e-b0df-793c3708685c-197-his_attachment0a7ff475-b016-4687-9ce5-042bfdbd6519-his_attachment.fieldControl-file-control-remove-button');
console.log(deletebutton);
if(deletebutton){
clearInterval(file_is_uploaded);
file_is_uploaded = null;
deleteFile(executionContext);
}
}
function deleteFile(executionContext){
var formContext = executionContext.getFormContext();
var url = Xrm.Utility.getGlobalContext().getClientUrl() + "/api/data/v9.0/his_broadcast_fee_trn(" + formContext.data.entity.getId().replace(/{|}/g,"") + ")" + "/his_attachment";
var request = new XMLHttpRequest();
request.open("delete", url , true);
request.setRequestHeader("OData-MaxVersion", "4.0");
request.setRequestHeader("OData-Version", "4.0");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
request.onreadystatechange = function () {
if (request.readyState === 4) {
formContext.getAttribute("his_attachment").setValue(null);
}
}
request.send();
}
function getNotesFileSize(formContext){
var recordId = formContext.data.entity.getId();
var fileSize = 0;
var fetchXml = "<fetch>" +
" <entity name='annotation'>" +
" <attribute name='filename'/>" +
" <attribute name='filesize'/>" +
" <attribute name='annotationid'/>" +
" <filter>" +
" <condition attribute='objectid' operator='eq' value='" + recordId + "'/>" +
" </filter>" +
" </entity>" +
"</fetch>";
var entityName =
"annotation" + MDABusinessCommon.const.ENTITYPLURALNAME;
var noFormat = true;
var isAsync = false;
MDACommon.data.retrieveFetchXml(
entityName,
fetchXml,
noFormat,
isAsync,
function (obj) {
console.log(
"file check ===>",
obj
);
if (obj.length > 0) {
for(var i=0;i<obj.length;i++){
fileSize = fileSize+obj[i]["filesize"];
}
}
},
function (prmStatus, prmMessage) {
console.log(prmMessage);
},
true
);
return fileSize;
}