Learn, Practice, and Improve with SAP P_C4H340_34 Practice Test Questions

  • 82 Questions
  • Updated on: 3-Mar-2026
  • SAP Certified Development Professional - SAP Commerce Cloud Developer
  • Valid Worldwide
  • 2820+ Prepared
  • 4.9/5.0

What does the Cloud Portal application enable you to do? Note: There are 3 correct answers to this question.

A. Set up and deploy SAP Commerce Cloud in the public cloud.

B. Manage the configurations of your cloud hot folders.

C. Create and configure endpoints tied to configured aspects.

D. Review the page load times of your environments.

E. Generate new passwords for admin and anonymous users.

A.   Set up and deploy SAP Commerce Cloud in the public cloud.
C.   Create and configure endpoints tied to configured aspects.
D.   Review the page load times of your environments.

Explanation:

The Cloud Portal is a secure, browser-based self-service interface that enables you to set up, configure, and deploy SAP Commerce Cloud solutions in the public cloud .

Option A is correct because the Cloud Portal enables you to set up and deploy SAP Commerce Cloud in the public cloud. It allows you to create environments, connect your code repository, build your application, and deploy builds to these environments .

Option C is correct because endpoints tied to configured aspects can be created and configured directly in the Cloud Portal. When you select an environment, you can configure endpoints that define web routing and access for aspects like API, Backoffice, Storefront, and Background Processing .

Option D is correct because the Cloud Portal integrates with SAP CX Observability (Dynatrace) and Cloud Logging System (CLS) for monitoring. You can review page load times, metrics, and performance data through the Monitoring section of each environment .

Why Other Option Is Incorrect:

Option B is incorrect because cloud hot folders are not configured through the Cloud Portal UI. While access credentials for hot folder Azure Blob Storage are displayed in the Cloud Portal, the actual configuration requires XML mapping files and property settings in the codebase. The Cloud Portal only shows the connection details but does not provide configuration management for hot folders .

References:
SAP Learning: "Exploring Basic Features of Cloud Portal"
SAP Help Portal: "Setup" documentation
SAP Help Portal: "Cloud Hot Folders" documentation

How does SAP Commerce cloud, composable storefront compare to the SAP Commerce Cloud Accelerators? Note: There are 2 correct answers to this question.

A. They have the same feature parity, but Spartacus is more upgradable.

B. Accelerators are JSP-based while Spartacus is JavaScript-based.

C. They are both using OCC API to connect to the commerce platform.

D. They are both extensible according to project requirement.

B.   Accelerators are JSP-based while Spartacus is JavaScript-based.
D.   They are both extensible according to project requirement.

Explanation:

The transition from SAP Commerce Cloud Accelerators to Composable Storefront (formerly known as Spartacus) represents a fundamental shift in architecture—from a monolithic, coupled approach to a modern, decoupled (headless) one.

B (Technology Stack):
Accelerators are built using JSP (JavaServer Pages) and the Spring MVC framework, where the frontend and backend are tightly integrated within the same deployment unit. Composable Storefront is a JavaScript-based Single Page Application (SPA) built on Angular, allowing the frontend to run independently of the platform logic.

D (Extensibility):
Both solutions are designed to be modified to meet specific business needs. While the method of extension differs—Accelerators often use AddOns and JSP overrides, while Composable Storefront uses Angular dependency injection and library-based configuration—both are fully extensible frameworks that allow developers to build custom features on top of the base template.

Why Other Options are Incorrect

Option A: They do not have the same feature parity.
Composable Storefront was built from the ground up to replace Accelerators, and while it has reached significant maturity, there are still legacy or specialized Accelerator features (particularly in older industry-specific extensions) that have not been implemented in the Composable version.

Option C: This is partially incorrect.
While Composable Storefront relies 100% on the OCC API (Omni Commerce Connect) to communicate with the backend, traditional Accelerators primarily use direct Java calls to the Facade and Service layers. While an "Accelerator OCC" extension exists to expose data to mobile apps, the Accelerator web storefront itself does not use OCC for its own page rendering.

References
SAP Help Portal: Composable Storefront FAQ – Explicitly compares the architecture (Angular vs. JSP) and notes that they do not yet have 100% feature parity.

You are asked to define a new business process. What steps do you perform? Note: There are 3 correct answers to this question.

A. Define the process in BPMN format.

B. Define the actions as Spring beans.

C. Create actions in Java code.

D. Define actions as new item types.

E. Define the process in XML format.

B.   Define the actions as Spring beans.
C.   Create actions in Java code.
E.   Define the process in XML format.

Explanation:

Defining a business process in SAP Commerce Cloud requires a specific combination of configuration and coding. The engine uses a "Graph-Based" approach where the flow is defined in a file and the logic is implemented in Java classes.

E (Define the process in XML format):
This is the first structural step. You must create an XML file (typically named my-process.xml) that defines the nodes (actions, wait states, and transitions). This file dictates the logic flow and links names to actual Spring beans.

C (Create actions in Java code):
For every action node defined in your XML, you must write a Java class. These classes typically extend AbstractAction or AbstractProceduralAction and contain the actual business logic to be executed.

B (Define the actions as Spring beans):
To make your Java classes accessible to the Business Process Engine, they must be declared as Spring beans in your *-spring.xml file. The id of the bean in Spring must match the bean attribute used in the process XML action node.

Why Other Options are Incorrect

Option A:
SAP Commerce Cloud's native Business Process Engine uses its own proprietary XML schema, not the industry-standard BPMN (Business Process Model and Notation) format. While external tools can visualize it, the platform cannot directly execute a .bpmn file.

Option D:
Actions are logic components, not data components. You do not define actions as item types in items.xml. Item types are used for the BusinessProcess model (to store state/data), but the actions themselves are Spring-managed Java objects.

References
SAP Help Portal: Automated Business Processes – Section on "Defining a Process," which lists the XML definition and Action implementation as core requirements.

Assuming that property impex.legacy.scripting is set to false and ‘Enable code execution’ is checked, what are the results of the following ImpEx script? INSERT_UPDATE
Title;code[unique=true] #%groovy% beforeEach: line.clear(); ;foo; ;bar; ;baz;

A. No entries will be updated or inserted.

B. Only the Title with code that equals "baz" will be updated or inserted.

C. All data rows will be cleared of unnecessary space.

D. All "foo", "bar", and "baz" codes will be updated or inserted.

A.   No entries will be updated or inserted.

Explanation:

The key to this question lies in the beforeEach: line.clear(); Groovy script and how it interacts with the Impex data rows.

Why Other Options Are Incorrect:

Option B is incorrect because the line.clear() method executes for every row, not selectively. All rows are cleared, so "baz" would also be cleared and not processed.

Option C is incorrect because line.clear() completely removes all cell values from the row; it does not trim whitespace or perform any cleaning operations on the data.

Option D is incorrect because all data rows are cleared by the script, preventing any of the codes from being processed and imported.

References:
SAP Community discussion on Impex scripting with beforeEach and line object
SAP Help Portal documentation on ImpEx scripting capabilities

You need to create a CronJob for an automated task that will be performed every day at midnight.

Which steps would you follow? Note: There are 3 correct answers to this question.

A. Register the JobPerformable bean in your extension's Spring configuration file.

B. Define the Cronjob logic in a class that implements the JobPerformable interface.

C. Perform a system update for essential data.

D. Perform a system update for sample data.

E. Create a CronJob item and a trigger for midnight using ImpEx or Backoffice.

A.   Register the JobPerformable bean in your extension's Spring configuration file.
B.   Define the Cronjob logic in a class that implements the JobPerformable interface.
E.   Create a CronJob item and a trigger for midnight using ImpEx or Backoffice.

Explanation:

Creating an automated task in SAP Commerce Cloud follows a standard pattern involving the implementation of logic, the registration of that logic within the application context, and the scheduling of the execution.

B (Define logic):
The core of any CronJob is the logic. You must create a Java class that implements the JobPerformable interface (typically by extending AbstractJobPerformable). This class contains the perform(CronJobModel) method where your automated task resides.

A (Register Spring bean):
Once the Java class is written, the ServiceLayer needs to know it exists. You register it as a bean in your resources/myextension-spring.xml file. By setting the parent="abstractJobPerformable", you inherit the necessary services (like modelService) to handle the job execution.

E (Create Item and Trigger):
The Java logic (the "Job") and the scheduling (the "CronJob") are separate. You must create a CronJob item that points to your ServicelayerJob (defined by your Spring bean ID). To make it run at midnight, you must also create a Trigger item associated with that CronJob, using a cron expression like 0 0 0 * * ?.

Why Other Options are Incorrect

Option C & D:
While you often use ImpEx to create the CronJob and Trigger items, you do not need to perform a system update for "essential" or "sample" data to make a CronJob work. System updates are for initializing types or loading factory data; CronJobs are typically operational configurations that can be imported via the HAC (Hybris Administration Console) or created manually in the Backoffice at any time without a system-wide update.

References
SAP Help Portal: The CronJob Service – Detailed guide on implementing JobPerformable and configuring triggers.

When using Monitoring Support in the Integration API Module, what should you pay attention to?

Note: There are 2 correct answers to this question.

A. You can monitor the inbound integration requests using the Meta API.

B. In Outbound monitoring, if the source of the OutboundRequest is not from outbound sync or webhooks, it is set as UNKNOWN.

C. If you want to disable the monitoring, you need to change the dedicated properties in local.properties and restart the commerce cloud server.

D. If the number of batches in a bulk request exceeds the limit allowed, then the system records one Inbound Request with the payload.

B.   In Outbound monitoring, if the source of the OutboundRequest is not from outbound sync or webhooks, it is set as UNKNOWN.
C.   If you want to disable the monitoring, you need to change the dedicated properties in local.properties and restart the commerce cloud server.

Explanation:

The Monitoring Support in the Integration API module is essential for tracking data exchange between SAP Commerce Cloud and external systems. However, its behavior and configuration have specific constraints.

B (Outbound Source Identification):
The system is designed to categorize the origin of outbound traffic. If an OutboundRequest is triggered by a custom service or a mechanism other than the standard Outbound Sync or Webhooks, the monitoring log cannot automatically determine the source and defaults to the value UNKNOWN.

C (Persistence of Configuration):
Monitoring is controlled via specific properties (e.g., integrationbackoffice.monitoring.enabled). Because these settings affect how the Integration API interceptors and Spring beans behave, a change in local.properties requires a restart of the SAP Commerce Cloud server to take effect and ensure the monitoring hooks are correctly initialized or detached.

Why Other Options are Incorrect

Option A:
You cannot monitor requests using the Meta API. The Meta API is used to retrieve the schema and structure of Integration Objects (the "metadata"), whereas monitoring is performed through the Integration UI Tool in the Backoffice or via specific monitoring OData endpoints.

Option D:
If a bulk request exceeds the allowed batch limit, the system typically rejects the request before it reaches the monitoring persistence layer, or it fails to process the payload entirely. Monitoring records individual requests; if the entire request is malformed or violates "Bulk" constraints, it doesn't simply record "one request with the payload" as a successful monitoring entry.

References
SAP Help Portal: Integration API Monitoring – Details on property configuration and outbound request source tracking.

What should you pay attention to when you are working with webhook?

A. A webhook requires an integration object as notification payload and consumed destination as the webhook…

B. A webhook uses the optional filter attribute to control which consumed destination will received notifications

C. A webhook can be configured to send notifications when an item is created, updated or deleted.

D. A webhook guarantees the At Least Once(ALO) principal and concurrent events are not completely discarded.

A.   A webhook requires an integration object as notification payload and consumed destination as the webhook…
C.   A webhook can be configured to send notifications when an item is created, updated or deleted.

Explanation:

Option A is correct because a webhook configuration in SAP Commerce requires two essential parts: an Integration Object that defines the notification payload and a Consumed Destination that specifies the webhook subscriber URL . The Integration Object can be either a standard Integration Object or a POJO Integration Object that models outbound business events .

Option C is correct because webhooks are designed to send notifications to configured URLs when an item is saved—this includes create, update, and delete operations . The notifications are triggered by After Save Events in SAP Commerce .

Why Other Options Are Incorrect:

Option B is incorrect because while webhooks do support filtering, the $filter attribute is used in API requests to select a subset of items when viewing webhook configurations, not to control which consumed destination receives notifications . Filtering for webhook notifications themselves is handled through separate filter scripts, not through a filter attribute on the webhook configuration .

Option D is incorrect because webhooks do not guarantee At Least Once (ALO) delivery, and concurrent events are not completely managed—this level of delivery guarantee is not part of the webhook specification in SAP Commerce.

References:
SAP Help Portal: Webhook Configuration documentation
SAP Community: Creating Webhooks with POJO Integration Objects

Page 2 out of 12 Pages