Migration Steps for SAP Commerce 2205

SAP Commerce 2205 is released and we already have 2nd patch for 2205 from SAP.  The support for SAP Commerce 1905,2005,2011 and 2105 is ending in 2023 and it is always recommended to run the SAP Commerce on the latest version to have good support from SAP on PROD.

Usually, upgrade topics should be a very simple topic but can be complicated considering the changes that come with the new version of JAVA, Spring, and other tools & solutions on which SAP Commerce is built-on.

In this blog post, I will walk you through simple and necessary steps to migrate successfully to SAP Commerce 2205. This blog should also help you if you are already using Datahub and SCPI integration with SAP CAR and S4 HANA. I have also collected necessary links for quick references for developers to take advantage of to fix their build issues while migrating the code from the lower version to 2205.

Steps for Migration :

NOTE: Before you perform below the upgrade steps, make sure to backup your Database

  1. Download the latest version with the latest patch of SAP Commerce from the below link: https://launchpad.support.sap.com/#/softwarecenter/search/SAP%2520Commerce%25202205
  2. Tools you might require as prerequisites for 2205:
    Software / Platform Supported Versions
    Java (SAP JAVA /JDK) 17 (https://sap.github.io/SapMachine/)
    Tomcat 8.5.78 (Same as 2005 / 2011 / 2105)
    Database MySQL 8.0
    SAP HANA HANA 2.0
    Oracle 19c
    Microsoft SQL Server 2017
    SOLR 8.11.2
  3. Set Apache Ant and Create Required Directories
     . ./setantenv.sh
    ant clean all
  4. Config folder:
    • Copy your custom local.properties and localextensions.xml into this folder
      • local.properties
        • make sure you have checked your tomcat.generaloptions property. If possible use the same value from OOTB which can be found under platform/project.properties and append your custom -D properties end of this line
        • if you are using any tenant-specific properties files, make sure you copied these properties also under the config folder
      • localextensions.xml
        • Check for any vendor-specific extensions that are not usually developed or maintained by you or also it’s not an OOTB extension as part of the commerce package.
  5. Custom folder:
    • Copy all your custom extensions to this folder
    • Delete if there are any generated extensions like yb2bacceleratorstorefront
  6. DB Driver Update:
    • Download mysql-connector-java-8.0.11.jar (or higher version) and place it in ${HYBRIS_BIN_DIR}/platform/lib/dbdriver.
  7. Update SAP Commerce License Attribute to your hybris configuration (Optional).
    • Command line at Platform folder
      • ./license.sh -temp CPS_MYS
  8. This step is only applicable for the projects that are using Integration Package Extensions: (Optional)
    • Download the CX COMMERCE INT EXT PACK 2205 from below URL  https://launchpad.support.sap.com/#/softwarecenter/search/SAP%2520Commerce%25202205
    • Copy all the extensions from this downloaded package to your project installation module package ( /hybris/bin/modules )
    • Verify integration extension from the below modules:
      • sap-framework-core (SAP Integration)
      • sap-reuse-services (SAP CAR)
      • sap-retail-integration (SAP Retail OOA)
      • sap-customer (SAP Datahub Integration)
      • scpi-order-management-system (SCPI)
      • scpi (SCPI Integration)
  9. Start hybris server:
    ant clean all
    ./hybrisserver.sh
  10. Run Update system:
    • Login to HAC and make sure you select OOTB extensions that were impacted by upgrades such as :
      • backoffice
      • smartedit
      • platformbackoffice
      • basecommercebackoffice
      • backofficesolrsearch
      • ruleengine
      • ruleengineservices
      • solrfacetsearch
      • searchservices
      • promotions
      • commerceservices
      • commercefacades
      • promotionengineservices
      • promotionsbackoffice
      • promotionenginebackoffice
    • NOTE: During this step make sure you have deselected your custom patch extension or initialdata extension on a higher environments
  11. Clear Cache
    • HAC → Monitoring → Cache
  12. Execute Cleanup of Orphaned Types
    • HAC → Maintenance → Cleanup → Clear all orphaned types
  13. Reset Backoffice Configuration:
  14. Run all the custom Impex using the patch extension of your project
  15. ReRun ant clean all and start the server (./hybrisserver.sh).
  16. This step is only applicable for the projects that are using Datahub Integrations: (Optional)

Now you have migrated to 2205 and should be able to enjoy the new Backoffice 2205 along with other new features 🙂

Developer Notes:

Developers need to check for the packages and classes that are updated with new required beans and methods. The following steps and references will help the developer to migrate the code to the latest SAP Commerce 2205.

  1. Mockito & Groovy Update: https://help.sap.com/docs/SAP_COMMERCE/a74589c3a81a4a95bf51d87258c0ab15/277f145325a4409b975f6e2af91b7401.html?locale=en-US
  2. Build Error / Hybris server start error on any specific class/bean
    • Look for beans that are generating errors:
    • Look for class/package that is generating an error. Find the module in API Compatibility Report
    • Check for Deprecated classes
    • Check for Removed Classes
    • Check for Updated Classes
  3. Check for smartedit required extensions and jars (npninstall)
    • If you don’t use smartedit and get error related to npn, then check your localextensions.xml file and remove below extensions:
      • cmsbackoffice
      • cmssmartedit
      • cmssmarteditwebservices
      • cmswebservices
      • npmancillary
      • permissionswebservices
      • previewwebservices
      • smartedit
      • smarteditaddon
      • smartedittools
      • smarteditwebservices
    • Using smartedit for the first time, then you need to check you have whitelisted https://registry.npmjs.org/ on your onprem system.
  4. JVM related ERROR during server startup
    • Use tomcat OOTB specific properties in your local.properties
      • Platform ->project.properties looks for (tomcat.generaloptions)
    • Append your custom properties to end of tomcat.generaloptions (local.properties)
  5. Log4j 1.x  Library Removed:
    • Look for properties in your local.properties and remove/comment properties that start with log4j.logger.
    • You could also find which property to be removed by using log4j.deprecated.properties.print in your local.properties. This will print all the log4j properties that are deprecated in 2205.
  6. DataModel Update (item.xml)
    Module ADDED/REMOVED/UPDATED Datamodel
    commerce-services/commerceservices ADDED FutureStock
    commerce-services/commerceservices UPDATED StoreFrontCustomerProcess
    backoffice-framework/backoffice ADDED Theme
    backoffice-framework/backoffice ADDED BackofficeObjectSpecialCollection
  7. OOTB Properties Update:
    Below is the list of only selected properties that are commonly used and worth checking.
    Module File name ADDED/REMOVED/UPDATED Property
    platform project.propeties UPDATED tomcat.generaloptions
    ADDED media.is.root.folder.removable
    ADDED metrics.cronJobsRunning.cache.ttl.mslog4j.deprecated.properties.warn
    ADDED log4j.deprecated.properties.print
    ADDED maven.download.sources
    ADDED login.token.url.enabled
    ADDED sonar.additionalModule.<moduleName>.path
    ADDED flexiblesearch.cacheDomain.readOnlyCacheDomain.ttl
    ADDED flexiblesearch.datasource.readonly.cacheDomain
    advance.properties ADDED sqlserver.enableLimitSupportForSQLServer2012
    UPDATED db.connectionerrorcheckingjdbcconnectionpool.maytestagain
    ADDED db.pool.connectRetries
    UPDATED standalone.javaoptions (tomcat.generaloptions)
    UPDATED standalone.jdkmodulesexports (tomcat.generaloptions)
    UPDATED synctimestamp.query.removal.optimisation
    UPDATED props.removal.optimisation
    UPDATED relations.partof.suppressRemoveOnJalo
    ADDED oracle.use.lower.indexes
    ADDED cronjob.enableRepeat
    ADDED ant.javascript.engine.classpath
    backoffice-framework/backoffice project.properties REMOVED backoffice.cockpitng.global.click.tracking.enabled
    ADDED backoffice.fulltext.search.strategy
    commerce-services/commerceservices project.properties ADDED commerceservices.commercecartmergemethodhook.enabled
    ADDED commerceservices.cartCalculation.resetDeliveryCost.enabled
    smartedit project.properties ADDED smartedit.mediaUploadDefaultFolder
    RENAMED smartedit.validImageMimeTypeCodes tosmartedit.validFileMimeTypeCodes
    ADDED smartedit.smartedittools.config

    NOTE: This list doesn’t contain all the properties that SAP Commerce has removed or created

  8. Commerce – Extensions Removed :
    • secureportaladdon
    • ondemandsampledata
    • ondemandcommon
    • cistax
    • cispayment
    • cisclienttest
    • cisclient
    • cisavs
  9. Integration – Extension Removed :
    • sapbillinginvoiceaddon
    • sapbillinginvoicefacades
    • sapbillinginvoiceocc
    • sapbillinginvoiceocctests
    • sapbillinginvoiceservices

              NOTE: Please check the extensions that are removed from 2205 here.

List of changes before you migrate to 2205 :

  • Platform (core)
  • Integration API
  • Configurable Bundle
  • Promotion
  • B2B Accelerator

Note: If you are migrating from 2011, then its worth checking the following links:

  • Platform (core)
  • Commerce OCC APIs
  • Integration APIs
  • Backoffice Framework
  • SmartEdit

[SOLVED] : Issue for 2205

Hope this has helped you to speed up your migration to the latest SAP Commerce version 2205.

Stay tuned for more solutions. 🙂

If you have any feedback or suggestions, please feel free to add a comment below.