【学习系列】SAP RAP 11:行为定义-Feature Control

前言

前一篇中介绍了关于行为定义中Determinations和Validations的概念,本篇将介绍行为定义中关于Feature Control的基本概念和内容。

正文

Feature Control(特征控制)可以以静态或者动态的方式来控制action是否可用(action灰掉无法点击),字段是否可编辑之类的操作,同时又分为实例特征控制和全局特征控制,和授权控制的概念类似,但又并不冲突,授权控制是从后端杜绝未经授权的操作,特征控制是从前端控制操作是否可以执行,比如用户虽然有删除单据的权限(Authorization Control授权控制),但是订单完成状态下则不允许点击删除按钮(Feature Control特征控制)。

Feature Control(特征控制)分为两大类:Instance Feature Control和Global Feature Control,看过之前授权控制的读者应该对这两种分类并不陌生,一个是基于实例数据的,一个是基于全局和单个实例数据无关的,下面分别介绍两种类型的使用方式。

Instance Feature Control

Instance Feature Control又分为Static Feature Control和Dynamic Feature Control:

Static Feat

SAP RAP实战:从CDS模型到Fiori Elements的一键翻译应用 在 SAP BTP / S/4HANA 的 ABAP 开发中,RAP 将数据模型、业务行为与 UI 呈现串联成一条声明式开发链路:先用 CDS 视图定义业务对象,再通过行为定义(BDEF)暴露动作,最后借助 OData V4 服务绑定和 Fiori Elements 注解自动生成可交互界面。这种“模型即边界”的工程方式,适合从传统表+程序+RFC 转向现代化开发的技术团队。以一个真实的一键翻译管理应用为例,从 CDS 接口视图/投影视图的字段设计、translate 动作的 EML 实现、feature c 阅读详情

相关推荐

RAP 业务对象授权定义全景:从 Authorization Master 到 Privileged Mode 的工程化实践

RAP 的授权体系,核心不是多了几个关键字,而是把权限控制从“散落在实现中的代码点”提升为“写在 BDEF 合同里的可治理能力”。用作为规则源头,用承接层级复用 (用 global 做门禁,用 instance 做数据维度,必要时两者协同 (用 authorization context 把授权对象清单显式化,降低角色交付摩擦 (用 privileged mode 解决受控的绕过需求,不用它当万能钥匙 (

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1442

在 SAP BTP ABAP Environment 上开启开发之旅:权限、ADT、ABAP Cloud Project 与 RAP 落地全攻略

ABAP云开发入门指南 本文介绍了从传统ABAP开发转向SAP BTP上ABAP云环境的关键步骤和注意事项。主要内容包括: 开发路径:从权限准备、安装ADT、创建ABAP Cloud Project到建立Package的管理流程,强调云端更严格的权限和对象治理机制。 权限管理:详细说明基于SAP_BR_DEVELOPER模板创建业务角色的方法,以及如何遵循最小权限原则进行生产环境配置,包括不同业务Catalog的选择策略。 工具安装:指导如何正确安装ADT插件,解决常见安装问题,并建议团队标准化配置。 项目

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1701

把权限做成产品级:RAP Behavior Pool 里的 Global、Instance 与 Precheck 授权实现全景拆解

摘要(148字): SAP RAP权限控制采用分层设计:全局授权(Global Authorization)拦截高风险操作(如禁用特定用户组的创建权限);预检(Precheck)验证输入数据合法性;实例授权(Instance Authorization)基于数据状态动态控制(如仅允许修改特定国家的差旅单)。实现集中在Behavior Pool的lhc_handler类中,通过before image获取旧值判断权限。与CDS访问控制配合形成完整权限体系,避免传统分散式鉴权带来的维护问题。分层处理显著提升OD

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1672

在 RAP 里把业务按钮做成一等公民:Actions 的建模、实现与 OData 暴露边界

摘要:RAP中的Action机制为非标准业务操作提供了结构化解决方案。它解决了用户在显示态直接执行状态变更、固定业务路径和批量处理等场景需求,避免了传统CRUD模式的局限性。Action分为实例级、静态和工厂三种类型,通过BDEF声明契约并在Behavior Pool中实现业务逻辑。其触发方式包括UI按钮、内部EML调用和OData服务,支持带参数输入和结果返回。该机制将业务语义与技术实现解耦,使复杂操作成为可复用、可审计的受控入口,显著提升了企业级应用的交互体验和流程可控性。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1688

让能力开关成为一等公民:RAP Global Feature Control 实战指南

摘要: SAP ABAP RAP模型的Global Feature Control机制将业务能力控制从UI层提升到业务对象层,确保所有消费端(如Fiori、外部系统)获得一致的权限判断。该机制适用于与实例无关的全局控制(如业务范围启用状态),通过BDL声明(features: global)并在Behavior Pool中实现FOR GLOBAL FEATURES方法,使用常量fc-o-enabled/disabled动态控制操作权限。在S/4HANA等场景中,此设计可避免UI误操作,统一多端逻辑,并通过配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 717

在 RAP 中用 Feature Control 做到按对象状态动态开关功能

摘要 SAP RAP 的 Feature Control 机制用于动态控制 UI 元素的可用性(如按钮、字段操作等),根据业务状态、数据完整性或用户权限实时调整交互逻辑。 Instance Feature Control:基于单条数据状态(如字段值)决定操作是否可用,例如仅在地址为空时启用“自动补全”按钮。 Global Feature Control:全局控制(如系统配置、用户角色),例如生产环境禁用删除功能。 关键点: 通过 Behavior Definition 声明动态特性(features : i

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 789

把 Feature Control 用到极致:RAP 场景下让 Fiori UI 该亮就亮、该灰就灰

文章摘要: ABAP RAP模型中的Feature Control是提升用户体验的关键能力,它通过后端业务规则动态控制UI元素(如按钮状态、字段属性)。分为静态(固定声明)和动态(基于实例状态计算)两种方式,支持字段级别(必填/只读)和操作级别(启用/禁用)控制。通过consumer hints机制,Fiori Elements自动呈现操作可行性,避免无效交互。示例展示了如何为状态为"BOOKED"的实例禁用特定action,体现状态驱动设计思想。该机制与授权结合,确保用户只能执行有效操

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1023

用 RAP 让 UI 自己长出来:Back End-Driven UI Features 的落地指南

摘要: SAP Fiori应用开发中,业务逻辑常被UI规则细节拖累,如字段状态、刷新逻辑等。RAP(ABAP RESTful编程模型)通过后端元数据驱动UI行为,减少前端代码量,提升一致性。核心优势包括: 标准化UI:Fiori Elements自动生成统一界面,减少手写代码 全栈闭环:CDS注解+行为定义同时控制服务和UI逻辑 高效验证:FEAP预览功能可早期验证模型和交互设计 关键实现方式: 注解驱动布局(列表/对象页结构) 动态特性控制(字段必填/只读逻辑) 行为实现类管理交互规则(如状态相关禁用)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2172

用 RAP 从零搭起一套可预览、可扩展、可测试的 Fiori 应用

本文介绍了使用ABAP RESTful Application Programming Model (RAP)构建业务对象的方法。RAP提供端到端的ABAP编程模型,适用于事务型应用和Web API开发,天然支持OData与SAP Fiori体验。文章以"设备维修工单"为例,展示了RAP的分层架构:数据模型层(CDS View Entity)、行为层(Behavior Definition)、投影层(Projection View)和服务层(Service Definition)。重点说

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1225

不盈之道在 SAP RAP 中的分寸感,少做一层,系统多活一年

摘要:老子「不欲盈」思想在SAP RAP开发中的实践启示:保持业务对象边界清晰,避免过度扩展。RAP框架虽提供丰富功能(CDS建模、行为定义等),但开发者需克制填充每个扩展点的冲动。核心原则包括:业务对象应聚焦核心实体而非成为"万物容器";行为定义要保持契约简洁;校验逻辑仅处理数据一致性而非业务流程。这种克制设计虽初期看似功能较少,却能确保系统长期稳定性和可扩展性,体现"少即是多"的架构智慧。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2086

渊兮而不满,RAP 业务对象如何在深处安顿复杂性

SAP RAP应用开发的真正挑战在于业务对象建模与工程规范。老子"挫其锐,解其纷"的哲学思想恰能指导RAP开发:通过行为定义(BDEF)将业务逻辑结构化,以根对象为核心建立稳定秩序,将复杂功能分解为validation、determination等独立模块。RAP强调声明式设计,通过composition树状层级管理对象关系,利用strict语法和projection机制控制功能暴露范围,使系统既保持灵活性又避免过度自由带来的维护问题。这种"渊兮"的设计理念让业务对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4163

用 Projection Behavior Definition 把 RAP 业务对象变成真正可交付的服务契约

摘要: SAP RAP中的Projection Behavior Definition(投影行为定义)是关键的服务暴露层,负责将底层业务对象(BO)的能力按需开放给不同服务消费者。它通过use语法复用底层BO的标准操作(CRUD)、actions、functions等,并可重命名对外接口。核心功能包括:控制ETag并发检查、筛选可用的操作(如只读/可编辑服务)、暴露特定业务动作(如审批/计算)及组合创建权限(create_by_association)。不同于基础行为定义,投影层不实现逻辑,而是作为API契

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1960

把宠辱若惊写进 SAP RAP 行为模型,得失之间仍守住业务对象的分寸

我在看 SAP ABAP RESTful Application Programming Model 的时候,经常会想到《道德经》这一句,「宠为下,得之若惊,失之若惊,是谓宠辱若惊」。这句话不是劝人麻木,也不是劝人什么都不争,而是在提醒人,凡是把外来的宠爱、评价、授权、便利当成安身立命之处,心就会被得失牵着走。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1078

在 RAP 里用 Instance Feature Control 精准管控字段、操作与动作:把能不能点这件事做成业务规则

define behavior for ZI_SO_TP alias SalesOrder persistent table zso_hdr lock master etag master LastChangedAt // 静态字段控制 field ( readonly ) CreatedAt, CreatedBy, LastChangedAt; field ( mandatory:create ) Customer, Currency; field ( readonly:update ) OrderTyp

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 783

太上不知有之,RAP 开发里让框架安静成事的治理之道

摘要:老子"太上,不知有之"的治理思想与SAP RAP开发理念高度契合。优秀的RAP应用应如水般自然融入业务流程,让用户感受不到框架存在,却能顺畅完成采购申请、差旅报销等业务操作。RAP通过分层设计(CDS视图、行为定义、服务暴露)将复杂性下沉,使业务规则通过注解、权限控制等机制自然生效,而非依赖前端硬编码。开发团队应避免将逻辑过度集中在行为池中,而应善用校验、特征控制等原生功能,让系统在不同业务阶段(草稿、正式保存、审批)自动适配相应规则。这种"无为而治"的架构设计

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1798

在大型 SAP RAP 项目中用 Group 拆分行为实现:让多人并行开发不再互相卡住

摘要:SAP S/4HANA RAP开发中,大型业务对象常因Behavior Pool单点瓶颈导致团队协作效率低下。通过Behavior Definition Language的Group机制,可将业务逻辑拆分至不同实现类,实现: 技术解耦 - 支持多人并行开发不同功能模块(如CUD/校验/特性控制) 语义清晰 - 按业务领域(主数据/工单/审批流)划分实现边界 类型适配 - Managed/Unmanaged场景差异处理(Unmanaged需显式分配标准操作) 典型应用场景包括:制造行业设备维保BO中,将

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 319

上善若水,写 SAP RAP 也要写出一套不争而成的业务对象

摘要: 《道德经》中「上善若水」的哲学思想与 SAP RAP 开发理念高度契合。RAP 框架倡导代码应如水般顺应业务需求流动,而非对抗系统架构。其核心在于:1) 业务对象建模需贴近实体本质,通过 CDS 模型和行为定义构建统一水系;2) Behavior Definition 如水利工程般划定业务边界,通过声明式语法规范事务流;3) 逻辑实现需各司其职,验证、决策与动作应如支流般分工明确。RAP 的价值正在于将传统 ABAP 开发中分散的事务逻辑,转化为符合云原生标准的标准化流程,实现「利万物而不争」的技术

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 857

为天下谷,常德乃足,复归于朴,写给 SAP RAP 开发者的一篇工程札记

摘要 在SAP ABAP RAP开发中,业务逻辑不应堆砌在单一方法中,而应遵循"为天下谷"的哲学,将模型、行为和服务分层设计,确保系统稳定且可扩展。RAP的核心在于通过CDS定义业务对象的结构(如采购申请的root/child entity),并通过行为定义(validation、determination等)封装业务规则,避免代码分散在高耦合的实现中。示例展示了审批逻辑的分层处理(如状态校验与提交动作分离),强调RAP框架提供的并发控制、草稿模式等企业级能力应合理运用,使业务对象成为"低处容纳水流"的稳定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 755

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2015

python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力

Python的GUI简易界面设计案例测测你的反应力作为初次接触代码编程的你,是不是觉得Python程序除了“码”就是“字”即使是有趣的程序除了烧烧自己的脑,也吸引不到更多人的兴趣,用户体验值接近于0?那你可冤枉了Python,他可是人工智能界的编程语言大咖。今天这个游戏设计就先带领大家,简单体验一下,如何让Python程序图形化。一起来吧!设计我们的小游戏游戏设计思路:电脑随机出...

weixin_34214135的博客 1871

基于人脸识别的智能门禁系统设计

在当前的技术背景下,本文精心打造了一款前沿的视频识别门禁控制系统。在进行调试的时候使用的软件是Keil,编写完代码,生成文件后用下载器下载到单片机上,就能够进行程序的调试了,本次设计实现了预先设定的目标,达到了预期的效果。本次设计的人脸识别的门禁控制系统其硬件部分是以STM32F103C8T6为核心的单片机,采用0V2640摄像头对人员的人脸识别,采用矩阵按键对系统的操作以及密码的输入,使用蜂鸣器来作为报警模块,开门装置是电子锁控制,显示设备采用OLED液晶显示,无线模块在一番思索后选择了蓝牙模块传输。

2401_86147581的博客 1295

105. replace( )函数

【目录】

weixin_63986098的博客 1万+

利用Spm12进行fMRI数据分析:从预处理到结果解读的完整指南

本文提供了利用SPM12进行fMRI数据分析的完整流程指南,涵盖从数据预处理、统计建模到结果解读的全过程。详细介绍了在MATLAB环境下使用SPM12图形界面完成头动矫正、空间标准化等关键步骤的操作方法与避坑技巧,帮助神经科学研究者和心理学研究者高效处理功能磁共振成像数据并产出可靠结果。

weixin_29079671的博客 451

【网络与爬虫 41】TLS指纹伪造技术深度解析:ja3、ja4反检测与绕过策略

TLS指纹是现代反爬虫系统的重要检测手段,通过分析客户端TLS握手特征来识别爬虫。本文将深入解析ja3、ja4等TLS指纹技术原理,详细介绍指纹伪造和绕过策略,通过实际代码示例和工具使用,帮助开发者掌握TLS指纹反检测技术,构建更隐蔽的网络爬虫系统。

熵数实验室 1万+

基于 Qt C++ 开发一套西门子量子测量系统的控制与数据采集平台

sensorIdCombo->addItems({"QTS-100-001 (温度)", "QPG-200-001 (压力)", "QDS-300-001 (位移)"});precisionTable->setHorizontalHeaderLabels({"传感器ID", "类型", "标称精度", "实际精度", "校准状态"});QWidget *dispWidget = createSensorWidget("量子位移", "mm (±1μm)", 50.0, 0.001);// 传感器状态更新。

寒寒豆豆软件公司的博客 253

手把手教你实现RK3588的Secure Boot:密钥烧录与镜像签名验证

摘要:本文详细介绍了瑞芯微RK3588平台下SecureBoot的密钥烧录与镜像签名验证实现方法。首先阐述了SecureBoot的工作原理、安全优势及其在RK3588智能安防、工业控制等场景中的重要作用。接着分步骤指导了硬件准备、软件工具配置、密钥对生成等准备工作,并详细说明了进入烧录模式、工具选择配置、密钥烧录执行等关键操作流程。文章还解析了镜像签名生成与验证机制,包括启动验证流程和常见故障处理方法。最后对SecureBoot在RK3588设备中的未来应用进行了展望,强调其与TrustZone等安全技术融

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2043

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 【学习系列】SAP RAP 10:行为定义-Determinations和Validations
下一篇: 【学习系列】SAP RAP 12:行为定义-Side Effects
DeveloperMrMeng
博客等级 码龄5年 1767粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeveloperMrMeng

觉得有用的佛系投币哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值