首页 > 其他分享 >Dynamics CRM ,file field and notes total size check

Dynamics CRM ,file field and notes total size check

时间:2023-03-17 14:57:32浏览次数:33  
标签:function notes request formContext field file var executionContext size

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;
}

标签:function,notes,request,formContext,field,file,var,executionContext,size
From: https://www.cnblogs.com/BricksMover/p/17226771.html

相关文章

  • Resize Operation Completed For File# 201; FILE# Does Not Exist (Doc ID 2246369.1
    OracleDatabase-EnterpriseEdition-Version12.1.0.2to12.2.0.1[Release12.1to12.2]OracleDatabaseCloudSchemaService-VersionN/AandlaterOracleDa......
  • wx.BoxSizer布局管理器用法,及其Add()方法参数说明
    wx.BoxSizer布局管理器是一种常见的布局管理器,它可以在水平或垂直方向上布置子窗口部件。同时,它还可以在水平或垂直方向上包含其他wx.BoxSizer来创建复杂的布局。下面......
  • MySQL-notes
    一、SQLsql分类分类全称说明DDLDataDefinitionLanguage数据定义语言,用来定义数据库对象(数据库,表,字段)DMLDataManipulationLanguage数据操作语言,......
  • Linux-notes
    一、Linux基础命令一、Linux的目录结构1、目录结构Linux的目录结构是一个树型结构Windows系统可以拥有多个顶级目录,即各个盘符,如C盘、D盘、E盘Linux没有盘符这个概念......
  • 布局管理器wx.BoxSizer
    b=wx.BoxSizer(wx.VERTICAL)b.Add(self.notebook1,1,wx.EXPAND)self.parent.SetSizer(b)解析以上代码原理,说明布局管理器的作用: 以上代码主要是用来为GUI界......
  • 微信支付V3 InvalidKeyException: Illegal key size
    使用Java加载密钥时,抛出异常InvalidKeyException:Illegalkeysize受到美国法律的约束,早期Java的运行时限制了JCE支持的密钥长度,即默认不支持256位的AES。解决的方法有三......
  • Sitecore Field 类型与 C# 类型映射表
    配置文件路径位置:\App_Config\FieldTypes.config<!--SimpleTypes--><fieldTypename="Checkbox"type="Sitecore.Data.Fields.CheckboxField,Sitecore.Kernel"/><......
  • Katalon-指定浏览器窗口大小(Set View Port Size)
      点击setviewportsize ......
  • 转:深度学习中epoch、batch、batch size和iterations详解
    1.epoch在训练一个模型时所用到的全部数据;备注:一般在训练时都要使用多于一个的epoch,因为在神经网络中传递完整的数据集仅仅一次是不够的,只有将完整的数据集在同样的神经网......
  • MybatisPlus中@TableField注解的使用
    实现官方文档说明:com.baomidou.mybatisplus.annotations.TableField 值描述value字段值(驼峰命名方式,该值可无)update预处理set字段自定义注入condition预处理WHERE实体......