Как я обнаруживаю среду в Salesforce?

Хотя у Вас не должно быть проблемы при выполнении экземпляра 2005 года механизма базы данных около экземпляра 2008 года, инструменты установлены в общий каталог, таким образом, у Вас не может быть двух версий установленных инструментов. К счастью, инструменты 2008 назад совместимы. Поскольку мы говорим, я использую 2008 SSMS и Профилировщика 2008 для управления моими 2 005 экземплярами Экспресса. Работает отлично.

Прежде, чем установить инструменты 2008, необходимо удалить любого и все "общие" компоненты с 2005. Попытайтесь идти в Ваш Добавлять/Удалять панель управления программ, найдите Microsoft SQL Server 2005 и нажмите "Change". Тогда выберите "Workstation Components" и удалите все туда (это не удалит Ваш механизм базы данных).

я полагаю, что установщик 2008 года также имеет опцию обновить совместно используемые компоненты только. Вы могли бы попробовать это.Удачи!

17
задан skaffman 10 May 2011 в 16:54
поделиться

4 ответа

The Login API call returns a sandbox element in the returned LoginResult structure that indicates if its a sandbox environment or not, from the WSDL.

        <complexType name="LoginResult">
            <sequence>
                <element name="metadataServerUrl" type="xsd:string" nillable="true"/>
                <element name="passwordExpired"   type="xsd:boolean" />
                <element name="sandbox"      type="xsd:boolean"/>
                <element name="serverUrl"         type="xsd:string" nillable="true"/>
                <element name="sessionId"         type="xsd:string" nillable="true"/>
                <element name="userId"           type="tns:ID" nillable="true"/>
                <element name="userInfo"         type="tns:GetUserInfoResult" minOccurs="0"/>
            </sequence>
        </complexType>
2
ответ дан 30 November 2019 в 11:44
поделиться

Судя по ответам, у Salesforce нет системного объекта, который мог бы сказать мне, работает ли мой код Apex в производственной среде или в среде песочницы.

Я собираюсь действовать, основываясь на следующих предположениях:

  • Я могу прочитать идентификатор организации в текущей среде
  • Идентификатор организации моей производственной системы всегда будет оставаться постоянным.
  • Идентификатор организации для песочницы всегда будет отличаться от производственного (поскольку они уникальны).

Текущий идентификатор организации можно найти в системе .

12
ответ дан 30 November 2019 в 11:44
поделиться

Я думаю, что самый простой способ сделать это - создать пользовательский объект в Salesforce, а затем сохранить в нем значение, указывающее песочницу или производство. Затем ваш код Apex может запросить этот объект. Одно из предложений - использовать статические конструкторы Apex для загрузки этой информации и кэширования ее для запроса.

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

HttpRequest req = new HttpRequest();
req.setEndpoint('http://www.whatismyip.com/automation/n09230945.asp');
req.setMethod('GET');

Http http = new Http();
HTTPResponse res = http.send(req);
System.debug(res.getBody());

Вы должны добавить " http : //www.whatismyip.com "в настройки удаленного сайта, чтобы это работало (Настройка> Настройка администрирования> Контроль безопасности> Настройки удаленного сайта).

0
ответ дан 30 November 2019 в 11:44
поделиться

Здесь я выполняю некромантию, и ответ уже принят, но, возможно, кому-то это пригодится ...

Используйте одно из этих полей слияния на своей странице Visualforce / S-Control:

{!$Api.Enterprise_Server_URL_180}, {!$Api.Partner_Server_URL_180}, {!$Api.Session_ID}

Вы можете легко извлечь из них идентификатор организации.

В коде Apex: UserInfo.getOrganisationId ()

3
ответ дан 30 November 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: