Я надеюсь, что это работает для вас или кого-либо еще.
amics 365 9.0 произошли довольно большие изменения в том, как получить доступ к атрибутам и элементам управления формы - вместоXrm.Page
пространство имен, мы должны пройтиexecutionContext
к функции и получитьformContext
с помощьюgetFormContext()
функция. Это работает нормально, и у меня никогда не было проблем с использованием этого подхода.
Однако я пока не разобрался, как правильно получить доступformContext
в функциях, которые вызываются из ленты. Документация говорит, что это должно быть действительно просто:
function myFunction(executionContext) {
var formContext = executionContext.getFormContext();
var focusFieldValue = formContext.ui.controls.get(PrimaryControlId).getAttribute().getValue();
}
Но это не говорит, как пройтиexecutionContext
функция ленты. В обычных функциях есть флажок«Передать контекст выполнения в качестве первого параметра» а как насчет функций ленты? Есть параметры, которые мы можем передать в эти функции, но они просто GUID выбранных записей, или тип выбранной записи, или даже список объектов, но я не смог найти в документации, если есть параметр, равныйexecutionContext
, Кто-нибудь уже решил эту проблему?
Также я знаю, что могу использовать Xrm.Page, и он будет работать (на данный момент, по крайней мере ...), но я хотел бы знать, как это можно сделать, используя последние рекомендации в версии 9.0
Обновление 1:
Согласно предложению Скотта иэта статья я передал PrimaryControl моей команде ленты, но, к сожалению, аргумент имеет типMscrm.FormControlLite
и это не имеетgetAttribute
функция или любая функция, которая позволила бы получить доступ к formContext (по крайней мере, я не вижу ничего полезного). Несколько скриншотов из инструментов разработчика:
Таким образом, это выглядит как представление формы некоторого вида, но, вероятно, не связано с formContext (я предполагаю, что если лента будет вызываться из списка записей, этот элемент может иметь тип сетки или что-то в этом роде)