Dynamics CRM: 使用Javascript来调用全局或者指定实体的Action

在Dynamics CRM中使用JS调用全局的或者指定实体的Action调用方式是不一样的, 下面我们就来说说两种调用的区别:

首先封装了一个方法用来调用Action:

有一点需要注意, 就是/api/data/v9.0/这块,你需要知道你的crm的版本,这个可以从Settings -> Customizations -> Developer Resources中找到Service Root URL字段来看你的版本.

    ExecuteAction: function (actionUrl, actionPara) {
        var lResponse = null;
        var lXMLHttpRequest = new XMLHttpRequest();
        lXMLHttpRequest.open("POST", encodeURI(this.GetClientUrl() + "/api/data/v9.0/" + actionUrl), false);
        lXMLHttpRequest.setRequestHeader("Accept", "application/json");
        lXMLHttpRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        lXMLHttpRequest.setRequestHeader("OData-MaxVersion", "4.0");
        lXMLHttpRequest.setRequestHeader("OData-Version", "4.0");
        if (this.IsNullOrUndefined(actionPara)) {
            lXMLHttpRequest.send();
        }
        else {
            lXMLHttpRequest.send(JSON.stringify(actionPara));
        }
        if (lXMLHttpRequest.status === 200)
        {
            lResponse = JSON.parse(lXMLHttpRequest.responseText);
        }
        else {
            if (lXMLHttpRequest.statusText !== null && lXMLHttpRequest.statusText !== undefined && lXMLHttpRequest.statusText !== "") {
                Xrm.Navigation.openAlertDialog(lXMLHttpRequest.statusText);
            }          
        }
        return lResponse;
    }
  • 调用全局(global)Action
var parameters = { '<action参数名>': <action参数值> };
var result = ExecuteAction('<action的Unique Name>', parameters);

例如:   

var parameters = { 'ID': '4024BD6B-BD1D-EB11-8320-FF5559DD3692' };
var result = ExecuteAction('CCSSending', parameters);
  • 调用指定实体的Action
var parameters = { '<action参数名>': <action参数值> };
var result = ExecuteAction(<实体的复数名字> + '(' + <记录GUID>.replace('{', '').replace('}', '') + ')' + '/Microsoft.Dynamics.CRM.<action的Unique Name>', parameters);

例如:

var parameters = { 'ID': '4024BD6B-BD1D-EB11-8320-FF5559DD3692' };
var result = ExecuteAction('incidents' + '(' + caseID.replace('{', '').replace('}', '') + ')' + '/Microsoft.Dynamics.CRM.Caseupdate', parameters);

如果您不知道你的action是全局的还是指定实体的,可以通过这种方式去看:

首先通过Setting -> Processes, 找到你创建的action, 然后看红框中Entity的属性,如果是'None(global)' 则为全局的, 否则就是针对指定实体的.

  • 全局Aciton

  •  指定实体Action

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stone-hdj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值