Dynamics 365 Web API: сохраненный запрос не получает все столбцы связанных объектов
В веб-API(на стороне клиента) пытается извлечь записи сущности OpportunityProduct с помощью SavedQuery(просмотр).
Возможность извлечь имя существующего продукта (значения поиска сущности Product), однако, тот же результат не содержит все атрибуты сущности Product, хотя они добавляются в извлекаемое представление View, а значения этих атрибутов не пусты.
Вот код, используемый для получения SavedQuery:
var products = [];
var req = new XMLHttpRequest();
req.open("GET", window.parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/opportunityproducts?savedQuery=********-****-****-****-************", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
console.log(results);
for (var i = 0; i < results.value.length; i++) {
var product = {
"Number": results.value[i]["productnumber"],
"Name": results.value[i]["_productid_value@OData.Community.Display.V1.FormattedValue"],
"Unit": results.value[i]["_uomid_value@OData.Community.Display.V1.FormattedValue"],
"PricePerUnit": results.value[i]["priceperunit@OData.Community.Display.V1.FormattedValue"],
"Quantity": results.value[i]["quantity@OData.Community.Display.V1.FormattedValue"],
"Discount": results.value[i]["manualdiscountamount@OData.Community.Display.V1.FormattedValue"],
"Discount%": results.value[i]["pub_discountpercentage"],
"ExtendedAmount": results.value[i]["extendedamount@OData.Community.Display.V1.FormattedValue"]
};
console.log(product);
products.push(product);
}
} else {
window.parent.Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
Вот результат:
"value": [
{
"producttypecode": 1,
"priceperunit": 100,
"extendedamount": 190,
"sequencenumber": 1,
"quantity": 2,
"opportunityproductid": "********-****-****-****-************",
"manualdiscountamount": 10,
"productdescription": "Test 1",
"isproductoverridden": true
}
]
В прикрепленном изображении, пожалуйста, смотрите выделенный Discount %
столбец, который является пользовательским атрибутом объекта Product, который я пытаюсь получить.
Кто-нибудь может подсказать мне, как я могу получить атрибуты связанной сущности (продукта) или все столбцы, указанные в представлении?
1 ответ
Приложив некоторые усилия сегодня утром, я узнал, что когда Product
добавляется как Existing Product
в OpporutnityProduct
, тогда вы можете получить все поля просмотра на opportunityProduct
независимо от того, принадлежит ли он OpporutnityProduct
юридическое лицо или любой из его связанных лиц.
Но когда Product
добавляется как Write-in Product
, то вы можете получить поля, которые принадлежат OpportunityProduct
только сущность.
Я не смог найти Discount %
столбец Product
сущность, потому что Product
был добавлен с помощью Write-in Product
вариант.
Когда я добавил Product
с помощью Existing Product
вариант, я мог бы получить его, используя тот же кусок кода.
Надеюсь, это будет полезно.