Переход между типами записей в Salesforce - PullRequest
0 голосов
/ 17 августа 2011

Salesforce позволяет расширять определения объектов с помощью типов записей. Существует ли быстрый и простой способ разрешить пользователям переводить группы объектов из одного типа записи в другой? В моем случае я буду следить за студентами по мере прохождения ими жизненного цикла студентов от абитуриента до выпускника. Для меня имеет смысл отслеживать различные фазы жизненного цикла студента как Типы записей, чтобы я мог создавать собственные интерфейсы / разрешения на просмотр / бизнес-логику для каждой фазы. Я надеялся, что смогу создать пользовательскую кнопку или ссылку, чтобы сделать это в соответствии с этим примером из Salesforce: Salesforce: начало работы с кнопками и ссылками . Однако мне не повезло, запрашивая объект RecordType с помощью инструментария Ajax, чтобы выяснить, какой RecordTypeId мне нужно будет обновить объект. (Я довольно новичок в JavaScript, так что, возможно, это просто моя неопытность, которая мешает мне. Я был бы рад опубликовать примеры кода того, что я пробовал до сих пор, если кто-нибудь спросит.)

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

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

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

1 Ответ

2 голосов
/ 17 августа 2011

Вероятно, вам нужен не сам объект RecordType, а поле RecordTypeId на вашем объекте, которое вы используете для отслеживания учащихся, которые ищут этот объект RecordType. Например, чтобы найти тип записи данного учащегося, SOQL должен выглядеть следующим образом:

SELECT RecordTypeId FROM Student__c WHERE Id = {some id}

и затем, если вы хотите обновить запись, вы можете изменить значение RecordTypeId следующим образом:

var student = new sforce.SObject("Student__c");
student.Id = '{some id}';
student.RecordTypeId = '{new record type id}';
result = sforce.connection.update([student]);

Чтобы найти подходящие RecordTypeIds для данного типа объекта, вы можете либо запросить объект RecordType и выполнить фильтрацию по столбцу SObjectType, либо просто вызвать describeSObject(Student__c) и проверить узел RecordTypeInfos в результате.

...