LPD_CUST完全指南:Fiori Launchpad导航配置与避坑

发布时间:2026/9/10 0:10:58

LPD_CUST完全指南:Fiori Launchpad导航配置与避坑 前几年第一次在 SPRO 里看到 LPD_CUST 这个名字我第一反应是这又是哪个模块的配置表。后来做 SAP Fiori LaunchpadFLP项目的次数多了才意识到这张表才是很多“导航目标”问题的真正源头。不管你是想让一个外部网页在 FLP 里能点开还是想把 Web Dynpro 老应用包装成 Fiori 入口又或者是用户反馈“换个设备就看不到入口”最后大概率都要回到 LPD_CUST 的字段级调试上。这篇就把 LPD_CUST 从表结构、配置步骤到常见坑一次讲清楚适合刚接手 Fiori 定制项目的顾问也适合被业务方追问“为什么我配了没反应”的 ABAP 开发。1. 先搞清楚 LPD_CUST 是干嘛的一张表背后的导航机制1.1 名字里的信息Launchpad Customizing 从哪来LPD_CUST 全称 Launchpad Customizing意思是“启动板自定义”。它在 SAP NetWeaver 的 Fiori 体系里承担一个朴素但重要的角色把导航目标Navigation Target维护到一张可被 FLP 运行时读取的配置表里。你可以把它理解成一个“总机接线表”——用户在前端点某个入口FLP 根据这张表去决定跳到哪里、给谁看、用什么设备打开。为什么会有这张表Fiori 这套东西刚出来的时候SAP 希望大家用“语义对象 动作”的方式来描述导航意图而不是直接拿 URL 写死。一个入口的完整描述是语义对象Semantic Object 动作Action组合成 Intent比如ZOrder-Display。LPD_CUST 就是用来维护这套“意图 落地地址 可见性”映射关系的表。换句话说它比 Launchpad Designer 更早是 FLP 定制能力的老前辈但到现在仍然被大量项目沿用。1.2 LPD_CUST 和 Standard Launchpad、Custom Launchpad 的关系很多同事在这里栽过跟头所以先把这个关系讲清楚。Fiori Launchpad 有两种展示视图Standard Launchpad 和 Custom Launchpad。Standard Launchpad 就是我们通常看到的磁贴tile界面它基于目录Catalog和分组Group模型配置存放在/UI2/开头的一系列表里通过 Launchpad Designer 或 Fiori 管理员 App 维护。Custom Launchpad 则是一个类似经典 SAP Easy Access 的树形菜单视图。用户在 FLP 右上角可以对视图做切换而 Custom Launchpad 的目录树正是由 LPD_CUST 驱动。每条 LPD_CUST 记录可以是一个文件夹也可以是一个具体导航目标通过 PARENT 字段挂接父节点就形成了一棵树。这解释了一个常见现象业务方说“我在 SPRO 里配好了Fiori 前端怎么看不到”。答案往往是——你看的是 Standard Launchpad而 LPD_CUST 的入口在 Custom Launchpad 视图里或者你配了 Custom Launchpad 的文件夹但用户角色根本没触发该条记录的可见性。两种视图差异是 LPD_CUST 调试时第一件要确认的事。1.3 核心字段一次讲透我平时维护 LPD_CUST 主要通过 SM30 输入 V_LPD_CUST 这个维护视图。不同 NetWeaver 版本显示的字段会略有差异但核心逻辑基本一致。下表列出项目里最常用、也是排查时最先会盯住的字段。字段作用填法/注意点SEQNR记录序号同一 Client 内唯一建议用 1000、2000 这样的步长后续插入记录不用大改FOLDER是否文件夹X 是文件夹本身不打开页面只作为树节点容器PARENT父节点 SEQNR空表示根节点子节点填父文件夹的 SEQNRSEMANTIC_OBJECT语义对象建议大写开头如 ZZMaterial自定义对象要先注册SEMANTIC_ACTION动作如 Display、Create、Launch与语义对象一起定位意图INTENT意图即 语义对象-动作FLP 解析导航时按这个值匹配DEVICE_TYPE设备类型Desktop/Tablet/Phone注意多端覆盖ROLES可见角色过滤留空对所有用户可见填写角色关键字做白名单ITEM_TEXT节点/入口显示文本用户看到的名称要短、可辨识URL实际跳转地址外部地址带协议内部路径注意编码ICON图标名配合前端图标库使用可选DESCRIPTION描述给顾问自己看的说明不影响运行这里最容易被忽略的是 DEVICE_TYPE。很多项目只在 Desktop 上配了入口结果同事用平板开 FLP发现某个菜单没了查半天最后发现是设备类型没配。建议如果业务上不区分设备就三种都配上或者直接确认当前版本支持通配符。字段里还有一层业务逻辑SEMANTIC_OBJECT 和 SEMANTIC_ACTION 是“意图层”URL 是“落地层”。FLP 导航时先拿 INTENT 找入口再按设备类型挑 URL。意图相同但 URL 不同是完全允许的这正是设备分流的基础。表格里 FOLDER 和 PARENT 则决定了入口在树上的位置配合 ROLES 就能做到“不同角色看到不同层级树”。2. 什么场景下才值得动 LPD_CUST选型思路和典型使用场景2.1 场景一外部页面、老系统、Web Dynpro 快速接入 FLP最常见的一个需求公司有一个自研门户页面、一套老 Web Dynpro 应用或者另一个系统比如 BI 报表、客户门户的 URL希望能在 Fiori Launchpad 里给用户一个入口点开就在新页面看到它。这种场景不需要做复杂的 Fiori 应用开发也不需要把页面做成 OData 服务用 LPD_CUST 配一条记录加一个图标就够了。我在一个制造客户那边干过类似的事他们把车间的 MES 看板页面直接嵌到 FLP 里用的就是 LPD_CUST。配置上只做了三件事定语义对象 ZZMesBoard动作 LaunchURL 填车间看板的 HTTPS 地址角色限定到 MES 相关工厂角色。从提出需求到上线不到半小时这比走一遍 Fiori 应用发布流程省太多了。为什么不用 Launchpad Designer 的“外部链接”方案也可以但 LPD_CUST 在角色条件控制和树形组织上更接近业务习惯。尤其当外部页面数量多、需要按模块归类时用 PARENT 搭文件夹比做一堆 Catalog、Group 再来回调样式要直观。2.2 场景二同一入口按设备分流到不同地址移动场景下一套桌面端页面直接甩给手机用户体验基本是灾难。LPD_CUST 的 DEVICE_TYPE 字段就是为这个准备的。可以给同一个 INTENT 维护多条记录分别指定 Desktop、Tablet、Phone 的 URL。桌面端打开完整 BI 报表手机端打开同一个报表的移动版地址。这里有个实操细节一旦你打算做设备分流URL 之间最好保持“同一业务功能、不同终端体验”的关系而不是完全不同的内容。否则用户从手机切到电脑发现入口还在但内容对不上业务方会认为导航目标配置有 bug。我习惯在 DESCRIPTION 里写清楚每个设备 URL 对应的版本避免后任顾问接手时靠猜。2.3 场景三旧菜单树迁移 / 轻量级“类 Easy Access”导航有些客户是从经典 SAP GUI 界面迁移过来的用户习惯了树形菜单点开“生产制造”下面是一排事务码入口。FLP 的标准磁贴界面虽然好看但老用户不见得买账。Custom Launchpad 配合 LPD_CUST 的文件夹层级能快速复刻这种树形体验而且角色过滤玩熟了以后比 PFCG 菜单还容易维护。我在项目里见过最狠的用法是把 SAP 标准事务码比如 MM03、ME23N也用 LPD_CUST 包了一层入口文本写成业务人员看得懂的“查询物料”“查看采购订单”URL 指向事务码对应的 GUI 启动地址或 ICF 服务。这样既保住了业务既有习惯又用 Fiori 外壳统一了入口。注意这种用法本质上是“把旧入口换个壳”不是标准 Fiori 应用后期做 S/4 迁移时要评估是否要替换成新一代应用。2.4 什么时候别用它与 Launchpad Designer 的边界LPD_CUST 再好用也不是万能。如果你要做的入口需要运行时动态参数比如用户点一个订单带着订单号跳到另一个 AppApp 到 App 的跨应用导航、参数回传复杂的目标映射Target Mapping按条件选不同应用地址在 Standard Launchpad 上以磁贴方式呈现并参与目录/分组管理那就老老实实用 Launchpad Designer 做 Tile Target Mapping。LPD_CUST 适合的定位是“轻量、静态、以角色和设备为维度”的导航入口。选型错误是 LPD_CUST 项目里最隐蔽的风险因为它表面看起来什么都能配配到后面发现无法表达业务动态跳转需求返工成本比一开始就用对方案高得多。3. 实操从计划到落地的完整配置步骤3.1 配置前先定三件事意图、命名规范、入库入口动手前先花十分钟做三个约定能省掉后面大量返工。第一语义对象和动作的命名。自开发对象建议遵循 Z 前缀比如 ZMaterial、ZBpmTask。动作尽量用标准英文动词Display、Create、Launch、Manage。命名一旦上线后面改起来会牵连角色、菜单、甚至已打开的 FLP 缓存所以第一次就定严谨。第二SEQNR 规划。虽然字段只是数字序号但层级树的可维护性全靠它。我习惯按模块分区间1000 起步做根文件夹1100 到 1999 放该模块下的入口2000 开始另一个模块。中间留出冗余下次插入不用改别人序号。第三确定维护入口。SPRO 路径一般可以在 SAP NetWeaver 相关章节里找到 Fiori Launchpad 的 Customizing 节点具体活动名称是 Define Navigation Targets 一类但实际项目里大部分人直接用 SM30 视图 V_LPD_CUST 维护。两种方式本质一样SPRO 的好处是带了文档链接SM30 的好处是快。我推荐日常用 SM30上线前用 SPRO 过一遍配置审查。3.2 用 SM30 维护 V_LPD_CUST字段填写与层级设计现在演示一个完整例子。假设要加一个模块工厂能耗看板外部页面。规划如下根文件夹SEQNR1000FOLDERXITEM_TEXT生产运营ROLES 留空DEVICE_TYPE 三种都配子入口SEQNR1010FOLDER 空PARENT1000SEMANTIC_OBJECTZEnergySEMANTIC_ACTIONLaunchINTENTZEnergy-LaunchITEM_TEXT能耗看板URLhttps://ies.example.com/board/energyROLESZ_ENERGY_VIEWERDEVICE_TYPE 三种都配。操作步骤进入 SM30输入 V_LPD_CUST点 Maintain维护如果系统提示弹窗或维护对话框按提示进入表内容维护界面新建一条记录按上面字段填保存前确认 Client 是你希望生效的逻辑层比如开发/生产配置请求保存后系统会要求生成/更新一个配置请求Customizing Request按公司传输规则填写
延伸阅读

