gpt4 book ai didi

javascript - Microsoft Dynamics CRM 365 通过 JavaScript 异步调用无限制操作

转载 作者:行者123 更新时间:2023-11-28 17:49:40 28 4
gpt4 key购买 nike

有没有办法通过 JavaScript 调用操作而不使用第三方脚本?

我找到了这个https://github.com/PaulNieuwelaar/processjs

但是,我无法使用第三方库。

更新:

下面是一些示例代码,演示了通过 JavaScript 异步调用操作。需要记住的重要一点是将请求的 open 方法的最后一个参数设置为 true

req.open(consts.method.post, oDataEndPoint, true);

//插件

   public class RunAsync : CodeActivity
{
[Input("input")]
public InArgument<string> Input { get; set; }

[Output("output")]
public OutArgument<string> Output { get; set; }

protected override void Execute(CodeActivityContext executionContext)
{
try
{
Thread.Sleep(20000);
Output.Set(executionContext, $"Result:{Input.Get(executionContext)}");
}
catch (Exception e)
{
throw new InvalidPluginExecutionException(e.Message);
}
}
}

//JavaScript

function callAction(actionName, actionParams, callback) {

var result = null;
var oDataEndPoint = encodeURI(window.Xrm.Page.context.getClientUrl() + consts.queryStandard + actionName);

var req = new XMLHttpRequest();
req.open(consts.method.post, oDataEndPoint, true);
req.setRequestHeader(consts.odataHeader.accept, consts.odataHeader.applicationJson);
req.setRequestHeader(consts.odataHeader.contentType, consts.odataHeader.applicationJson + ";" + consts.odataHeader.charset_utf8);
req.setRequestHeader(consts.odataHeader.odataMaxVersion, consts.odataHeader.version);
req.setRequestHeader(consts.odataHeader.odataVersion, consts.odataHeader.version);
req.onreadystatechange = function () {
if (req.readyState === 4) {
req.onreadystatechange = null;
if (req.status === 200) {
if (callback) {
result = JSON.parse(this.response);
callback(result);
}
} else {
console.log(JSON.parse(this.response).error);
}
}
};
req.send(JSON.stringify(actionParams));
}

function onLoad() {

console.log('call action...');

var actionParams = {
Input: 'test1234'
};

callAction('TestAsyncAction',actionParams, function(data){
console.log('action callback triggered...');
console.log(JSON.stringify(data));
});

console.log('action called...');
}

// Action

enter image description here

最佳答案

您可以使用webapi to execute custom Action 。这被包装在 XMLHttpRequest 中并且可以称为异步。

/api/data/v8.2/Action_Name

对于异步运行:

req.open(....., true);

同样使用soap call (不建议)。

Processjs 使用将被弃用的 Organization.svc/web

关于javascript - Microsoft Dynamics CRM 365 通过 JavaScript 异步调用无限制操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45829566/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com