如何在Javacript中调用MS CRM Action

时间:2019-11-29 12:22:03

标签: javascript dynamics-crm action dynamics-crm-webapi

我尝试了下面的链接以在JavaScript中调用Action,但它未在下面的代码行中获取数据:

var data = JSON.parse(this.response);
alert(data);//Error data undefined

https://nishantrana.me/2017/05/27/sample-code-to-call-action-using-web-api-in-crm/

1 个答案:

答案 0 :(得分:0)

如果您在线上,则可以执行以下操作(这是“未绑定动作”的示例):

var executeSurveyMonkeyAction = function (surveyMonkeyParameterSetId) {
var reference = {};
reference.entityType  = "ade_surveymonkeydialogsparameterset";
reference.id = surveyMonkeyParameterSetId;

return new Promise(function (resolve, reject) {
    var executeActionRequest = {
        SurveyMonkeyDialogParameter: reference,
        getMetadata: function () {
            return {
                boundParameter: null,
                parameterTypes: {
                    "SurveyMonkeyDialogParameter": {
                        typeName: "mscrm.ade_surveymonkeydialogsparameterset",
                        structuralProperty: 5
                    }
                },
                operationType: 0,
                operationName: "ade_ProjectSurveyMonkey"
            };
        }
    };

    parent.Xrm.WebApi.online.execute(executeActionRequest).then(
        function (response) {
            if (response.ok) {
                if (response.status == 204) {
                    return new Promise((function (resolve) {
                        resolve({});
                    }));
                }
                return response.json();
            } else {
                throw new Error("Unknown error occured in ISV code.");
            }
        },
        function (error) {
            console.log(error.message);
            reject(error);
        }
    ).then(
        function (response) {
            if (!!response) {
                resolve(response);
            } else {
                console.log("no response");
            }

        },
        function (error) {
            console.log(error.message);
        });
});
}

以下是绑定动作请求的示例:

 var executeActionRequest = {
        entity: {
            entityType: entityName,
            id: recordId
        },
        getMetadata: function () {
            return {
                boundParameter: "entity",
                parameterTypes: {
                    "entity": {
                        typeName: "mscrm." + entityName,
                        structuralProperty: 5
                    }
                },
                operationType: 0, // This is an action. Use '1' for functions and '2' for CRUD
                operationName: actionName
            };
        }
    };