D365 CE Online - глобальный контекст исполнения - PullRequest
0 голосов
/ 17 мая 2019

При обновлении всех наших файлов javascript для D365 CE (онлайн) я заметил, что у нас есть много файлов JS, которые не вызываются из событий формы, таких как OnSave, OnLoad или OnChange. Эти файлы вызываются только из внутренних ссылок другими библиотеками JS.

Поскольку эти файлы не были вызваны при событии формы, я должен передать контекст выполнения при вызове функции. (Который не предпочитает делать, поскольку мы не знаем, сколько других библиотек JS вызывают эти функции. На данный момент только 1 решение является частью этого спринта)

Мой вопрос: если у меня есть библиотека JS, которая сначала загружается в форму, и если этот файл имеет глобальный контекст выполнения, могу ли я просто использовать это во всех следующих библиотеках JS?

например: JSFile1 - функция XYZ (eContext) - запускает OnLoad формы. (контекст выполнения передается как параметр)

JSFile2 - Функция ABC () - НЕ вызывается из каких-либо событий формы, но требуется контекст выполнения.

В JSFile1 я объявляю глобальный переменный eContext и инициализирую его в функции XYZ (eContext).

Могу ли я каким-либо образом использовать эту глобальную переменную eContext в моем JSFile2?

1 Ответ

1 голос
/ 17 мая 2019
  1. Подход не верен Причина: в конце вам придется использовать глобально заданный контекст формы в ваших зависимых J, потому что вам нужно будет иметь этот контекст в ваших зависимых J для некоторого кодирования /транзакция
  2. Поскольку вы уже находитесь в процессе рефакторинга, почему бы не передать этот контекст как параметр другим js, чтобы у вас был этот контекст для выполнения транзакции.
  3. Вы будететакже нужно позаботиться о порядке ваших Js в форме, то есть тот, который получает контекст, должен быть первым, кто загрузит.т.е.

    JSFile1 - функция XYZ (eContext)

    SFile2 - функция ABC (eContext)

...