We have released new versions of the SAP Cloud SDK. In detail, the following components are now available in new versions:
At the end of the article, you will find a set of instructions on how to update to the new versions.
Java Libraries: Release Highlights 3.19.1
You can update your dependencies of the SAP Cloud SDK for Java to version 3.19.1 and consume the new version from Maven Central.
Updated Data Model for SAP S/4 HANA Cloud
This release comes with an update of the OData virtual data model (VDM) to the newest release 2005 of SAP S/4HANA Cloud. SAP Cloud SDK supports all OData services listed in the SAP API Business Hub for SAP S/4HANA Cloud.
New Client Library for Workflow Service
SAP Cloud SDK now includes the client library for the Workflow Service API on SAP Cloud Platform, Cloud Foundry.
Here is an example on how to use the new client.
final HttpDestination httpDestination = DestinationAccessor.getDestination(destinationName).asHttp(); final List<WorkflowDefinition> workflowDefinitions = new WorkflowDefinitionsApi(httpDestination).getWorkflowDefinitions();
The following Maven module is available for including into your project.
<dependency> <groupId>com.sap.cloud.sdk.services</groupId> <artifactId>scp-workflow-cf</artifactId> </dependency>
Read more about using the Workflow Service in this blog post.
OData v4 Capabilities
The VDM request builder now supports fetching the count of entries from an entity collection endpoint. The result is a non-null
Long, which is the number of matching entries according to optional filter and search expressions.
Example for the VDM usage:
long numEntries = new DefaultEntityService() .countEntities() .filter(SomeEntity.FIELDNAME.contains("foo")) .search("bar") .execute(someDestination);
Example for the generic usage:
long numEntries = new CountRequestBuilder<>("/odata/service/path/", SomeEntity.class) .filter(SomeEntity.FIELDNAME.contains("foo")) .search("bar") .execute(someDestination);
The new SAP Cloud SDK version adds support for unbound actions in OData v4. The OData v4 generator generates unbound actions at the service level. Etag handling in actions is not supported at this time. Note: To enable this feature, regeneration of the VDM classes is required.
We introduced support for controlling the version identifier (ETag) submission when using the VDM request builders for OData v4 for deleting and updating entities
UpdateRequestBuilder. The method
disableVersionIdentifier() allows to avoid that the request header
If-Match is sent at all. The method
matchAnyVersionIdentifier() allows to control that the request header
If-Match is sent with the value
*. Note: If both methods are invoked on the same request builder, the latest invocation takes precedence.
Example for the VDM usage to delete an entity without sending a version identifier:
new DefaultEntityService() .deleteEntity(entity) .disableVersionIdentifier() .execute(destination);
Example for the VDM usage to update an entity while sending the
* value in the request header:
new DefaultEntityService() .updateEntity(entity) .matchAnyVersionIdentifier() .execute(destination);
Several further improvements are listed in the full release notes.
When executing and building requests with the generic
http-client custom request configurations now take precedence over configurations resulting from the given destination. This applies to all
http-client related functions:
The new version supports setting log levels for all loggers globally. Use
setGlobalLogLevel('debug') for this. Log levels set individually still take precedence.
As usual, the full release notes contain a list of all improvements in this release. For additional details, see release notes for older versions.
How to Update
To update the version of the SAP Cloud SDK Java libraries used in an existing project, proceed as follows:
- Open the pom.xml file in the root folder of your project.
- Locate the dependency management section and therein the
- Update the version of that dependency to
With this, you are already done thanks to the “bill of material” (BOM) approach. Your dependency should look like this:
<dependencyManagement> <dependencies> <dependency> <groupId>com.sap.cloud.sdk</groupId> <artifactId>sdk-bom</artifactId> <version>3.19.1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> <!-- possibly further managed dependencies ... --> </dependencyManagement>
If you update from a version prior to 3.0.0, have a look at our migration guide.
If you are using the SAP Cloud SDK in a project of the SAP Cloud Application Programming Model, replace
sdk-modules-bom to only update the version of SDK modules, not further dependencies.
You can now recompile your project (be aware of the compatibility notes, though) and leverage the new features of the SAP Cloud SDK in version 3.19.1.
Of course, you can also generate a new project that uses version 3.19.1 from the start by running the Maven archetypes for Neo or Cloud Foundry with
npm update in the root folder of your module. Note that this will also update other modules, unless you explicitly specify which packages to update. If you want to check beforehand what will change, use
Continuous Delivery Toolkit
If you are using the pipeline with a fixed version (as recommended since v7), update the continuous delivery toolkit with the following command, that you run on the server hosting the cx-server:
./cx-server update image
Learn more about SAP Cloud SDK
To learn how others in the community use SAP Cloud SDK you can check out more related blog posts.
Are you interested in a particular topic? It might be helpful to search the Q&A place? Feel free to ask your question there and do not forget to select the tag
SAP Cloud SDK.
If you are new to SAP Cloud SDK, get started and gain first hand-on exercise by following our tutorials.