Разработка
08
Янв
0

Открытие Форм, Представлений и Диалогов CRM по URL

CRM основана на Веб-стандартах и поэтому большинство ее элементов можно открыть по URL. А также включить в другие приложения.

Есть три различных способа:

Прямая ссылка

Формы и Представления

Все формы и Представления выводятся на экран через страницу main.aspx:

  • Чтобы открыть новую запись объекта:
    http://mycrm/myOrg/main.aspx?etn=account&pagetype=entityrecord
  • Чтобы открыть существующую запись (Организации):
    http://mycrm/main.aspx?etn=account&pagetype=entityrecord&id=%7B91330924-802A-4B0D-A900-34FD9D790829%7D
  • Открыть форму только для чтения:
    http://server:port/organization/_forms/readonly/readonly.aspx?objTypeCode=objecttypecode&id=objectid
  • Чтобы открыть Предоставление (Закрытые Возможные сделки):
    http://mycrm/myOrg/main.aspx?etn=opportunity&pagetype=entitylist&viewid=%7b00000000-0000-0000-00AA-000010003006%7d&viewtype=1039

В этих URL используются следующие строковые параметры:

  • etn
    Логическое имя объекта. Никогда не используйте в строке URL параметр «etc» (entity type code), т.е. код объекта, поскольку различается в разных организациях;
  • extraqs
    Дополнительные параметры для формы (передаются в закодированном виде). Когда у объекта есть несколько форм, можете использовать этот параметр, чтобы определить который форма должна открыться. Например, чтобы открыть форму с ID «6009c1fe-ae99 4a41-a59f-a6f1cf8b9daf», передайте в в extraqs такое значение: formid%3D6009c1fe-ae99-4a41-a59f-a6f1cf8b9daf%0D%0A. Более подробно смотрите в http://msdn.microsoft.com/en-us/library/gg334375.aspx;
  • pagetype
    Тип страницы. Есть два возможных значения: entityrecord (отображение формы объекта) и entitylist (отображение Представления объекта);
  • id
    GUID записи. Часто встречается GUID с закодированными фигурными скобками. Например {91330924-802A-4B0D-A900-34FD9D790829} = %7B91330924-802A-4B0D-A900-34FD9D790829%7D, где «%7B» и «%7D» открывающая и закрывающая фигурные скобки, соответственно;
  • viewid
    Это GUID записей объектов savedquery или userquery, которые являются Представлениями (системным и личным, соответственно). Является обязательным при открытии URL Представлении;
  • viewtype
    Тип Представления. Возможные значения: 1039 для системных представлений и 4230 для личных Представлений.

Примечания:

  • Когда используете Xrm.Page.context.getServerUrl, чтобы получить корневой URL организации, возвращенная стока будет содержать закрывающий символ слэша. Если использовать такую строку в Microsoft Dynamics CRM Online, то Лента не будет отображаться. Поэтому Вы должны «вручную» удалить этот символ из корневой строки URL. Например, так:
    if (serverUrl.match(/\/$/)) {
      serverUrl = serverUrl.substring(0, serverUrl.length – 1);
    }
    
  • Не используйте URL Представления, полученный с помощью кнопки на Ленте, для включения его в сайтмап (в SubArea). Такой URL содержит лишние элементы, поэтому страница не будет корректно отображаться. Вместо этого нужно либо указывать в SubArea имя объекта (тогда будет открывать дефолтное Представление), либо использовать такой URL:
    Url="/_root/homepage.aspx?etn=<entity_logical_name>&amp;viewid=%7b<view_id>%7d"
  • GUID системных Представлений будет одним и тем во всех локальных развёртываниях CRM. GUID Представлений кастомных объектов и личных Представлений будет уникален для каждого развертывания CRM.

Открытие Диалога

Чтобы открыть Диалог, используйте следующий URL:

http://mycrm/myOrg/cs/dialog/rundialog.aspx?DialogId=%7b6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976%7d&EntityName=account&ObjectId=%7b40C9ADFD-90A8-DF11-840E-00155DBA380F%7d

