Я создал кнопку ленты на объекте возможностей в CRM 2013 и использовала настраиваемое правило разрешения для отображения кнопки только в одной форме из двух доступных (admin , продажи).Невозможно отобразить пользовательскую ленточную кнопку только в одной форме объекта
Я могу видеть кнопку в Интернете в правильной форме (admin), но она не кажется видимой на клиенте Outlook. Я использую следующий JavaScript для включения/выключения кнопки, и по какой-то причине похоже, что JS всегда возвращает false при вызове из Outlook.
Я использую SetTimeout, поскольку Outlook, кажется, требует времени, чтобы получить объекты и выбросить ошибку, если это не используется.
Есть ли лучший способ включить кнопку на одной форме, а не на другую?
function EnableRibbonButton()
{
var client = Xrm.Page.context.client.getClient();
if(client == "Web")
{
var form = Xrm.Page.ui.formSelector;
if(form != null)
{
var formItem = form.getCurrentItem();
if(formItem != null)
{
var formId = formItem.getId();
if(formId == "ADMINFORMGUID")
{
return true;
}
else
{
return false;
}
}
}
}
else if(client == "Outlook")
{
var form = getForms();
var formItem = getFormItem(form);
var formId = getFormID(formItem);
if(formId == "ADMINFORMGUID")
{
return true;
}
else
{
return false;
}
}
}
function getForms()
{
var form = Xrm.Page.ui.formSelector;
if(form != null)
{
return form;
}
else
{
window.setTimeout("getForms()", 100);
}
}
function getFormItem(form)
{
var formItem = form.getCurrentItem();
if(formItem != null)
{
return formItem;
}
else
{
window.setTimeout("getFormItem("+form+")", 100);
}
}
function getFormID(formItem)
{
var formId = formItem.getId();
if(formId != null)
{
return formId;
}
else
{
window.setTimeout("getFormID("+formItem+")", 100);
}
}
Привет, Microsoft хорошо известно об этой проблеме в перспективе. Для вашего случая я считаю, что это лучшее решение. – minohimself