Как я могу получить доступ к отчетам программно в Salesforce, используя APEX

StackOverflow https://stackoverflow.com/questions/4277332

  •  28-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь написать приложение на платформе Salesforce, которая может вытащить список контактов из отчета и отправить их в веб-сервис (скажем, чтобы отправить им электронное письмо или смс)

Единственный способ, которым я могу найти, чтобы сделать это, это добавить результаты отчета в вновь созданную кампанию, а затем получить доступ к этой кампании. Это похоже на долгий путь.

Каждый пост, который я читал онлайн говорит, что вы не можете получить доступ к отчетам через APEX, однако большинство или все эти посты были написаны до того, как версия 20 API была выпущена в прошлом месяце, который ввел новый объект отчета. Теперь я могу программно получить доступ к информации о отчете (например, дату последнего запуска и т. Д.) Но я до сих пор не могу найти способ получить доступ к данным результата, содержащихся в этом отчете.

Кто-нибудь знает, есть ли способ сделать это?

Это было полезно?

Решение

После многих исследований в этом я обнаружил единственный способ сделать это в данный момент действительно соскребает документ CSV. Я думаю, что Conga etc использует именно этот метод.

Мы делаем это на некоторое время, и это работает. Единственные предостережения:

  • Salesforce Имя пользователя / Пароль / токен безопасности должны быть переданы подключением приложения. Если пароль изменяется (и по умолчанию изменяется каждые 30 дней или около того) токен также меняется и должен быть введен в систему.

  • Вы должны знать хост аккаунта, который может быть трудно получить правильно. Например, в то время как большинство европейских счетов будут использовать Emea.salesforce.com для доступа к CSV, наша учетная запись использует Na7 (Северная Америка 7), хотя мы находимся в Ирландии. В настоящее время я отправляю страницу Host в приложение и расставив его, чтобы рассчитать правильную поддомен, чтобы использовать, но я думаю, что должен быть лучший способ сделать это.

Salesforce действительно необходимо отсортировать это, поставляя вызов API, который позволяет экспортировать пользовательские результаты отчета на лету и позволять нам использовать OAuth для подключения к нему. Но, конечно, это вряд ли произойдет.

Другие советы

В обновлении SalesForcepring 11, похоже, вы можете получить больше информации о отчетах: как указано в API для Отчет а также Тип отчета, вы можете получить доступ через Apex на полях, используемых в запросе отчета, чтение поля »колонны«Как и поле, используемое для представления фильтров под названием«фильтр".

Итализация через эти объекты, должна позволить вам создать строку, представляющую тот же запрос отчета. После создания этой строки вы можете сделать динамический запрос с помощью базы данных.

Похоже, немного грязно, но должен работать .. (еще не проверено!)

Как утверждает заголовок, это работает только с пользовательскими отчетами!

Просто чтобы уточнить для новичков, которые найдут это, когда вопрос спросил, вы можете получить доступ к вашему докладу в программные данные, но вам пришлось использовать некоторые хижины, ошибки.

Это все исправлено, теперь вы можете получить доступ к вашим отчетам через API на зиму 14.

Документация здесь - http://www.salesforce.com/us/developer/docs/api_analytics/index.htm.

Перейти в город на этих пользовательских панелях приборов и т. Д. Крест, размещенный из обмена стеками Salesforce - https://salesforce.stackexchange.com/Questions/337/can-report-data-be-accessed-prographication/

Но Conga (AppExtremes) делают это в своем продукте QuickMerge, где пользователь указывает идентификатор отчета, а сценарий APEX на странице запускает отчет для извлечения результатов для операции Mail Merge.

API V20.0 API добавил метаданные об отчетах, но никакого способа фактически запускать отчет и получить результаты. Если это стандартный отчет, или отчет, который вы определены, вы можете разработать эквивалентный запрос SOQL для вашего отчета и запустить, но если его конечный пользовательский отчет отчета, нет способа сделать это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top