Как получить свойства поля макета страницы Salesforce через API?

Контекст:

  • Веб-интерфейс, написанный на .NET (портал получателя грантов для некоммерческих организаций, подающих заявки на гранты), извлекает информацию из макета страницы Salesforce.
  • Пользователь Salesforce, которого мы используем для подключения веб-интерфейса к Salesforce через API, имеет права «просматривать все и редактировать все».

Проблема:

В настоящее время, если поле определено как доступное только для чтения в макете страницы в Salesforce, оно по-прежнему доступно для редактирования на веб-странице (пользователь Salesforce, которого мы используем, должен иметь права «просматривать все и редактировать все»)

Чего мы пытаемся достичь:

  • ЕСЛИ поле определено как доступное только для чтения в макете страницы Salesforce
  • ЗАТЕМ это же поле должно быть доступно только для чтения на странице веб-интерфейса.

Вопрос:

Для достижения вышеуказанного, я думаю, мне нужно получить свойство поля для макета страницы через API. Есть идеи, как это сделать?

Спасибо! Идзуми.


person Izumi Bérat    schedule 30.01.2013    source источник


Ответы (1)


Вам понадобится Metadata API (набор веб-сервисов, которые позволяют добавлять новые объекты, поля, значения раскрывающегося списка или даже создавать классы и запускать модульные тесты).

Вот руководство по API: http://www.salesforce.com/us/developer/docs/api_meta/index.htm

В зависимости от того, как часто вы изменяете макеты, вы можете решить: «Да ладно, я просто буду использовать Eclipse IDE». В этом случае вы должны загрузить все макеты страниц (это файлы XML), указать на них свое приложение C # и позволить волшебству случиться.

Немного более продвинутым является использование Migration Tool (приложение на основе Ant / Java, которое может быть написано по сценарию для периодической загрузки одного и того же материала).

Супер продвинутым было бы использовать это руководство по API, чтобы написать его на C #. Это не ракетостроение (вот спецификация для объекта Page Layout и вот пример кода Java для операции, которая получает метаданные ... извините, нет C #). На самом деле вам может быть лучше взглянуть на этот пример: http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_describelayout.htm

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

Или поделитесь работой в команде (один человек начинает с файлов, загруженных с помощью Eclipse, другой пытается выяснить код C #, чтобы получить их по запросу).

person eyescream    schedule 30.01.2013