【问题标题】:Xrm.WebApi.online.execute help to create notificationXrm.WebApi.online.execute 帮助创建通知
【发布时间】:2019-02-01 06:06:17
【问题描述】:

我正在尝试将 execute 用于 Xrmapi 调用。下面是我的代码。它没有正确执行,我没有得到我错过的地方。 TIA

var opportunityClose={
"type":"GET",
"contentType":"application/json; charset=utf-8",
"datatype":"json",
"url":url
};
Xrm.WebApi.online.execute(new Sdk.WinOpportunityRequest(opportunityClose,4)).then(function (data, textStatus, XmlHttpRequest) {
        console.log("success getting notification activities");
        debugger;
        if (data.d.results.length == 0) // no notifications, nothing to do
            return;
        var notifications = [];

        $.each(data.d.results, function (i, notification) {

            var icon = (notification.guru_Icon ? notification.guru_Icon.Value : 770170000);
            notification.Level = Guru.Xrm.Notifications.mapIconToNotificationLevel(icon);
            notifications.push(notification);
        });
        Guru.Xrm.Notifications.AddFormNotifications(notifications);
    },
    function (XmlHttpRequest, textStatus, errorObject) {
        console.log(XmlHttpRequest);
        console.log(errorObject);
        console.log("failed to load notification activities");
    });

【问题讨论】:

  • 您是否遇到任何错误?您调试并查看代码执行流程了吗?

标签: javascript dynamics-crm xrm


【解决方案1】:

您的代码似乎缺少一些关键信息,例如关闭机会的 ID。

This document 包含如何通过 Xrm.WebApi.online 关闭 Opp 的示例。

示例代码如下:

var Sdk = window.Sdk || {};
/**
 * Request to win an opportunity
 * @param {Object} opportunityClose - The opportunity close activity associated with this state change.
 * @param {number} status - Status of the opportunity.
 */
Sdk.WinOpportunityRequest = function (opportunityClose, status) {
    this.OpportunityClose = opportunityClose;
    this.Status = status;

    this.getMetadata = function () {
        return {
            boundParameter: null,
            parameterTypes: {
                "OpportunityClose": {
                    "typeName": "mscrm.opportunityclose",
                    "structuralProperty": 5 // Entity Type
                },
                "Status": {
                    "typeName": "Edm.Int32",
                    "structuralProperty": 1 // Primitive Type
                }
            },
            operationType: 0, // This is an action. Use '1' for functions and '2' for CRUD
            operationName: "WinOpportunity",
        };
    };
};


var opportunityClose = {
    "opportunityid@odata.bind": "/opportunities(c60e0283-5bf2-e311-945f-6c3be5a8dd64)",
    "description": "Product and maintainance for 2018",
    "subject": "Contract for 2018"
}

// Construct a request object from the metadata
var winOpportunityRequest = new Sdk.WinOpportunityRequest(opportunityClose, 3);

// Use the request object to execute the function
Xrm.WebApi.online.execute(winOpportunityRequest).then(
    function (result) {
        if (result.ok) {
            console.log("Status: %s %s", result.status, result.statusText);
            // perform other operations as required;
        }
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

在相关说明中,此 documentation 描述了如何通过 WebAPI 使用 WinOpportunity 操作。

摘录如下:

POST [Organization URI]/api/data/v9.0/WinOpportunity HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0

{
 "Status": 3,
 "OpportunityClose": {
  "subject": "Won Opportunity",
  "opportunityid@odata.bind": "[Organization URI]/api/data/v9.0/opportunities(b3828ac8-917a-e511-80d2-00155d2a68d2)"
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-22
    • 2011-06-04
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2011-06-05
    相关资源
    最近更新 更多