Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

sap-abap-cdsSAP abap CDS 搜索

Agent Skill

sap-abap-cds 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,305

周安装

135

GitHub Stars

239

下载量

1,058
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sap-abap-cds(SAP abap CDS 搜索)
来源仓库:https://github.com/secondsky/sap-skills
仓库路径:skills/sap-abap-cds
安装命令:
npx skills add https://github.com/secondsky/sap-skills --skill sap-abap-cds
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/secondsky/sap-skills --skill sap-abap-cds

简介

用于查找、检索和筛选 SAP ABAP CDS 相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词快速定位候选结果。
  • 通过 npx skills add 命令从 GitHub 仓库安装使用。
  • 建议确认权限范围和维护状态,避免触发联网或文件读写操作。
  • 可结合原始 README 进一步核验具体用法和功能边界。

SKILL.md

SAP ABAP CDS (Core Data Services)

Related Skills

  • sap-abap: Use for ABAP programming patterns used with CDS or when implementing EML statements in ABAP
  • sap-btp-cloud-platform: Use for CDS deployment scenarios on BTP or ABAP Environment configurations
  • sap-fiori-tools: Use when building Fiori Elements applications that consume CDS views or working with UI annotations
  • sap-cap-capire: Use for comparing CDS syntax between ABAP and CAP or when integrating ABAP CDS with CAP services
  • sap-api-style: Use when documenting CDS-based OData services or following API documentation standards

Quick Reference: https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/abencds.html | SAP Cheat Sheets: https://github.com/SAP-samples/abap-cheat-sheets/blob/main/15_CDS_View_Entities.md

Version Compatibility

This skill covers CDS features from 7.40 SP8 through ABAP Cloud. Key version boundaries:

Feature7.40 SP87.507.517.55+
CDS View (DEFINE VIEW)xxxx
CDS associations, parameters, built-in functionsxxxx
CDS Table Functions (DEFINE TABLE FUNCTION)xxx
CDS Access Control (DEFINE ROLE / pfcg_auth)xxxx
CDS Access Control (implicit evaluation)xxx
Session variables ($session.user/client/system_language)xxxx
@Environment.systemField annotationxxx
UPPER/LOWER functionsxx
$session.system_datexx
CDS Metadata Extensions (ANNOTATE VIEW)xx
Cross Join in CDSxx
CDS View Entity (DEFINE VIEW ENTITY)x
New cardinality syntax (to one/to many)7.57+

On a 7.40 system: Use DEFINE VIEW (not DEFINE VIEW ENTITY). CDS table functions are not available before 7.50. Basic DCL (DEFINE ROLE with pfcg_auth) is available from 7.40 SP08, but implicit role evaluation in ABAP SQL requires 7.50+. $session.user/client/system_language are available from 7.40 SP08. The templates in templates/ include both classic CDS View and View Entity variants.

Table of Contents


1. CDS View Fundamentals

View Types

TypeSyntaxDatabase ViewSince
CDS ViewDEFINE VIEWYes7.4 SP8
CDS View EntityDEFINE VIEW ENTITYNo7.55

Recommendation: Use CDS View Entities for new development.

Basic CDS View Syntax

@AbapCatalog.sqlViewName: 'ZCDS_EXAMPLE_V'
@AbapCatalog.compiler.CompareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Example CDS View'

define view ZCDS_EXAMPLE
  as select from db_table as t
{
  key t.field1,
      t.field2,
      t.field3 as AliasName
}

CDS View Entity Syntax (7.55+)

@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Example View Entity'

define view entity Z_CDS_EXAMPLE
  as select from db_table as t
{
  key t.field1,
      t.field2,
      t.field3 as AliasName
}

Key Difference: View entities omit @AbapCatalog.sqlViewName - no SQL view generated.

Eclipse ADT Setup

  1. FileNewOtherCore Data ServicesData Definition
  2. Enter name, description, and package
  3. Select template (view, view entity, etc.)

2. Essential Annotations

Core Annotations

