У меня немного странная ситуация в MS CRM 4.0.
Форма цитаты содержит дополнительные пользовательские элементы, которые содержат расчетную стоимость с уже добавленными налогами; они не обрабатываются CRM автоматически, и, поскольку законы здесь могут быть хитрыми, лучше оставить это на усмотрение пользователя, чтобы выбрать налоговую ставку для различных предметов.
Излишне говорить, что мои плагины должны рассчитывать эту общую сумму самостоятельно. Мне удалось сделать это с помощью предварительных плагинов при создании и обновлении элементов детализации цитаты; дочерний шаг регистрируется при обновлении до котировки, которое вычисляет нужную сумму, используя общую переменную (передаваемую из родительского контекста элементов перед обновлением или предварительно созданных деталей котировки).
Однако, все становится странным, когда я пытаюсь сделать то же самое с сообщением об удалении в детали цитаты. Сначала выполняется шаг предварительного удаления сообщения, как и ожидалось. На этом шаге я создал общую переменную, которая содержит вычисленную общую стоимость каждой детали цитаты, которая не удаляется. Затем я ожидал, что будет запущен предварительный шаг обновления цитаты, причем родительский контекст является подробностью цитаты шага удаления ... это не так: вместо этого родительский контекст является шагом получения цитаты.
Таким образом, я не могу рассчитать общую сумму налога, так как не могу использовать общую переменную (разные контексты). Я также не могу использовать шаг извлечения, так как внутри него у меня не будет информации о том, какая именно деталь цитаты будет фактически удалена (на данный момент она еще не была удалена).
Этот шаг извлечения был довольно неприятным сюрпризом. Это нормально? Если да, что я могу сделать, чтобы передать переменную общего доступа из шага удаления подробностей цитаты?