更多相关文章

2026/9/10 0:10:58

Power Automate Desktop实现小程序图片批量保存

Power Automate Desktop 这名字听起来很唬人,但说白了就是一个能替你在电脑上“自动点鼠标、自动敲键盘”的机器人。我做微信小程序批量保存图片的需求,是因为帮一个做电商运营的朋友整理商品素材,他在小程序里有一百多张详情页截图要另存到本…

2026/9/10 0:10:58

Qt雷达图与卫星图叠加实现:基于QCustomPlot的态势显示方案

简介:一套基于Qt 5.9的雷达图(卫星图)与余晖扫描功能实现,面向有一定C基础的Qt客户端开发者,适用于需要展示多变量对比、模拟雷达扫描效果的界面场景。压缩包共53个文件、约1.62MB,以cpp/h源码、pro工程文件…

2026/9/10 0:10:58

在AOSP源码树中集成ntfs-3g,实现Android原生读写NTFS磁盘

简介:面向Android平台系统开发者和ROM定制工程师,这份ntfs-3g移植源码包可直接放入external目录后使用mm编译,用于让设备原生挂载NTFS格式的TF卡、U盘及SATA硬盘,解决默认系统无法识别NTFS存储的痛点。资源共300个文件&#xff0c…

2026/9/10 0:56:02

Linux 内核 Ramoops 持久化 Oops/Panic 日志机制完全指南

Linux 内核 Ramoops 持久化 Oops/Panic 日志机制完全指南 【免费下载链接】linux Linux kernel source tree 项目地址: https://gitcode.com/GitHub_Trending/li/linux 本指南系统讲解 Linux 内核中 ramoops(RAM Oops/Panic logger)的完整原理与实…

2026/9/10 0:56:02

二关节机械臂计算力矩控制Simulink仿真程序详解

简介:面向机器人控制学习者与工程技术人员的二关节机械臂计算力矩控制Simulink仿真程序,基于逆动力学模型实时求解关节驱动力矩,实现末端轨迹的高精度跟踪控制。压缩包一共包含11个文件,其中有2个slx仿真模型(分别对应…

2026/9/10 0:51:02

CoppeliaSim + Python实现差速小车目标追踪:从环境搭建到PID调参

简介:Vrep/CoppeliaSim与Python结合的小车目标点追踪项目,面向机器人仿真学习者和需要快速上手的开发者,提供了一套可直接运行的仿真控制示例。压缩包共17个文件,大小343KB,涵盖Python控制脚本、CoppeliaSim场景文件、…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码