REST API Oracle Sales Cloud (OSC) имеют ресурсы для групп продуктов и продуктов. Из этого организации могут создавать глубокие многоуровневые каталоги продуктов. Но отображение и навигация по этим каталогам в клиенте REST, таком как VBCS, может быть сложной задачей.
С помощью гуру пользовательского кода VBCS Дэвида Конечни мы недавно создали каталог, который выглядел следующим образом:
У Product Groups REST API есть следующие особенности:
- Группа продуктов (/crmRestApi/resources/11.13.0.0/setupSalesCatalogs) имеет дочерние элементы, называемые подгруппами и продуктами.
- Подгруппа группы товаров (/crmRestApi/resources/11.13.0.0/setupSalesCatalogs/{ProdGroupId}/child/ProductGroupSubgroupAdministration) не является обычной группой товаров и не обладает всеми ее свойствами, большинство особенно список подгрупп подгруппы.
- Точно так же продукт в группе продуктов (/crmRestApi/resources/11.13.0.0/setupSalesCatalogs/{ProdGroupId}/child/ProductGroupProductSetup) не является обычным продуктом (/crmRestApi/resources/11.13. 0.0/products) и отсутствуют ключевые свойства.
Проблема здесь в том, что когда вы копаетесь в одной из этих подгрупп, вы хотите показать не объект ProductGroupSubgroupAdministration, а просто старую группу продуктов. Чтобы выполнить это, мы должны взломать некоторый пользовательский код.
- Отбросьте список и подключите его к бизнес-объекту «Группы продуктов». Включите только действие «Сведения».
- На странице сведений о группе продуктов отбросьте список и привяжите его к подгруппам. Не добавляйте ни одну из страниц действий CRUD.
- Выберите имя подгруппы и перейдите на вкладку «Действия» в инспекторе свойств. Добавьте новое пользовательское действие.
- Добавьте к действию пользовательский блок JavaScript и введите этот код:
// Replace com_oracle_abcs_fa_V7OhT with the variable used in your page // Get the ProdGroupId for the subgroup var prodId = $com_oracle_abcs_fa_V7OhT_setupSalesCatalogs_ProductGroupSubgroupAdministrationListArchetypeRecord.getValue('ProdGroupId'); // Create a new record with the ProdGroupId var record = new Record({'_breeze_system_id' : prodId}); // Navigate to the ProductGroup details page and pass in the record with the ProdGroupId Abcs.Pages().navigateToPage('com_oracle_abcs_fa_V7OhT_setupSalesCatalogsPage', ContextualData.createRecordToEditContext({entityId: 'com.oracle.abcs.fa.V7OhT.setupSalesCatalogs', data: record})); resolve();
Чтобы настроить ссылки на продукты, сделайте то же самое.
- Перетащите список и привяжите его к дочернему элементу «Продукты» (ProductGroupProductSetup) группы продуктов.
- Установите действие для имени продукта на этот пользовательский JavaScript:
var prodId = $com_oracle_abcs_fa_V7OhT_setupSalesCatalogs_ProductGroupProductSetupListArchetypeRecord.getValue('InventoryItemId'); var record = new Record({'_breeze_system_id' : prodId}); Abcs.Pages().navigateToPage('ProductDetail', ContextualData.createRecordToEditContext({entityId: 'com.oracle.abcs.fa.xPiEu.products', data: record})); resolve();
Это предполагает, что вы уже создали страницу ProductDetail, перейдя к списку страниц, создав новую страницу типа Detail и привязав ее к продукту (/crmRestApi/resources/11.13.0.0/products) Бизнес Объект.