SAP Certified Associate - Back-End Developer - ABAP Cloud C_ABAPD_2507 Exam Practice Test

Page: 1 / 14
Total 80 questions
Question 1

Image:

In the following ABAP SQL code, what are valid case distinctions? Note: There are 2 correct answers to this question.

A)

B)

C)

D)



Answer : A, B


Question 2

Given the following Core Data Service View Entity Data Definition:

1 @AccessControl.authorizationCheck: #NOT_REQUIRED

2 DEFINE VIEW ENTITY demo_flight_info_join

3 AS SELECT

4 FROM scarr AS a

5 LEFT OUTER JOIN scounter AS c

6 LEFT OUTER JOIN sairport AS p

7 ON p.id = c.airport

8 ON a.carrid = c.carrid

9 {

10 a.carrid AS carrier_id,

11 p.id AS airport_id,

12 c.countnum AS counter_number

13 }

In what order will the join statements be executed?



Answer : A

The order in which the join statements will be executed is:

scarr will be joined with scounter first and the result will be joined with sairport.

This is because the join statements are nested from left to right, meaning that the leftmost data source is joined with the next data source, and the result is joined with the next data source, and so on. The join condition for each pair of data sources is specified by the ON clause that follows the data source name. The join type for each pair of data sources is specified by the join operator that precedes the data source name. In this case, the join operator is LEFT OUTER JOIN, which means that all the rows from the left data source are included in the result, and only the matching rows from the right data source are included. If there is no matching row from the right data source, the corresponding fields are filled with initial values1.

Therefore, the join statements will be executed as follows:

First, scarr AS a will be joined with scounter AS c using the join condition a.carrid = c.carrid. This means that all the rows from scarr will be included in the result, and only the rows from scounter that have the same value for the carrid field will be included. If there is no matching row from scounter, the countnum field will be filled with an initial value.

Second, the result of the first join will be joined with sairport AS p using the join condition p.id = c.airport. This means that all the rows from the first join will be included in the result, and only the rows from sairport that have the same value for the id field as the airport field from the first join will be included. If there is no matching row from sairport, the id field will be filled with an initial value.


Question 3

In an Access Control Object, which clauses are used? Note: There are 3 correct answers to this question.



Answer : A, D, E

An Access Control Object (ACO) is a CDS annotation that defines the access control rules for a CDS view entity.An ACO consists of one or more clauses that specify the role name, the data source, the access conditions, and the return code of the authority check12. Some of the clauses that are used in an ACO are:

Where (to specify the access conditions): This clause is used to define the logical expression that determines whether a user has access to the data source or not. The expression can use the fields of the data source, the parameters of the CDS view entity, or the predefined variables $user and $session.The expression can also use the functions check_authorization and check_role to perform additional authority checks12.

Define role (to specify the role name): This clause is used to assign a name to the role that is defined by the ACO. The role name must be unique within the namespace of the CDS view entity and must not contain any special characters.The role name can be used to reference the ACO in other annotations, such as @AccessControl.authorizationCheck or @AccessControl.grant12.

Revoke (to remove access to the data source): This clause is used to explicitly deny access to the data source for a user who meets the conditions of the where clause. The revoke clause overrides any grant clause that might grant access to the same user.The revoke clause can be used to implement the principle of least privilege or to enforce data segregation12.

You cannot do any of the following:

Grant (to identify the data source): This is not a valid clause in an ACO. The grant clause is a separate annotation that is used to grant access to a CDS view entity or a data source for a user who has a specific role.The grant clause can reference an ACO by its role name to apply the access conditions defined by the ACO12.

Return code (to assign the return code of the authority check): This is not a valid clause in an ACO. The return code of the authority check is a predefined variable that is set by the system after performing the access control check.The return code can be used in the where clause of the ACO to specify different access conditions based on the outcome of the check12.


Question 4

Why would you use Access Controls with CDS Views? Note: There are 2 correct answers to this question.



Answer : A, C

You would use Access Controls with CDS Views for the following reasons:

