Dynamics CRM2016 通过web api来调用自定义action之global action

来源:互联网 发布:淘宝店家联系方式 编辑:程序博客网 时间:2024/06/11 18:39

      上篇介绍web api调用自定义action中用到的demo是基于特定的实体,那本篇要分享的是global action,区别在于一个是私有方法一个是公用方法(个人理解的说法)。

     如何新建一个action这里就不说了,具体参见上篇,直接看下前端js的调用代码,与上篇的示例代码的区别是request的url的最后部分,global action直接写上action的唯一名称即可,而上篇基于实体的写法是这样的"incidents(03AE5852-6EFA-E511-9417-E2BFEC45B344)/Microsoft.Dynamics.CRM.new_testaction"

var entity = new Object();        entity["Money1"] = 1;        entity["Money2"] = 2;  var req = new XMLHttpRequest()  req.open("post", "http://121.40.75.24:5555/Origin/api/data/v8.0/new_action", false);      req.setRequestHeader("Accept", "application/json");      req.setRequestHeader("Content-Type", "application/json; charset=utf-8");      req.setRequestHeader("OData-MaxVersion", "4.0");      req.setRequestHeader("OData-Version", "4.0");            req.onreadystatechange = function () {          if (this.readyState == 4) {              if (this.status == 200) {                 var result=JSON.parse(this.responseText);              }              else {                                }          }      };      req.send(JSON.stringify(entity))
  返回的结果依旧是200,没什么差别


   global action注册的时候是这样的,在entity那块选择空



    global action和基于实体的action还有一个区别在于后端的代码,InputParameters中是否有Target这个参数

    下图是基于实体的action是有Target参数的,带的是实体的相关信息


    下图是global的,是没有Target参数的,这个要区别对待下。

    

0 0
原创粉丝点击