Печать      Открыть версию интерактивной справки в формате PDF


Предыдущий раздел

Следующий раздел

JoinFieldValue

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

Функция JoinFieldValue в инструменте Expression Builder возвращает значение присоединенного поля по заданному типу связанной записи и заданным полям внешнего ключа. Посредством функции JoinFieldValue можно также извлечь из связанной записи другие поля, прямо не соединенные с исходным объектом, что позволяет выполнять поиск полей в записях подходящих типов.

Если идентификатор поля ссылочного типа записей представлен как внешний ключ в типе записей, на основе которого настраивается правило потока операций, можно использовать функцию JoinFieldValue для извлечения значений поля из ссылочного типа записей.

Также можно использовать следующие поля внешнего ключа, доступные во всех типах записей, для извлечения значений полей из типа записей "Пользователь":

  • CreatedById
  • ModifiedById

ПРИМЕЧАНИЕ. Функция JoinFieldValue не может возвратить значения следующих полей в типе записи "Операция": "Число транзакций расхода", "Подробные сведения о продукте - количество", "Число доставленных рекламных позиций" и "Число доставленных образцов". Это ограничение связано со способом расчета значений этих полей в Oracle CRM On Demand.

Синтаксис

JoinFieldValue (ref_record_type, foreign_key, field_name)

Тип результата

Строка

При возникновении ошибки или при отсутствии значения в запрашиваемом поле возвращается строка нулевой длины.

Аргументы

В следующей таблице приведено описание аргументов функции.

Аргумент

Описание

ref_record_type

Имя типа связанной записи, независимое от языка. (Имя, независимое от языка - это имя, не изменяющееся при выборе другого пользовательского языка.)

Этот аргумент необходимо вставить между символами, обозначающими поле типа "строка". Например:

'<Account>'

foreign_key

Литерал или выражение, возвращающее допустимый идентификатор строки в связанной записи (тип которой определяется аргументом ref_record_type). В случае недопустимого идентификатора строки функция возвращает строку нулевой длины. Прямые ссылки на поля необходимо вставлять между символами, обозначающими поле. Например:

[<AccountId>]

field_name

Имя поля в связанной записи (тип которой определяется аргументом ref_record_type), независимое от языка. Если тип связанной записи не предусматривает такого поля, возвращается ошибка. Имя поля необходимо вставить между символами, обозначающими поле типа "строка". Например:

'<Type>'

ПРИМЕЧАНИЕ. Независимые от языка имена полей и синтаксис имен полей в любых примерах выражений в этом разделе - это имена полей и синтаксис имен полей, которые использовались в Expression Builder до выпуска 29 с пакетом обновлений 1. Эти примеры по-прежнему являются допустимыми. Однако если выбрать соответствующие поля для выражения в списке полей в Expression Builder в выпуске 29 с пакетом обновлений 1 или последующих версиях, имена полей и синтаксис имен полей будут отличаться от тех, которые показаны в примерах. Рекомендуется выбирать поля для выражений в списке полей в Expression Builder, чтобы имена полей и синтаксис имен полей всегда были правильными. Дополнительные сведения об именах полей и синтаксисе имен полей в выражениях см. в разделе О выражениях.

Примеры

Пример 1. В рамках коммерческой деятельности требуется задать правило потока операций, согласно которому при изменении владельца записи выполняется поиск имени нового владельца. При изменении владельца записи в ней обновляется только поле внешнего ключа "OwnerId". Поэтому если задать для правила потока операций следующее условие, поиск нового владельца записи не будет выполнен:

PRE('<Owner>') <> [<Owner>]

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

PRE('<Owner>') <> JoinFieldValue('<User>',[<OwnerId>],'<Alias>')

Пример 2. Следующее выражение возвращает адрес электронной почты предыдущего владельца записи:

JoinFieldValue('<User>',PRE('<OwnerId>'),'<EMailAddr>')

Пример 3. Следующее выражение возвращает адрес электронной почты текущего владельца записи:

JoinFieldValue('<User>',[<OwnerId>],'<EMailAddr>')

Пример 4. В рамках коммерческой деятельности требуется передать для контакта запрос на обслуживание по электронной почте. Перед передачей сообщения запускается правило поток операций, обеспечивающее проверку согласия контакта на получение сообщений электронной почты. Для этого правила (действующего для записей типа "запрос на обслуживание") задано следующее условие:

JoinFieldValue('<Contact>',[<ContactId>],'<NeverEmail>')<> 'Y'

Пример 2. Следующее выражение возвращает территорию основного субъекта для запроса на обслуживание:

JoinFieldValue('<Territory>', JoinFieldValue('<Account>', [<AccountId>], '<TerritoryId>'),'<TerritoryName>')

Связанные разделы

Информацию об инструменте Expression Builder, связанную с данной темой, см. в следующих разделах.


Опубликовано в Октябрь 2016 Copyright © Oracle, 2005, 2016 гг. Все права защищены.Legal Notices.