A . Only the data corresponding to the user's authorization is transferred from the database to the application layer. This is true because Access Controls allow you to define CDS roles that specify the authorization conditions for accessing a CDS view. The CDS roles are evaluated for every user at runtime and the system automatically adds the restrictions to the selection conditions of the CDS view. This ensures that only the data that the user is authorized to see is read from the database and transferred to the application layer.This improves the security and the performance of the data access1.

C . You do not have to remember to implement AUTHORITY CHECK statements. This is true because Access Controls provide a declarative and centralized way of defining the authorization logic for a CDS view. You do not have to write any procedural code or use the AUTHORITY CHECK statement to check the user's authorization for each data source or field.The system handles the authorization check automatically and transparently for you2.

The following reasons are not valid for using Access Controls with CDS Views:

B . The system field sy-subrc is set, giving you the result of the authorization check. This is false because the system field sy-subrc is not used by Access Controls. The sy-subrc field is used by the AUTHORITY CHECK statement to indicate the result of the authorization check, but Access Controls do not use this statement.Instead, Access Controls use CDS roles to filter the data according to the user's authorization2.

D . All of the data from the data sources is loaded into your application automatically and filtered there according to the user's authorization. This is false because Access Controls do not load all the data from the data sources into the application layer. Access Controls filter the data at the database layer, where the data resides, and only transfer the data that the user is authorized to see to the application layer.This reduces the data transfer and the memory consumption of the application layer1.


Question 5
Question 6

Refer to the exhibit.

What are valid statements? Note: There are 2 correct answers to this question.



Answer : C, D

The code snippet in the image is an example of using the RAISE EXCEPTION statement to raise a class-based exception and create a corresponding exception object.The code snippet also uses the EXPORTING addition to pass parameters to the instance constructor of the exception class12. Some of the valid statements about the code snippet are:

The code creates an exception object and raises an exception: This is true. The RAISE EXCEPTION statement raises the exception linked to the exception class zcxl and generates a corresponding exception object.The exception object contains the information about the exception, such as the message, the source position, and the previous exception12.

''previous'' expects the reference to a previous exception: This is true. The previous parameter is a predefined parameter of the instance constructor of the exception class cx_root, which is the root class of all class-based exceptions. The previous parameter expects the reference to a previous exception object that was caught during exception handling.The previous parameter can be used to chain multiple exceptions and preserve the original cause of the exception12.

You cannot do any of the following:

''zcxl'' is a dictionary structure, and ''paraml'' and ''param2'' are this structure: This is false. zcxl is not a dictionary structure, but a user-defined exception class that inherits from the predefined exception class cx_static_check. param1 and param2 are not components of this structure, but input parameters of the instance constructor of the exception class zcxl.The input parameters can be used to pass additional information to the exception object, such as the values that caused the exception12.

''paraml'' and ''param2'' are predefined names: This is false. param1 and param2 are not predefined names, but user-defined names that can be chosen arbitrarily. However, they must match the names of the input parameters of the instance constructor of the exception class zcxl.The names of the input parameters can be declared in the interface of the exception class using the RAISING addition12.


Question 7

/DMO/I_Connection is a CDS view.

What variable type is connection full based on the following code? DATA connection full TYPE

/DMD/I_Connection.



Answer : B

Based on the following code, the variable type of connection_full is a structure. A structure is a complex data type that consists of a group of related data objects, called components, that have their own data types and names. A structure can be defined using the TYPES statement or based on an existing structure type, such as a CDS view entity or a CDS DDIC-based view. In this case, the variable connection_full is declared using the TYPE addition, which means that it has the same structure type as the CDS view entity /DMO/I_Connection. The CDS view entity /DMO/I_Connection is a data model view that defines a data model based on the database table /DMO/Connection. The CDS view entity /DMO/I_Connection has the following components: carrid, connid, airpfrom, airpto, distance, and fltime. Therefore, the variable connection_full has the same components as the CDS view entity /DMO/I_Connection, and each component has the same data type and length as the corresponding field in the database table /DMO/Connection.


Page:    1 / 14   
Total 80 questions