我尝试了下面的链接以在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/
答案 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
};
}
};