Core Data Services (CDS) ABAP

Parameter & Client Handling

(C) Brandeis Consulting

Parameter in Views

Verwendung als Ausdruck, z.B. in

  • Operatorausdrücken, z.B. Berechnungen
  • Argument in SQL-Funktionen
  • WHERE und ON Bedingungen

Zugriff auf dem Parameter entwerfolgt über $parameters.<parameter>

(C) Brandeis Consulting

Annotationen für Parameter

@EndUserText.label: <Beschreibung>

@EndUserText.tooltip: <Tooltip>

@Environment.systemField: //defaultwerte für Parameter
  • #CLIENT liefert sy-mandt
  • #SYSTEM_DATE liefert sy-datum
  • #SYSTEM_TIME liefert sy-uzeit
  • #SYSTEM_LANGUAGE liefert sy-langu
  • #USER liefert sy-uname
  • Nur #CLIENT kann beim Aufruf nicht übersteuert werden
(C) Brandeis Consulting

Übung CDS Parameter

Die letzte Übung mit den Ausdrücke in der Feldliste soll erweitert werden:

  • Für die Breite der Spalte SummaryShort soll ein Parameter pSummaryShortLengthverwendet werden.
  • Für die Schwellenwerte zwischen den PrioCat-Werten A, B und C sollen die zwei Parameter pLevelA und pLevelB verwendet werden.

Definiere die entsprechenden Parameter und passe die Ausdrücke in der View-Entity an.

(C) Brandeis Consulting

Client Handling

Per Default ist das Client Handling eingeschaltet und wir brauchen uns um nichts kümmern.

Die Annotation ClientDependent: [true |false] ist obsolet.

Aktuelle Annotation:

ClientHandling.type: [#INHERITED|#CLIENT_DEPENDENT|#CLIENT_INDEPENDENT]

(C) Brandeis Consulting

Client Handling Beispiel

CDS View

@AbapCatalog: { sqlViewName: 'ZJB_DEMO',
                compiler.compareFilter: true,
                preserveKey: true }
                
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Mein erster CDS View'
define view zjb_cds_demo
  as select from    zbc_tasks as t

    left outer join zbc_users as u on t.assignee = u.user_id
{
      // Blockmodus: Alt + Shift + A
      // Pretty Printer: Shift + F1
  key t.task_key    as TaskKey,
      t.summary     as Summary,
      t.status      as Status,
      t.project     as Project,
      t.description as Description,
      t.assignee    as Assignee,
      u.firstname   as Firstname,
      u.lastname    as Lastname,
      t.type        as Type      
}

Generiertes SQL Statement___

CREATE OR REPLACE VIEW "ZJB_DEMO" AS SELECT 
  "T"."CLIENT" AS "MANDT", 
  "T"."TASK_KEY" AS "TASKKEY", 
  "T"."SUMMARY" AS "SUMMARY", 
  "T"."STATUS" AS "STATUS", 
  "T"."PROJECT" AS "PROJECT", 
  "T"."DESCRIPTION" AS "DESCRIPTION", 
  "T"."ASSIGNEE" AS "ASSIGNEE", 
  "U"."FIRSTNAME" AS "FIRSTNAME", 
  "U"."LASTNAME" AS "LASTNAME", 
  "T"."TYPE" AS "TYPE"
FROM "ZBC_TASKS" "T" LEFT OUTER JOIN "ZBC_USERS" "U" ON ( 
  "T"."CLIENT" = "U"."CLIENT" AND 
  "T"."ASSIGNEE" = "U"."USER_ID" 
)
(C) Brandeis Consulting