cancel
Showing results for 
Search instead for 
Did you mean: 

Customize listview Backoffice

Mpcasas
Explorer
0 Kudos
1,222

Hi!!

I would like customize the result of B2BUnit listview on Backoffice of SAP Commerce. I'd like list only the active B2BUnit

Thank you

View Entire Topic
former_member632827
Participant

Hey,

We can do it in multiple ways without touching the listview logic.

  1. Use Type restriction on B2Bunit based on user group
INSERT_UPDATE SearchRestriction;code[unique=true];principal(uid);query;restrictedType(code);active;generate
;valid_b2bunits;testb2buserbackooffice;( {item:active} == 1);B2Bunit;true;true

But, this restriction executes in all the cases (Backoffice, storefront services ext..)

2. Use Advanced Search Engine Generic Initializer Widget

https://help.sap.com/viewer/5c9ea0c629214e42b727bf08800d8dfa/6.5.0.0/en-US/9496872d8ccf45aeba2a89b34...

<widget-extension widgetId="explorerTree">
 <widget id="validationB2BUnit"
                widgetDefinitionId="com.hybris.cockpitng.widgets.common.advancedsearchengine.genericinitializer"
                slotId="cockpitWidgetChildrenInvisible" template="false">
            <setting key="requiredTypeCode" type="String" value="B2BUnit"/>
            <setting key="navigationNodeId" type="String" value="<!-- node id -->"/>
            <setting key="handlerBeanId" type="String" value="b2bUnitAdvancedSearchInitializer"/>
            <virtual-sockets/>
        </widget>
</widget-extension widgetId="explorerTree">
 <widget-connection sourceWidgetId="explorerTree" outputId="nodeSelected" targetWidgetId="validationB2BUnit"
                       inputId="nodeSelected"/>
 <widget-connection sourceWidgetId="validationB2BUnit" outputId="outContext" targetWidgetId="advancedSearch                       inputId="initContext"/>  
public class B2BUnitAdvancedSearchInitializer implements AdvancedSearchInitializer {
	public static final String ACTIVE = "active";
	@Override
	public void addSearchDataConditions(AdvancedSearchData searchData, Optional<NavigationNode> navigationNode) {
		FieldType fieldType = new FieldType();
		fieldType.setDisabled(Boolean.FALSE);
		fieldType.setSelected(Boolean.TRUE);
		fieldType.setName(ACTIVE);
		searchData.addCondition(fieldType, ValueComparisonOperator.EQUALS, Boolean.TRUE);
	}
}

Note: should add dependency (<requires-extensionname="platformbackoffice"/>) in customer back office extension