Dynamics 365Online 使用Xrm.WebApi.online.execute执行自定义Action
D365V9以后引入了新的API,其中比较Nice的是给我们封装了WebApi,不需要我们再去写request了,本篇要分享的是如何使用SDK中的Xrm.WebApi.online.execute来执行自定义的Entity类型的Action。
Docs中对execute执行Action是有示例的,比如下面的sample,但是这是global的Action,可以看到红框中的boundParameter(关于参数的含义可以自己看docs,很简单,这里就不做阐述了)是null
那Entity的类型的该怎么构建,docs的示例中没有,那只能自己琢磨了。
先来看下我定义的Action,很简单就一个参数
再来看下这条Action在metadata中的显示,会发现多了一个Name为entity的输入参数,因为这是Entity类型的Action,所以得把Entity传入
看下具体的代码,getMetadata中的boundParameter的值是entity,parameterTypes即是你的输入参数,在我定义的projectId的基础上增加了一个entity,而这个entity的赋值方式搞对了就很简单了,entityType的值即是上面metadata中红框中的,其他的参数的说明还是看docs吧
var projectJs = window.ProjectJs || {};
(function () {this.SendSurvey = function (executionContext) {var projectId = executionContext.data.entity.getId().replace('{', '').replace('}', '');var sendSurvey = new projectJs.sendSurveyMail(projectId);Xrm.WebApi.online.execute(sendSurvey).then(function (res) {if (res.ok) {Xrm.Navigation.openAlertDialog({ text: "Send Successfully"});}}, function (res) {});};projectJs.sendSurveyMail = function (projectId) {this.projectId = projectId;this.entity = { entityType: "msdyn_project", id: this.projectId};};projectJs.sendSurveyMail.prototype.getMetadata = function () {return{boundParameter: "entity",parameterTypes: {"entity": {typeName: "mscrm.msdyn_project",structuralProperty: 5},"projectId": {"typeName": "Edm.String","structuralProperty": 1 // Primitive Type}},operationType: 0, // This is an action. Use '1' for functions and '2' for CRUDoperationName: "sfdhl_ProjectServiceSendSurveyEmail"
};
};}
).call(projectJs);
最后看下执行的结果,成功调用
Dynamics 365Online 使用Xrm.WebApi.online.execute执行自定义Action相关推荐
- Xrm.WebApi 多对多关系处理
//primaryId: 主实体id //childIds:多对多中子实体的ids //parentTable:主实体logicalName //childTable:子实体logicalName / ...
- 在Dynamics 365 CRM 中使用Xrm.WebApi实现增,删,改,查(需V9.0或以上)
增加一条记录 function createAccount() { // collect account data var data = { "name": document.ge ...
- Dynamics 365Online 应用内消息通知(In-app notifications)
应用内通知其实一直是个刚需,但D365一直缺乏这个功能,如果客户有需求,我们只有通过自定义的方式实现,好在V9以后顶部栏可以自定义了,可以自己加Icon,实现通知的样式. 好在2022WAV1后,D3 ...
- activiti自定义_在Activiti中执行自定义查询
activiti自定义 (这可能最终会出现在Activiti 5.15版本的用户指南中,但是我已经想要共享它了) Activiti API允许使用高级API与数据库进行交互. 例如,对于检索数据,查询 ...
- 在Activiti中执行自定义查询
(这可能最终会出现在Activiti 5.15版本的用户指南中,但是我已经想共享它了) Activiti API允许使用高级API与数据库进行交互. 例如,对于检索数据,查询API和本机查询API的用 ...
- greasemonkey_Greasemonkey –在任何页面上执行自定义JavaScript
greasemonkey If you want to try executing custom local scripts on any page you visit, try Greasemonk ...
- mysql 创建函数 权限_MySQL赋予用户执行自定义Function的权限
将远程数据库导入到本地之后,一启动项目就报错"execute command denied to user",提示用户没权限执行自定义FunctionCaused by: java ...
- WebApi数据验证——编写自定义数据注解(Data Annotations)
2019独角兽企业重金招聘Python工程师标准>>> 配合ModelState使用,关于使用方法,参考微软文档 https://docs.microsoft.com/en-us/a ...
- build 之前执行task_Android Gradle新增buildtypes以及编译前执行自定义task
众所周知,打包的需求千奇百怪,我们在打包时会遇到文件操作.版本定义.通过参数控制版本之类的需求.今天我们就来聊聊如何来实现这些需求-- 1.添加buildTypes 一般我们通过gradle构建的命令 ...
最新文章
- 客快物流大数据项目(五十二):根据数据库表及字段创建公共模块
- 少壮不努力,老大背单词
- 数据治理(Data Governance)
- 属于哪种虚拟化类型_经络淤堵,疲乏无力?有3种疲劳类型,你属于哪种,快来自测一下...
- mfc static 文本自适应宽度_基于单双词的自适应单调启发式搜索的文本攻击
- xshell 设置屏幕字体
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
- 1,Django 基础一
- 网络货运平台要智能,安全的数据底座少不了
- poj 2031 BuildingaSpaceStation 最小生成树 Prim、Kruskal
- C语言最后一次作业--总结报告
- QQ尾巴病毒核心技术的实现原理分析
- AndroidStudio的强大搜索功能介绍!全局搜索、搜索文件、搜索类、搜索文本、搜索一切
- NuPlayer源码分析三:解码模块
- 接口收到CRC错包怎么处理
- 电子线路设计技巧5:CDRH系列贴片电感
- EMC | 静电防护方法
- python爬虫小工具——下载助手
- windows下安装zookeeper以及监控中心
- 【人工智能】大模型的发展历史