Здесь используются следующие параметры:

  • DialogId: GUID Диалога;
  • EntityName: имя объекта;
  • ObjectId: GUID записи, в отношении которой будет работать Диалог.

Веб-ресурсы

Ну с Веб-ресурсами все просто — с формы Веб-ресурса копируем URL и открываем его. Веб-ресурс может принимать только предустановленные параметры. Единственная возможность передать пользовательские параметры, это передать их в параметре «data», и на принимающей стороне уже распарсить. Более подробно смотрите в http://msdn.microsoft.com/en-us/library/gg309536.aspx.

Xrm.Utility

С 8 ролапом появилась возможность открывать страницы с помощью JS-функции.

Формы

  • Открытие новой записи Организации:
    Xrm.Utility.openEntityForm("account");
  • Открытие существующей записи организации:
    Xrm.Utility.openEntityForm("account","A85C0252-DF8B-E111-997C-00155D8A8410");
  • Открытие новой записи, на определенной форме с предзаполненными полями:
    var parameters = {};
    parameters["formid"] = "b053a39a-041a-4356-acef-ddf00182762b";
    parameters["name"] = "Test";
    parameters["telephone1"] = "(425) 555-1234";
    Xrm.Utility.openEntityForm("account", null, parameters);
    
  • Открытие новой записи, изменение размеров окна и перемещение его в левый верхний угол:
    var newWindow = Xrm.Utility.openEntityForm("contact");
    newWindow.moveTo(0,0);
    newWindow.resizeTo(800,600);
    

Параметры:

  • name: системное имя объекта;
  • id: GUID записи;
  • parameters: объект содержащий дополнительные параметры. В не могут передаваться:
    • formid: ID формы, которую необходимо открыть по умолчанию;
    • Дефолтные значения: набор имен полей и их дефолтные значения, которые буду подставлены в поля при открытии новой формы;
    • Кастомные параметры: в свойствах формы можно настроить кастомные параметры, которые форма может принимать.

Веб-ресурсы

  • Открытие Веб-ресурса «new_webResource.htm»:
    Xrm.Utility.openWebResource("new_webResource.htm");
  • Открытие HTML Веб-ресурса с одним дополнительным строковым параметром:
    Xrm.Utility.openWebResource("new_webResource.htm","dataItemValue");
  • Открытие HTML Веб-ресурса с передачей множества закодированных значений в одном дополнительном параметре:
    var customParameters = encodeURIComponent("first=First Value&second=Second Value&third=Third Value");
    Xrm.Utility.openWebResource("new_webResource.htm",customParameters);
    
  • Открытие Веб-ресурса с заданной высотой и шириной окна:
    Xrm.Utility.openWebResource(("new_webResource.htm", null, 500, 400);

Параметры:

  • webResourceName: системное имя HTML Веб-ресурса;
  • webResourceData: данные передаваемые в строковом параметре Data;
  • width: ширина открываемого окна;
  • height: высота открываемого окна.

Примечания:

  • Remarks: An HTML web resource can accept the parameter values described in Passing Parameters to HTML Web Resources . This function only provides for passing in the optional data parameter. To pass values for the other valid parameters, you must append them to the webResourceName parameter.
  • Веб-ресурс HTML может принять параметры описанные в разделе Passing Parameters to HTML Web Resources, а функция openWebResource предусматривает передачу только параметра «data». Чтобы передать в Веб-ресурс другие допустимые параметры Вы должны добавить их к параметру webResourceName:
    Xrm.Utility.openWebResource("new_webResource.htm?typename=account&amp;userlcid=1033");

Примечания:

  • Функции openEntityForm и openWebResource возвращают Window object;
  • Функции Xrm.Utility для HTML Веб-ресурсов доступны когда в страницу включен ClientGlobalContext.js.aspx.

CRMReports

Подсистема отчетов позволяет через свою страницу открывать записи CRM:

http://mycrm/myOrg/CRMReports/viewer/drillopen.aspx?ID=<record_GUID>&LogicalName=<entity_logical_name>

Параметры:

  • ID: GUID записи;
  • LogicalName: имя объекта.
Комментарии (0)

*

code