D365 10.0.6
Кнопка "edit" не видна для конкретного пользователя.
User data почистили полностью, роли у юзера абсолютнро идетничные с моими.
Проблема воспроизводится на UAT и на DEV для обоих юзеров, то есть у меня кнопка есть, у юзера ее нет.
Пробовали разные браузеры, игрались с ролями, смотрели настройки и рылись в коде.
Дошли до смешного: на РДП дев машинки юзер под собой зашел и кнопки нет, сделал sign out, я зашла под собой в ту же накладную и кнопка есть.
Хорошая новость, это то что мы смогли создать тестового юзера у которого кнопка тоже отсутствует и это можно как-то продебажить и узнать в какой момент кнопка пропадает. Вопрос как?
я добавила несколько хендлеров такого плана:
X++:
[FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuted)]
public static void MCRCustPaymTable_OnQueryExecuted(FormDataSource sender, FormDataSourceEventArgs e)
{
FormRun formRun = sender.formRun();
FormFunctionButtonControl editButton = formRun.design().controlName(formControlStr(MCRSalesOrderRecap, EditBtn));
Info(strFmt("FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuted) %1",editButton.visible()));
}
Вот что получается при открытии формы, а потом при выборе другой строки в платежах. Visible везде true, но кнопка не видна...
X++:
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::Initialized) false</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuting) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::Activated) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuted) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>No tiered charges found.</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuting) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::Activated) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::QueryExecuted) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::DisplayOptionInitialize) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::DisplayOptionInitialize) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::DisplayOptionInitialize) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::DisplayOptionInitialize) true</Message>
</InfologMessage>
The thread 0x415c has exited with code 0 (0x0).
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::Activated) true</Message>
</InfologMessage>
<InfologMessage xmlns="Microsoft.Dynamics.AX.InfologMessage.V1">
<Kind>Info</Kind>
<Message>FormDataSourceEventHandler(formDataSourceStr(MCRSalesOrderRecap, MCRCustPaymTable), FormDataSourceEventType::Refreshed) true</Message>
</InfologMessage>