繁体   English   中英

从电源应用组件调用自定义操作

[英]Calling a custom action from power apps component

我正在尝试创建一个组件,该组件向我的环境中的自定义操作发出发布请求。 这个动作有一个叫做leadid的输入和一个叫做data的output,当被调用时会触发一个自定义插件。 但是,我无法弄清楚如何从我的组件中调用此操作。

我知道您可以使用this._context.webAPI.retrieveMultipleRecords(entity, query)拨打电话,但我并不想实现这一点。

我直接在控制台(在浏览器中)尝试了以下操作,它运行良好,但是在我的 TypeScript 文件中使用相同的代码时,我得到一个错误Xrm is not defined

fetch(Xrm.Page.context.getClientUrl() + "/api/data/v9.2/dev_GetData", {
    "method":"POST",
    "headers":{
        "Accept": "application/json",
            "Content-Type": "application/json; charset=utf-8",
            "OData-MaxVersion": "4.0",
            "OData-Version": "4.0"
    },
    "body": JSON.stringify({
        "leadid": "7ba18ae0-4d0e-ea11-a813-000d3a1bbd52"
    })
}).then((response) => response.json())
.then((data) => {
    console.log(data);
})

我觉得这很奇怪,因为当我在其他部分(页面、上下文、getClientUrl)上使用 hover 时,它给了我它所做的细节。

我可能做错了什么,或者如何在不使用 Xrm.page 的情况下获得客户端 url ...?

Dataverse 的托管解决方案/附加工具将为您提供带有 webapi 调用实际值的代码片段。 工具是Dataverse Rest Builder

https://www.xrmtoolbox.com/plugins/GuidoPreite.DRB/

潜在客户资格操作的示例代码片段

var execute_QualifyLead_Request = {
        // Parameters
        entity: { entityType: "lead", id: "524a9e0b-f3e6-e711-80e9-005056936c69" }, // entity
        CreateAccount: true, // Edm.Boolean
        CreateContact: true, // Edm.Boolean
        CreateOpportunity: true, // Edm.Boolean
        Status: 1, // Edm.Int32
    
        getMetadata: function () {
            return {
                boundParameter: "entity",
                parameterTypes: {
                    entity: { typeName: "mscrm.lead", structuralProperty: 5 },
                    CreateAccount: { typeName: "Edm.Boolean", structuralProperty: 1 },
                    CreateContact: { typeName: "Edm.Boolean", structuralProperty: 1 },
                    CreateOpportunity: { typeName: "Edm.Boolean", structuralProperty: 1 },
                    Status: { typeName: "Edm.Int32", structuralProperty: 1 }
                },
                operationType: 0, operationName: "QualifyLead"
            };
        }
    };
    
    Xrm.WebApi.online.execute(execute_QualifyLead_Request).then(
        function success(response) {
            if (response.ok) { return response.json(); }
        }
    ).then(function (responseBody) {
        var result = responseBody;
        console.log(result);
        // Return Type: Collection(mscrm.crmbaseentity)
    }).catch(function (error) {
        console.log(error.message);
    });


  [1]: https://github.com/GuidoPreite/DRB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM