Question 1
Question
What describe best the JALO layer ?
Answer
-
means Jakarta Logic
-
mix data and business logic
-
it’s a piece of the service layer
-
JALO classes are generated during runtime
Question 2
Question
For the following query to be imported successfully what changes need to be done ?
$productCatalog=apparelProductCatalog
$productCatalogName=Apparel Product Catalog
INSERT_UPDATE ApparelProduct;code;$catalogVersion;unit(code); supercategories(code,$catalogVersion)
;300441142;;pieces;Blue Tomato,caps
Answer
-
add a macro for catalog version
-
change the attribute header INSERT_UPDATE to INSERT_UNIQUE
-
mark code with [unique=true]
-
use the type Product instead of ApparelProduct
Question 3
Question
Choose the correct file to localize HMC entries in English (extension’s name is hybhubcore)?
Answer
-
hybhubcore/resources/localization/hybhubcore-locales_en.properties
-
hybhubcore/resources/localization/hmc-locales_en.properties
-
hybhubcore/hmc/localization/hybhubcore-locales_en.properties
-
hybhubcore/resources/localization/english/hybhubcore.properties
Question 4
Question
Select the right definition for the tenant concept ?
Answer
-
a single SAP Hybris installation with multiple localextensions.xml
-
a clustered SAP Hybris installation with one database
-
a single SAP Hybris installation with distinct sets of data
-
a single SAP Hybris installation with a speciic database for each store
Question 5
Question
When do you use cluster aware events ?
Answer
-
when you run a cluster all events need to be cluster aware
-
since SAP Hybris V6 all events are cluster aware
-
when you need to run an event from a specific node
-
when you need to broadcast an event to all nodes
Question 6
Question
Why does the rule engine (used by the promotion engine) include a versioning and archiving mechanism ?
Answer
-
to keep an history of all promotions that ever existed on the system
-
to have a consistent representation of the applied rules when promotions were applied
-
to be able to work on different time zone
-
all item types in SAP Hybris are archived and versioned
Question 7
Question
What is wrong with the following item type definition ?
1 <itemtype code="Subscription" extends="GenericItem">
2 <attributes>
3 <attribute type="java.lang.String" qualifier="code">
4 <persistence type="property" />
5 <modifiers unique="true"/>
6 </attribute>
7 </attributes>
8 <indexes>
9 <index name="codeIdx">
10 <key attribute="code"/>
11 </index>
12 </indexes>
13 </itemtype>
Answer
-
missing a Jalo class definition
-
an index needs to be on at least two attributes
-
GenericItem is not a valid item
-
missing deployment data
Question 8
Question
Out of the box, what CMS items are used to build the top navigation menu ?
Question 9
Question
What steps you need to have to fulfill in order to create a new cronjob ?
Answer
-
create a new cron job expression from Spring
-
implement a job
-
create a new item type extending CronJob
-
add the new cronjob in your local.properties
Question 10
Question
What statements are false about catalogs synchronization ?
Answer
-
only existing items can be updated
-
no items can be deleted
-
all item types are being synchronized
-
the same catalog can a target and a source
Question 11
Question
Cached data are removed from the cache when ?
Question 12
Question
What statements are true about classification ?
Answer
-
classification is horizontal unlike categorization which is vertical
-
a product can be classified by only one classification attribute
-
classification is not being used by SAP Hybris because its model type definition is flexible
-
classification is not compatible with SOLR
Question 13
Question
What can you do from an addon ?
Answer
-
add front end files (JSP, HTML, CSS and Javascript)
-
generate or customize the data model
-
declare new Spring Services or Facades or customize existing
-
declare new Controllers or customize existing
Question 14
Question
What configuration file has the highest priority ?
Answer
-
project.properties from the platform extension
-
advanced.properties from the platform extension
-
local.properties from the config extension
-
local.properties from the custom extension
Question 15
Question
When you create the following item type A what classes are being generated ?
1 <itemtype code="A" extends="ItemB" generate="false">
2 <attributes>
3 <attribute type="java.lang.String" qualifier="code">
4 <persistence type="property" />
5 <modifiers unique="true"/>
6 </attribute>
7 </attributes>
8 </itemtype>
Answer
-
A.java
-
GeneratedA.java
-
AJalo.java
-
AModel.java
Question 16
Question
When configuring the Apache SOLR indexer mode what does DIRECT means ?
Answer
-
access the embedded Apache SOLR server
-
send request to Apache SOLR using its REST API
-
all index operations would be made directly on the index
-
all index operations would be made on a temporary index before indexes are switch
Question 17
Question
Is it possible for two tenants to use different extensions ?
Answer
-
yes using two different localextensions.xml, one for each tenant
-
yes using allowed.extensions and forbidden.extensions inside a tenant specific configuration file
-
yes using .allowed.extensions and .forbidden.extensions inside your configuration
-
no, SAP Hybris is not compatible with this
Question 18
Question
How do you install a new addon ?
Answer
-
add the addon inside your localextensions.xml
-
add the addon under external-dependencies.xml
-
use the ant target addoninstall
-
use the ant target syncaddons
Question 19
Question
Is this a valid Flexible Search Query ?
select {p.description[fr]:o} from {Product as p} where {p:pk} in
( {{ select {p:pk} from {product as p} where {p:code} like '%0%' }} )
Question 20
Question
Out of the box how can you access the assisted service module functionalities ?
Question 21
Question
How can you initialize SAP Hybris ?
Answer
-
using ant initialize
-
from the HAC
-
from the HMC
-
from the backoffice
Question 22
Question
What is highest B2B organization block ?
Answer
-
company
-
unit
-
division
-
region
Question 23
Question
In order to force a product to be listed on top of a give category, what out of the box features should you use ?
Answer
-
boost rules
-
hero rules
-
hero products
-
top products
Question 24
Question
What payment steps is described by the following definition ?
1 Transfer back money to a customer account, the transfer not being associated with any order or previous transactions.
Answer
-
capture
-
stand alone refund
-
capture.
-
refund
Question 25
Question
The BTG module is used to ?
Answer
-
personalize a web applications based on customers
-
business to groups
-
provides a upgraded version of the CMS cockpit
-
add business targets accessible from the backoice
Question 26
Question
What ant target should you use to start working on a new B2C implementation ?
Answer
-
ant installer -r b2c_acc
-
ant extgen
-
ant modulegen
-
ant accelerator
Question 27
Question
What Spring context has the larger scope ?
Answer
-
web context
-
core context
-
shared context
-
international context
Question 28
Question
During an Impex import what will happen when the import process can’t find a reference to an item type ?
Answer
-
import process will fail and move onto the next ile
-
the value line would be ignored
-
the value line would be saved and a new attempt would be made
-
the value line would be saved and attached to an error log entry
Question 29
Question
When loading available prices what is the price factory trying to match ?
Answer
-
customer / customer group
-
product / product group
-
date range if any configured
-
promotion / promotion group
Question 30
Question
What is the problem with the following business process action ?
1 package com.hybhub.core.process.action;
2
3 import de.hybris.platform.core.model.order.OrderModel;
4 import de.hybris.platform.orderprocessing.model.OrderProcessModel;
5 import de.hybris.platform.processengine.action. AbstractSimpleDecisionAction;
6 import de.hybris.platform.servicelayer.model.ModelService;
7 import de.hybris.platform.task.RetryLaterException;
8
9 import javax.annotation.Resource;
10
11
12 public class HybhubSimpleAction extends AbstractSimpleDecisionAction< OrderProcessModel>
13 {
14
15 @Resource
16 private ModelService modelService;
17
18 @Override
19 public Transition executeAction(final OrderProcessModel orderProcess) throws RetryLaterException, Exception
20 {
21 OrderModel order = orderProcess.getOrder();
22
23 if(order!= null){
24 order.setNet(Boolean.TRUE);
25 modelService.save(order);
26 return Transition.OK;
27 }
28
29 return null;
30 }
31
32 }
Answer
-
it doesn’t always return a transition
-
it has not setter for the modelService attribute
-
it should implement Action
-
the package is wrong
Question 31
Question
What is true about the DefaultCMSComponentController controller ?
Answer
-
it will inject all attributes into the model
-
it will inject all front-end attributes (non system) into the model
-
it is used by default if no specific controller are implemented
-
it should be avoided
Question 32
Question
What is true about the following log extracted from the build process ?
[echo] catalog->(validation,commons) 6.0.0.0-SNAPSHOT [p*cib]
Answer
-
the catalog extension was automatically required
-
the catalog extension has a core module
-
the catalog extension is deprecated
-
the catalog extension is a platform extension
Question 33
Question
Choose the correct user rights definition to complete the following import query.
$START_USERRIGHTS
Type;UID;MemberOfGroups;Password;Target;read;change;create;delete; change_perm
UserGroup;employeegroup;;
<Choose the right answer to complete this>
$END_USERRIGHTS
Question 34
Question
Which of the following components are deprecated ?
Answer
-
cockpit framework
-
Jalo layer
-
task engine
-
service layer
Question 35
Question
What is the correct way of configuring a new logger for the package com.hybhub.hybhubaddon ?
Answer
-
log4j.logger.com.hybhub.hybhubaddon = info
-
log4j.logger.hybhub.name = com.hybhub.hybhubaddon
log4j.logger.hybhub.level = info
log4j.logger.hybhub.appenderRef.stdout.ref = STDOUT
-
log4j2.logger.hybhub.name = com.hybhub.hybhubaddon
log4j2.logger.hybhub.level = info
log4j2.logger.hybhub.appenderRef.stdout.ref = STDOUT
-
log4j2.logger.com.hybhub.hybhubaddon = info
log4j2.logger.com.hybhub.hybhubaddon = STDOUT
Question 36
Question
The OCC webservices are ?
Answer
-
restful API
-
restless API
-
soap API
-
oAuth API
Question 37
Question
What statements are wrong about converters ?
Answer
-
they all have the same bean parent abstractPopulatingConverter
-
they contain a list of attributes to convert
-
they contain a list a populators to call
-
they are un-aware of the object type they are converting
Question 38
Question
What is wrong with the following extensioninfo.xml file ?
<extensioninfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="extensioninfo.xsd">
<extension abstractclassprefix="Generated" classprefix=" HybhubFacades" name="hybhubfacades">
<requires-extension name="hybhubfacades"/>
<requires-extension name="hybhubcore"/>
<coremodule generated="true" manager="de.hybris.platform.jalo .extension.GenericManager" packageroot="com.hybhub. facades"/>
</extension>
</extensioninfo>
Answer
-
missing web module declaration
-
missing core module declaration
-
missing hmc module declaration
-
dependency issue
Question 39
Question
Is the following dynamic attribute handler correct ?
1 package com.hybhub.core.model.dynamic;
2
3 import de.hybris.platform.core.model.product.ProductModel;
4 import de.hybris.platform.servicelayer.model.attribute. DynamicAttributeHandler;
5
6 public class HybhubDynamicHandler implements DynamicAttributeHandler< String, ProductModel>
7 {
8
9 @Override
10 public String get(ProductModel product)
11 {
12 return product.getCode() + " - " + product.getDescription();
13 }
14
15 }
Answer
-
no, it must extends ServiceLayerItems
-
no, it must also implement a setter
-
no, it must be in a different package
-
yes
Question 40
Question
What statements are true about collections under item type definitions ?
Answer
-
a collection is comma-separated list of PKs
-
collections are preferred over relations
-
at runtime collections are loaded into a collection of objects
-
collections can store as many objects as needed
Question 41
Question
Which of the following definition is the correct one for unit tests ?
Answer
-
requires access to the database and need a running SAP Hybris
-
requires access to the database and don’t need a running SAP Hybris
-
does not require access to the database and don’t need a running SAP Hybris
-
require access to the database and starts a transaction for each test
Question 42
Question
What is the following Spring configuration doing ?
<context:annotation-config/>
<context:component-scan
base-package="...,..."
scope-resolver="..."/>
Answer
-
add a new XML Spring configuration
-
load all detected components from the given packages
-
create a new bean scope
-
configure a request filter
Question 43
Question
When you synchronize a Media object from a Staged to an Online catalog what happens to the media file ?
Answer
-
the Media file is referenced by the Online and Staged Media
-
the Media file is copied to the Online data folder and referenced by the Online Media
-
the Media file is moved to a shared folder and referenced by both Media
-
the Media file is embedded inside the file attribute and synchronize like all other attributes
Question 44
Question
Select the right definition for the facade layer.
Answer
-
builds a complex object using simple objects and using a step by step approach
-
separates application’s concerns
-
hides the complexities of the system and provides a simplified interface to the client
-
add new functionality to an existing object without altering its structure
Question 45
Question
Select the existing Impex header mode.
Answer
-
INSERTED
-
UPDATE_INSERT
-
REMOVE
-
DELETE
Question 46
Question
How could you configure a new hot folder ?
Question 47
Question
How do you create a new interceptor ?
Answer
-
declare it along with the item type definition
-
provide an implementation of one of Interceptor interface
-
run a system update
-
add a Spring bean mapping the item type and the Interceptor implementation
Question 48
Question
A checkout step has ?
Question 49
Question
What are are valid legacy cockpit areas ?
Answer
-
navigation
-
item
-
browser
-
editor
Question 50
Question
When running an initialization on one tenant SAP Hybris will ?
Question 51
Question
When creating a new item how do you generate a new primary key ?
Answer
-
using java.util.UUID.randomUUID()
-
using the primaryKeyService
-
primary keys creation is automatically handled by the database
-
primary keys creation is automatically handled by the service layer
Question 52
Question
How could you declare configure an attribute to be encrypted ?
Answer
-
<attribute qualifier="sensible" autocreate="true" type="java.lang. String">
2 <persistence type="property"/>
3 <modifiers encrypted="true"/> 4 </attribute>
-
<attribute qualifier="sensible" autocreate="true" type="encrypted: java.lang.String">
2 <persistence type="property"/>
3 </attribute>
-
<attribute qualifier="sensible" autocreate="true" type="java.lang. String">
2 <persistence type="property" encrypted="true"/>
3 </attribute>
-
<attribute qualifier="sensible" autocreate="true" type="java.lang. String">
2 <modifiers type="property" encrypted="true"/>
3 </attribute>
Question 53
Question
Which item types exist ?
Answer
-
collectiontype
-
enumtype
-
atomictype
-
listtype
Question 54
Question
A customer segment could be executed in ?
Answer
-
optimized processing
-
full processing
-
jalo processing
-
complete processing
Question 55
Question
Why a Spring MCV controller needs to return a String ?
Question 56
Question
What features are available through the Order Management Module (formally OMS) ?
Answer
-
order splitting
-
payment
-
sourcing
-
promotion engine
Question 57
Question
Why do you need to define stop words for for your search configuration ?
Answer
-
to ignore configured words while searching
-
to boost configured words while searching
-
to stop the query after a configured word
-
to split the query in two queries
Question 58
Question
What are the two main components of the rule engine ?
Answer
-
rule processor
-
rule matcher
-
rule executor
-
rule builder
Question 59
Question
How could you improve the following code (groovy) ?
1 import de.hybris.platform.processengine.enums.ProcessState
2
3 def businessProcessService = spring.getBean("businessProcessService")
4 def modelService = spring.getBean("modelService")
5
6 def process = businessProcessService.createProcess(UUID.randomUUID(). toString(), "myProcess")
7 modelService.save(process)
8
9 businessProcessService.startProcess(process)
10
11 modelService.refresh(process)
12 if(ProcessState.SUCCEEDED != process.getProcessState()){
13 businessProcessService.startProcess(process)
14 }
Answer
-
use the method T startProcess(String arg0, String arg1); to create a process
-
delete the second call trying to start the business process
-
delete the useless call to save
-
generate a unique identifier for the business process
Question 60
Question
What statements are true about the following table (SQL DDL for HSQL) ?
1 CREATE CACHED TABLE b2bbudgetslp
2 (
3 ITEMPK BIGINT,
4 ITEMTYPEPK BIGINT,
5 LANGPK BIGINT,
6 p_name NVARCHAR(255),
7 PRIMARY KEY (ITEMPK, LANGPK)
8 );
Question 61
Question
Why would you use classification ?
Answer
-
to optimize Apache SOLR requests
-
to have dynamic product features
-
to speed up search
-
to unify product and category attributes
Question 62
Question
Which facet search configuration attributes give you the ability to redirect a user for a specific search request ?
Answer
-
stopwords
-
keywords
-
redirectwords
-
matchwords
Question 63
Question
What statements are wrong about extensions ?
Answer
-
they have to be inside the bin folder
-
they need to have a dependency to yempty
-
they can written using Groovy
-
they are always automatically loaded
Question 64
Question
What statements are true about the SAP Hybris server ?
Question 65
Question
When you run an impex import query from the HAC with the default configuration what statements are true ?
Answer
-
you are running distributed impexes
-
you are using the service layer
-
you are using the jalo layer
-
import relaxed is activated
Question 66
Question
Which of the following would be good uses for a SAP Hybris CronJob ?
Answer
-
synchronizing the stock level with an external warehouse once per day
-
notify the System Administrator when the peak load on the server passes a critical point
-
perform an inventory once per week at midnight
-
any task that isn’t database related, cronjobs are designed to perform operating System tasks, not database system tasks
Question 67
Question
Content slots for page template are ?
Answer
-
place holder for CMS component
-
place holder for JSP tags
-
shared across all pages using the page template
-
configured on the JSP view page
Question 68
Question
Which bean would be loaded from getBean(“bean”) ?
1 <bean name="stringBean" class="java.lang.String" >
2 <constructor-arg><value>my String Name</value></constructor-arg>
3 </bean>
4
5 <bean id="stringBean" class="java.lang.String" >
6 <constructor-arg><value>my String ID</value></constructor-arg>
7 </bean>
8
9 <alias name="stringBean" alias="bean" />
Answer
-
my String Name
-
my String ID
-
a new String
-
none
Question 69
Question
Is it possible to add new enumeration values by runtime ?
Answer
-
no
-
yes if you are using JRebel
-
yes if the enumeration is dynamic
-
yes if the enumeration is a subtype of the HybrisEnumValue class
Question 70
Question 71
Question
What statements are wrong about Backoffice widgets ?
Answer
-
widget can extend each other
-
widget ids must be unique or the compilation fails
-
views are implemented using JSP tags
-
widgets can have parameters
Question 72
Question
When writing unit tests how should you simulate pojo dependencies to external services, facades… ?
Answer
-
the test class should extend HybrisUnitTests
-
the test class should extend ServicelayerTest
-
use Mockito to stub dependencies
-
wrap all tests inside a transaction
Question 73
Question
What is the notification framework used for ?
Question 74
Question
What statements are true about stock levels ?
Answer
-
the stock service can check stock levels across multiple warehouses
-
a single warehouse can contain multiple stock levels for the same product
-
a base store is attached to a single warehouse
-
a product can be sold even if it has no stock
Question 75
Question
The CS cockpit was designed for ?
Answer
-
customer segment management
-
order life cycles management
-
css rendering management
-
customer security management
Question 76
Question
SAP Hybris semi-session failover mechanism allows to ?
Answer
-
automatically redirected users to the login page of a new node when on node goes down
-
to transfer all sessions of the failing node to other available nodes without loss of data
-
to always have all sessions replicated on every nodes
-
to automatically redirect users to a temporary page
Question 77
Question
Choose the flexible query which has generated the following SQL query ?
SELECT item_t0.PK, item_t1.p_code
FROM products item_t0 LEFT JOIN medias item_t1
ON item_t1.PK = item_t0.p_logo
WHERE ((item_t0.TypePkString=? AND (item_t1.TypePkString IS NULL OR ( item_t1.TypePkString=? ) )))
Answer
-
select {prd.pk}, {md.code} from {Product as prd left join Media as md on {md.pk} = {prd.logo}}
-
select {prd.pk}, {md.code} from {Product! as prd join Media! as md on {md.pk} = {prd}}
-
select {prd.pk}, {md.code} from {Product! as prd left join Media! as md on {md.pk} = {prd.logo}}
-
select {md.code} from {Product as prd left join Media! as md on {md.pk} = {prd.logo}}
Question 78
Question
What service should you use to save an model ?
Answer
-
persistenceService
-
jaloService
-
serviceLayerService
-
modelService
Question 79
Question
If you are testing a Flexible Search Restriction, the user you are running the query as ?
Answer
-
should be admin
-
should be flexiblesearchquery
-
should be a member of the searchquery group
-
should not be a member of the admin group
Question 80
Question
By default when you load an item from the service what is fetched inside the object ?