Essential annotations for CDS development:

  • @AbapCatalog.sqlViewName - SQL view name (max 16 chars)
  • @AbapCatalog.compiler.CompareFilter - Optimize WHERE clauses
  • @AccessControl.authorizationCheck - Set to #NOT_REQUIRED, #CHECK, #MANDATORY, or #NOT_ALLOWED
  • @EndUserText.label - User-facing description
  • @Metadata.allowExtensions - Allow view extensions

Complete Reference: See references/annotations-reference.md for 50+ annotations with examples.

Semantics Annotations (Currency/Quantity)

Required for CURR and QUAN data types to avoid error SD_CDS_ENTITY105:

-- Currency fields
@Semantics.currencyCode: true
waers,
@Semantics.amount.currencyCode: 'waers'
amount,

-- Quantity fields
@Semantics.unitOfMeasure: true
meins,
@Semantics.quantity.unitOfMeasure: 'meins'
quantity

UI Annotations (Fiori Elements)

@UI.lineItem: [{ position: 10 }]
@UI.identification: [{ position: 10 }]
@UI.selectionField: [{ position: 10 }]
field1,

@UI.hidden: true
internal_field

Consumption Annotations (Value Help)

@Consumption.valueHelpDefinition: [{
  entity: { name: 'I_Currency', element: 'Currency' }
}]
waers

For complete annotation reference, see references/annotations-reference.md.


3. Expressions and Operations

CASE Expressions

Simple CASE (single variable comparison):

case status
  when 'A' then 'Active'
  when 'I' then 'Inactive'
  else 'Unknown'
end as StatusText

Searched CASE (multiple conditions):

case
  when amount > 1000 then 'High'
  when amount > 100 then 'Medium'
  else 'Low'
end as AmountCategory

Comparison Operators

Standard operators: =, <>, <, >, <=, >= Special operators: BETWEEN x AND y, LIKE, IS NULL, IS NOT NULL

Complete Reference: See references/expressions-reference.md for all operators and expressions.

Arithmetic Operations

quantity * price as TotalAmount,
amount / 100 as Percentage,
-amount as NegatedAmount

Session Variables

Available system variables (SY fields equivalent):

  • $session.user (SY-UNAME) - Current user [7.40 SP08+]
  • $session.client (SY-MANDT) - Client [7.40 SP08+]
  • $session.system_language (SY-LANGU) - Language [7.40 SP08+]
  • $session.system_date (SY-DATUM) - Current date [7.51+]
Note: $session.user/client/system_language are available from 7.40 SP08. $session.system_date requires 7.51+. @Environment.systemField requires 7.50+.

Complete Reference: See references/expressions-reference.md for all system variables.

$session.user as CurrentUser,
$session.system_date as Today

4. Built-in Functions

CDS provides comprehensive built-in functions for string, numeric, and date operations.

Key Function Categories

  • String Functions: concat(), length(), substring(), upper(), lower(), replace()
  • Numeric Functions: abs(), ceil(), floor(), round(), division()
  • Date Functions: dats_add_days(), dats_add_months(), dats_days_between()
  • CAST Expression: Convert between ABAP data types
Note: upper() and lower() in CDS require 7.51+. On 7.40/7.50, case conversion must be performed in ABAP after selecting (there is no CDS equivalent).

Complete Reference: See references/functions-reference.md for all 50+ functions with examples.

Quick Examples

-- String operations
concat(first_name, last_name) as FullName,
upper(name) as UpperName,
substring(description, 1, 10) as ShortDesc

-- Numeric operations
abs(amount) as AbsoluteAmount,
round(value, 2) as RoundedValue,
division(10, 3, 2) as PreciseDivision

-- Date operations
dats_add_days(current_date, 7) as NextWeek,
dats_days_between(start_date, end_date) as Duration

-- Type conversion
cast(field as abap.char(10)) as TextField,
cast(amount as abap.curr(15,2)) as CurrencyField

