Упрощение Идентификационных Ссылок Типа Записи - PullRequest
3 голосов
/ 25 мая 2011

При использовании Salesforce SOAP API через PHP, если у меня есть объект, у которого есть поле поиска для учетной записи с определенным полем в учетной записи, которое настроено как внешний идентификатор, я могу сделать следующее

$sfBooking->fields['Account__r'] = "<type>Account</type>"
    . "<custom_account_id__c>"
    . utf8_encode($tboxBooking->client_id)
    . "</custom_account_id__c>";

Это очень удобно при попытке связать записи, не прибегая к использованию их Salesforce ID.

Мне интересно, существует ли подобный тип сокращений, который я могу использовать при настройке типа записи для объектов через API. Необходимость получения идентификатора типа записи с помощью первого запроса к объекту типа записи - это шаг, который я бы хотел исключить, если это вообще возможно.

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Вы можете сделать это, используя поле имени на RecordType, ваш сгенерированный xml должен выглядеть как

    <create xmlns="urn:partner.soap.sforce.com">
        <sobject>
            <type>case</type>
            <subject>Test</subject>
            <recordType>
                <type>RecordType</type>
                <name>InternetCase</name>
            </recordType>
        </sobject>
    </create>

на основе кода, который вы разместили, вы бы сделали

$sfBooking->fields['RecordType'] = "<type>RecordType</type>"
    . "<name>"
    . utf8_encode($tboxBooking->recordType_name)
    . "</name>";
1 голос
/ 25 мая 2011

Дэвид, я не знаю подобного сокращенного метода установки RecordType. К сожалению, RecordType не имеет внешнего идентификатора, который необходим для достижения этой цели.

Я бы порекомендовал запросить все RecordTypes и создать локальную таблицу поиска / массив от DeveloperName до Id. Затем вы можете использовать эту справочную таблицу / массив во всем приложении, чтобы установить правильный идентификатор RecordType на основе DeveloperName этого RecordType в Salesforce.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...