Вы находитесь здесь:
Показать рекламные акции на основе валюты транзакции в мультивалютных организациях (бета-версия)
Выполните эту дополнительную настройку для отображения рекламных акций на основе валюты транзакции. По умолчанию, при использовании мультивалюты в организации окно «Обзор каталогов» отображает рекламные акции на основе валюты организации, связанной с транзакцией.
Требуемые версии
| Доступно в версиях: Lightning Experience |
| Доступно в версиях: Enterprise, Unlimited и Developer Edition Revenue Cloud с лицензией Revenue Cloud Advanced и базовой дополнительной лицензией Глобального управления рекламными акцими или лицензией «Управление лояльностью - Growth или Starter». |
| Необходимые полномочия пользователя | |
|---|---|
| Для настройки определений контекста: | Администратор контекстной службы |
| Для настройки потоков: | Управление потоками |
Важно!
Рекламные акции, основанные на валюте транзакции, могут отображаться, только если вы не настроили рекламные акции на основе канала.
Настройка определения контекста обнаружения продукта
Измените определение для отображения рекламных акций на основе валюты транзакции.
-
Отредактируйте расширенное определение контекста обнаружения продукта.
- В меню «Настройка» найдите и откройте «Определения контекста».
- Нажмите «Настраиваемые определения».
-
Нажмите на расширенное определение контекста обнаружения продукта.
Если вы используете готовое определение контекста, расширьте определение контекста ProductDiscoveryContext.
- Нажмите «Правка».
- На странице редактирования определений контекста нажмите «Далее».
-
На странице редактирования структуры нажмите
рядом с Promotion__std.
- В качестве имени введите Transaction__c и нажмите «Далее».
- Нажмите Transaction__c.
-
Нажмите «Добавить атрибуты» и добавьте сведения о валюте.
- Для имени введите ccycode__c.
- В поле «Тип» выберите «ВЫВОД ВВОДА»
- В поле «Тип данных» выберите «СТРОКА».
-
Нажмите «Добавить атрибуты» и добавьте сведения об организации.
- Для имени введите accountId__c.
- В поле «Тип» выберите «ВЫВОД ВВОДА».
- В поле «Тип данных» выберите «СТРОКА».
-
Нажмите «Добавить атрибуты» и добавьте сведения о коде.
- Для имени введите id__c.
- В поле «Тип» выберите «ВЫВОД ВВОДА».
- В поле «Тип данных» выберите «СТРОКА».
- Нажмите «Далее».
-
На странице редактирования тегов атрибутов добавьте имена атрибутов в качестве имен тегов.
- Рядом с accountId__c нажмите «Добавить теги».
- Для имени тега введите accountId__c.
- Нажмите «Готово».
-
Повторите эти действия, чтобы добавить теги для ccycode__c и id__c.
Используйте имя атрибута в качестве имени тега.
- Сохраните изменения.
Создание настраиваемого соотнесения рекламных акций
- Откройте вкладку «Данные карты».
-
Рядом с ProductDiscoveryPromoMapping нажмите
и выберите «Клонировать».
- Введите имя и сохраните изменения.
- Удалите соотнесение между узлом Account и узлом SalesTransaction.
-
Соотнесите эти узлы и атрибуты.
Контекст обнаружения продукта Контекст транзакций продажи Транзакция__c SalesTransaction ccycode__c CurrencyIsoCode accountId__c Организация - Сохраните изменения.
-
Рядом с ProductDiscoveryMapping нажмите
и выберите «Редактировать соотнесение ввода».
- Нажмите «Создать соотнесения узлов».
- В окне создания соотнесений узлов нажмите «Сохранить и создать».
- Сохраните изменения.
- Активируйте определение контекста.
Создание класса Apex
Создайте класс Apex для действия потока.
-
Нажмите «
» и выберите «Консоль разработчика».
- Выберите Файл | Новый | Класс Apex .
- В качестве имени введите DiscoverProductFlowAction.
-
Добавьте этот код и сохраните изменения.
public class DiscoverProductFlowAction { // Define input parameters public class FlowInput { @InvocableVariable(required=false) public String objectApiName; @InvocableVariable(required=false) public String recordId; } // Define output parameters public class FlowOutput { @InvocableVariable public runtime_industries_cpq.ContextDataInput[] additionalContextData; } // This method is invoked from a flow @InvocableMethod(label='Process Input' description='Creates the Array of ContextDataInput for additional Context Data') public static List<FlowOutput> generateAdditionalContextData(List<FlowInput> inputs) { String objectApiName; String recordId; String ccyCode; String accountId; Quote quoteObject; Order orderObject; FlowOutput output = new FlowOutput(); // Capture input from the flow for(FlowInput input : inputs ){ objectApiName = input.objectApiName; recordId = input.recordId; } //Write logic to Query Currency from Transaction Entity if(objectApiName == 'Quote') { quoteObject = [SELECT CurrencyIsoCode,AccountId FROM Quote WHERE Id = :recordId LIMIT 1][0]; ccyCode = quoteObject.CurrencyIsoCode; accountId = quoteObject.AccountId; } else if(objectApiName == 'Order') { orderObject = [SELECT CurrencyIsoCode,AccountId FROM Order WHERE Id = :recordId LIMIT 1]; ccyCode = orderObject.CurrencyIsoCode; accountId = orderObject.AccountId; } //Populate the ContextDataInput list to store additional context data List<runtime_industries_cpq.ContextDataInput> listContextData = new List<runtime_industries_cpq.ContextDataInput>(); runtime_industries_cpq.ContextDataInput cd1 = new runtime_industries_cpq.ContextDataInput(); cd1.nodeName = 'Transaction'; //Where Quote is the name of the node in the context definition. cd1.nodeData = new Map<String,Object>(); cd1.nodeData.put('id',recordId); cd1.nodeData.put('ccycode',ccyCode); cd1.nodeData.put('accountId',accountId); listContextData.add(cd1); // Return the additional Context Data to a flow output.additionalContextData = listContextData; return new List<FlowOutput>{output}; } }
Настройка потока обнаружения продукта
- В меню «Настройка» найдите и откройте «Потоки».
-
Откройте поток обнаружения продукта.
Если вы используете стандартный поток, откройте Discover Products.
-
Перед элементом окна списка «Продукт» нажмите «
» и выберите «Действие».
- Введите метку и API-имя.
- Найдите и выберите DiscoverProductFlowAction.
- Включите objectAPIName и введите objectAPIName в качестве его значения.
- Включите recordId и введите recordId в качестве его значения.
- Сохраните изменения.
- Нажмите «Список продуктов».
- Нажмите «Контейнер страницы списка продуктов».
- В атрибуте массива ввода контекстных данных выберите вывод действия.
- Сохраните изменения.
- Активируйте поток.
Эта статья решила вашу проблему?
Оставьте свой отзыв, чтобы мы могли стать лучше!