**ABAP Types**: `abap.char()`, `abap.numc()`, `abap.int4`, `abap.dats`, `abap.tims`, `abap.curr()`, `abap.cuky`, `abap.quan()`, `abap.unit()`

---

## 5. Joins

### Join Types

-- INNER JOIN (matching rows only) inner join makt as t on m.matnr = t.matnr

-- LEFT OUTER JOIN (all from left, matching from right) left outer join marc as c on m.matnr = c.matnr

-- RIGHT OUTER JOIN (all from right, matching from left) -- [7.51+] right outer join mvke as v on m.matnr = v.matnr

-- CROSS JOIN (cartesian product) -- [7.51+] cross join t001 as co


---

## 6. Associations

Associations define relationships between entities (join-on-demand):

### Defining Associations

define view Z_ASSOC_EXAMPLE as select from scarr as c association [1..*] to spfli as _Flights on $projection.carrid = _Flights.carrid association [0..1] to sairport as _Airport on $projection.hub = _Airport.id { key c.carrid, c.carrname, c.hub,

// Expose associations _Flights, _Airport }


### Cardinality Notation

**Syntax mapping**:

- `[0..1]` or `[1]` → `association to one` (LEFT OUTER MANY TO ONE)
- `[1..1]` → `association to one` (exact match)
- `[0..*]` or `[*]` → `association to many` (LEFT OUTER MANY TO MANY)
- `[1..*]` → `association to many` (one or more)

**Complete Reference**: See `references/associations-reference.md` for detailed cardinality guide.

### New Cardinality Syntax (Release 2302+)

association to one _Customer on ... -- [0..1] association to many _Items on ... -- [0..*]


### Using Associations

-- Expose for consumer use _Customer,

-- Ad-hoc field access (triggers join) _Customer.name as CustomerName


### Path Expressions with Filter

-- Filter with cardinality indicator _Items[1: Status = 'A'].ItemNo


For complete association reference, see `references/associations-reference.md`.

---

## 7. Input Parameters

### Defining Parameters

define view Z_PARAM_EXAMPLE with parameters p_date_from : dats, p_date_to : dats, @Environment.systemField: #SYSTEM_LANGUAGE p_langu : spras as select from vbak as v { key v.vbeln, v.erdat, v.erzet } where v.erdat between :p_date_from and :p_date_to


### Parameter Reference

Use colon notation `:p_date_from` or `$parameters.p_date_from`

**Calling from ABAP**:

SELECT * FROM z_param_example( p_date_from = '20240101', p_date_to = '20241231', p_langu = @sy-langu ) INTO TABLE @DATA(lt_result).


---

## 8. Aggregate Expressions

### Aggregate Functions

define view Z_AGG_EXAMPLE as select from vbap as i { i.vbeln, sum(i.netwr) as TotalAmount, avg(i.netwr) as AvgAmount, max(i.netwr) as MaxAmount, min(i.netwr) as MinAmount, count(*) as ItemCount } group by i.vbeln having sum(i.netwr) > 1000


---

## 9. Access Control (DCL)

### Basic DCL Structure

@MappingRole: true define role Z_CDS_EXAMPLE_DCL { grant select on Z_CDS_EXAMPLE where (bukrs) = aspect pfcg_auth(F_BKPF_BUK, BUKRS, ACTVT = '03'); }


### Authorization Check Options

**Available values**:

- `#NOT_REQUIRED` - No authorization check
- `#CHECK` - Warning if no DCL exists
- `#MANDATORY` - Error if no DCL exists
- `#NOT_ALLOWED` - DCL ignored if exists

**Complete Reference**: See `references/access-control-reference.md` for detailed DCL patterns.

### Condition Types

**PFCG Authorization**: `where (field) = aspect pfcg_auth(AUTH_OBJECT, AUTH_FIELD, ACTVT = '03')`

**Literal Condition**: `where status <> 'DELETED'`

**User Aspect**: `where created_by?= aspect user`

**Combined**: `where (bukrs) = aspect pfcg_auth(...) and status = 'ACTIVE'`

For complete access control reference, see `references/access-control-reference.md`.

---

## 10. Data Retrieval from ABAP

### Standard SELECT

SELECT * FROM zcds_example WHERE field1 = @lv_value INTO TABLE @DATA(lt_result).


### SALV IDA (Integrated Data Access)

cl_salv_gui_table_ida=>create_for_cds_view( CONV #( 'ZCDS_EXAMPLE' ) )->fullscreen( )->display( ).


---

## 11. Common Errors and Solutions

### SD_CDS_ENTITY105: Missing Reference Information

**Problem**: CURR/QUAN fields without reference

**Solution**: Add semantics annotations

@Semantics.currencyCode: true waers, @Semantics.amount.currencyCode: 'waers' netwr


Or import currency from related table:

inner join t001 as c on ... { c.waers, @Semantics.amount.currencyCode: 'waers' v.amount }


### Cardinality Warnings

**Problem**: Cardinality doesn't match actual data

**Solution**: Define cardinality matching data model

association [0..1] to ... -- Use for optional relationships association [1..*] to ... -- Use for required one-to-many


For complete troubleshooting guide, see `references/troubleshooting.md`.

---

## 12. Useful Transactions and Tables

### Key Transactions

- **SDDLAR** - Display/repair DDL structures
- **RSRTS_ODP_DIS** - TransientProvider preview
- **RSRTS_QUERY_CHECK** - CDS query metadata validation
- **SE63** - Translation (EndUserText)
- **SE11** - ABAP Dictionary
- **SU21** - Authorization objects

### Important Tables

- **DDHEADANNO** - Header-level annotations
- **CDSVIEWANNOPOS** - CDS view header annotations
- **CDS_FIELD_ANNOTATION** - Field-level annotations
- **ABDOC_CDS_ANNOS** - SAP annotation definitions

### API Class

`CL_DD_DDL_ANNOTATION_SERVICE` - Programmatic annotation access:

- `get_annos()` - Get all annotations
- `get_label_4_element()` - Get @EndUserText.label

---

## Bundled Resources

### Reference Documentation

For detailed guidance, see the reference files in `references/`:

- `annotations-reference.md` - Complete annotation catalog
- `functions-reference.md` - All built-in functions with examples
- `associations-reference.md` - Associations and cardinality guide
- `access-control-reference.md` - DCL and authorization patterns
- `expressions-reference.md` - Expressions and operators
- `troubleshooting.md` - Common errors and solutions

### Templates

For templates, see `templates/`:

- `basic-view.md` - Standard CDS view template
- `parameterized-view.md` - View with input parameters
- `dcl-template.md` - Access control definition

---

## Source Documentation

**Update this skill by checking**:

- [https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/abencds.html](https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/abencds.html) (ABAP Cloud)
- [https://help.sap.com/doc/abapdocu_740_index_htm/7.40/en-US/index.htm](https://help.sap.com/doc/abapdocu_740_index_htm/7.40/en-US/index.htm) (7.40 Reference)
- [https://help.sap.com/docs/SAP_NETWEAVER_AS_ABAP_752/f2e545608079437ab165c105649b89db/7c078765ec6d4e6b88b71bdaf8a2bd9f.html](https://help.sap.com/docs/SAP_NETWEAVER_AS_ABAP_752/f2e545608079437ab165c105649b89db/7c078765ec6d4e6b88b71bdaf8a2bd9f.html) (NetWeaver 7.52 User Guide)
- [https://github.com/SAP-samples/abap-cheat-sheets](https://github.com/SAP-samples/abap-cheat-sheets)
- [https://github.com/SAP-samples/abap-cheat-sheets/blob/main/33_ABAP_Release_News.md](https://github.com/SAP-samples/abap-cheat-sheets/blob/main/33_ABAP_Release_News.md) (Release News)

**Last Verified**: 2026-04-02

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude

32.46%
按下载量换算343

Codex

32.07%
按下载量换算339

Cursor

18.39%
按下载量换算195

Gemini CLI

10.15%
按下载量换算107

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills