Installing SAP Netware ABAP 7.51 SP02 on CentOS 7 Minimal

You can find great documentation for installing SAP Netware ABAP 7.51 SP02 at Julie blog post. I didn’t use shared OS because of huge disk/ram usage.


Install your favorite text editor

Install nano, vim, etc with yum.

yum install nano
Enable ssh for root

You can open multiple terminal and make copy paste with ssh to your server.

nano /etc/ssh/sshd_config

Remove # for uncomment line “PermitRootLogin yes” or add it if missing.

service sshd restart
Disable firewall

You need to open a lot of port for SAP Netware in firewall. You can disable firewall instead of configuring it.

service firewalld stop
systemctl disable firewalld
Install uuidd package

SAP Netware using uuidd library for generating GUID, install it.

yum install uuidd

Install sch package

SAP Netware using sch command in installation step, install it.

yum install tcsh
Install vmware tools and shared folder

Install open-vm-tools.

yum install open-vm-tools

You can find vmware tools in VMWare Virtual Machine menu as Install VMware Tools. Then you can check /mnt folder for CD which including tools. Copy it to your temp.

cp VMwareTools-10.x.tar.gz /tmp
tar -zxvf VMwareTools-10.x.tar.gz

Install python for tools installer.

yum install python

Change directory to extracted folder then run tools installer.

phyton install


Start installation script with below arguments.

./ -g -s

Known hybris strategies

DefaultCommerceCloneSavedCartStrategy  Clone cart.
DefaultCloneAbstractOrderStrategy  Clone order.
DefaultCommerceAddToCartStrategyCommerceAddToCartStrategyAdding product to cart.
DefaultMultiCodeCouponRedemptionStrategy CouponRedemptionStrategy<>Single code coupon redemption.
DefaultSingleCodeCouponRedemptionStrategy CouponRedemptionStrategy<>Multi code coupon redemption.
KeyStrategyCache key strategy.
AbstractCancelDenialStrategy OrderCancelDenialStrategy 
DefaultBaseStoreSelectorStrategy BaseStoreSelectorStrategy

Delete all item by type

You can delete all item by type with impex. Below example removing all stock levels.

REMOVE StockLevel[batchmode=true];itemType(code)[unique=true]

Update object private property with groovy

You can update private field an object with below sample code.

def myBean = spring.getBean("myBean");
def f = myBean.getClass().getDeclaredField("myField");
f.set(myBean, "new string value");

Changing item attribute type in hybris

Some times you need attribute type change in hybris. Hybris as own ORM and it is not support updating attribute type. If you change attribute type you will get error like this:

de.hybris.platform.servicelayer.exceptions.ModelSavingException: <########## NewPropError ##########> value type mismatch in unlocalized property ‘myproperty’ of ‘myitem’ : expected ‘class java.lang.Integer’ but got ‘class java.lang.Long’

If you don’t want to adding new field than migrating data and removing old, you can use below procedure.

  • Change column type in DB. You cannot do this on hac because DDL disabled (solution added as related pot).
  • Update system in hac (Platform -> Update without Create essential data option).

Mount shared folder in VM

You can use below command for mount shared folder to VM guest. You need install vmware tools before use this.

/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other

Reload cockpit xml configurations

When you make change on product cockpit list, editor, advanced search, base, etc you need to reload configuration xml files to system. Below BeanShell code do this.

import de.hybris.platform.core.initialization.SystemSetupContext;
import de.hybris.platform.core.initialization.SystemSetup;
import de.hybris.platform.core.Registry;
SystemSetupContext setupCtx = new SystemSetupContext(new HashMap(), SystemSetup.Type.PROJECT, "mycustomcockpits");


Log SQL queries which are created with flex

You can add below properties to your file.

log4j2.config.xml= = de.hybris.platform.jalo.flexiblesearch
log4j2.logger.flexible-search.level = debug
log4j2.logger.flexible-search.appenderRef.stdout.ref = STDOUT

After configuration you can manage log level in hac.

Adding isempty and in for enum operator for productcockpit

Below configuration adding isEmpty operator for REFERENCE type and in operator for ENUM.

<bean id="editorConditionConfiguration" parent="myCockpitEditorConditionConfiguration" scope="tenant"/>

<bean id="myCockpitEditorConditionConfiguration" parent="defaultEditorConditionConfiguration" scope="tenant"
class="de.hybris.platform.cockpit.model.advancedsearch.config.impl.DefaultEditorConditionConfiguration" abstract="true">
<property name="defaultConditionsMap">
<map merge="true">
<entry key="REFERENCE" value="isEmpty"/>
<entry key="ENUM" value="in"/>

<bean class="">
<property name="attributeTypes">
<property name="operatorQualifiers">
<property name="translator" ref="genericQueryConditionTranslator"/>

<bean class="">
<property name="attributeTypes">
<property name="operatorQualifiers">
<property name="translator" ref="genericQueryConditionTranslator"/>

You need to add this operator to your referenced property with below code in your advanced search configuration (advancedSearch_VariantProduct.xml).

<property qualifier="product.galleryImages" visible="false">
<conditions mode="append">
<condition operator="isEmpty"></condition>