Я успешно создаю Задачу с помощью API Salesforce SOAP API через Java.
Однако моя проблема состоит в том, что я, может казаться, не устанавливаю Тип его. Они все значение по умолчанию, чтобы "Звонить", но я действительно хочу, чтобы они были "электронной почтой".
Кто-то может указать на меня в направлении того, где я могу сделать это? Я думаю, что это относится к RecordTypeMapping, но я несколько смущен относительно того, как использовать это в моем коде Java для поиска конкретного для Типа задачи.
Я чувствую, что имею, так согласитесь с этим. У меня есть корректный WSDL, который дает мне дополнительный метод на классе Task.java, но в независимо от того, чем я передаю, он умирает.
Это, кажется, не огромное, спрашивают, все же я озадачен относительно который точки присоединиться, чтобы заставить это работать
Любая справка ценилась бы.спасибо
Это поле доступно через API, как и любое другое. Ваша проблема не имеет ничего общего с RecordTypes (когда вы вставляете запись через API, вы можете поместить любую строку, которую хотите, в качестве значения раскрывающегося списка).
Итак, давайте начнем с контрольного списка , и если это не поможет, мы подумаем о других вариантах:)
РЕДАКТИРОВАТЬ: для всех пользователей, у которых есть проблемы с интеграцией Salesforce (особенно «Я создал новое настраиваемое поле, кажется, я могу запросить его, но я не вижу его в возвращаемых результатах») есть еще пара шагов:
Если вы используете корпоративный WSDL - не забудьте загрузить новую копию. Людям, использующим Java, C # и т. Д., Необходимо регенерировать свои классы из wsdl («потреблять» его снова), чтобы увидеть новые поля. Пользователи PHP не должны волноваться (в прошлый раз я проверил, что все делается во время выполнения в «PHP toolkit» ... конечно, если вы действительно сгенерировали что-то из WSDL - сделайте это снова). Но в случае PHP кажется, что WSDL можно как-то кэшировать в вашем приложении. Перезагрузите сервер, чтобы убедиться, что используется свежий wsdl?
Это заняло у меня больше времени, чем ожидалось (Apache Axis 2 генерирует совершенно другой код, чем тот, который я тоже использовал с Axis 1.x) + Я столкнулся с некоторыми другими отвлекающими факторами, но я это проверил.
Вкратце: это обычное поле, доступное через API, которое у меня работает.
Убедитесь, что ваш корпоративный WSDL содержит строки, похожие на
<complexType name="Task">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="Account" nillable="true" minOccurs="0" type="ens:Account"/>
(...)
<element name="Type" nillable="true" minOccurs="0" type="xsd:string"/>
(...)
</sequence>
</extension>
</complexContent>
</complexType>
. Если да, создайте заново свои классы Java из него. Если нет - скачайте новый WSDL.
С помощью Apache Axis2 и enterprise.wsdl мне удалось создать такой пример кода:
Task task = Task.Factory.newInstance();
task.setType("Alan's Email"); // Not a valid picklist value, just to prove that these don't matter when we use API.
task.setWhatId("0067000000AH3ME"); // An Opportunity Id ("Burlington Textiles" in my test org) to which this task will be related.
task.setStatus("Not Started");
task.setPriority("Normal");
task.setDescription("A new Task has been created with methods from Enterprise WSDL.");
Вы можете скачать весь тестовый проект (довольно большой) здесь . Есть большая вероятность, что код выглядит странно, если вы привыкли к стилю Axis 1.x (большинство примеров API Salesforce написано с использованием старой версии Axis), но я уверяю вас, что у меня это сработало.
Если вам все еще нужна помощь - я думаю, нам придется связаться напрямую?
Удачи.
Имя поля API, которое содержит 'Call' (и используется по умолчанию) - это ComboBox
, а не PickList
, и называется оно Subject.
Task.Subject = 'Email';
Если вы хотите установить значение по умолчанию, сделайте это из приложения Salesforce:
Setup->Customize->Activities->Task Fields->Subject