news 2026/9/28 13:59:17

S/4HANA 公共云开发环境接入:SAP GUI 切换到 ADT 的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
S/4HANA 公共云开发环境接入:SAP GUI 切换到 ADT 的完整指南

上个月我们项目组第一次拿到 S/4HANA Public Cloud 开发租户时,我下意识先在电脑里找安装包准备装 SAP GUI,结果发现这套老思路根本带不动:公共云压根不开放传统 GUI 的 RFC 端口,管理员丢过来的只是一串浏览器登录链接。也就是说,从这一天起,过去二十多年在 SE38、SE80 里写 ABAP 的习惯,必须整体切换到 Eclipse 里的 ADT(ABAP Development Tools)。这台开发租户就是后续所有定制扩展的主战场,不管你是做自定义报表、CDS 视图、RAP 业务对象,还是接 CPI、串 Workflow,全都得从 ADT 连接开始。

这篇文章就把我这次从零连上开发租户的完整过程、原理和踩坑记录整理出来。适合刚拿到公共云开发环境的 ABAP 顾问、准备从传统 ECC 转云端开发的同行,以及做 BTP 集成的同学参考。我会把每个关键步骤背后的“为什么”也讲清楚,避免你照着文档点完按钮,却不知道自己在做什么。

1. 为什么公共云开发必须“弃 GUI 投 ADT”

1.1 SAP GUI 在公共云里为什么行不通

传统 ECC 或 S/4HANA 私有化部署,我们早已习惯“SAP GUI + 事务码”这套组合。但 S/4HANA Public Cloud 的产品定位是标准化 SaaS,SAP 只会开放 HTTPS 协议相关端口,你根本摸不到背后的应用服务器。SAP GUI 走的是 DIAG/RFC 协议,连接依赖内网直连、负载均衡地址、SAProuter 这些基础设施,在云端租户里都是不可用的。就算你强行把 GUI 指向租户地址,也会发现连接被直接拒绝,这不是配置问题,是产品设计上就不允许。

我一开始还想着“能不能让管理员开个 RFC 权限”,结果发现公共云的权限模型里压根没有传统 SAP 用户的说法。用户来自 BTP Cockpit / IAS 身份提供商,认证走 SAML 或 OAuth 2.0,登录的是 Fiori Launchpad,不是 SAP GUI 登录框。所以从根上看,旧路已经堵死。

1.2 ADT 到底是什么,它在开发链路上扮演什么角色

ADT 全称 ABAP Development Tools,是 SAP 基于 Eclipse 平台打磨出来的 ABAP 开发环境。它不是另一个“SAP GUI 的替代品”,而是一套基于 Eclipse 插件体系的远程开发工具:Eclipse 装在你本机,代码编辑、语法高亮、重构这些活在本机完成;但真正创建 Package、激活对象、运行 ATC 检查、执行语法编译,都发生在远端那个 ABAP 系统里。

它能连公共云,核心原因是通信协议换成了 HTTPS 上的 RESTful 接口。ADT 通过 ABAP 后端暴露的 ADT 服务端点与系统交互,比如创建 CDS 视图、读取元数据、上传代码等动作,本质都是调 HTTP 接口。对比之下,SAP GUI 那种“实时对话式”协议不仅重,而且云租户根本不会开放。

所以可以简单理解为:ADT 是适配云世界的“开发客户端”,云租户是“服务端”。我们写的每一行代码,最终还是编译、激活、存储在云端的 ABAP 数据库里,只是中间交换信息的通道从 RFC 换成了 HTTPS。

1.3 开发模式的转变:ABAP Cloud

连接只是第一步,真正要适应的是 ABAP Cloud 这套开发规范。公共云开发租户里,你不能一上来就建 Z 表、写传统报表,然后再慢慢调优。SAP 强制要求使用公共接口和云兼容语法,最典型的三件套是 CDS 视图、RAP 行为定义(BDEF)、AMDP 数据库存储过程。

这三件套在传统 ECC 里也能用,但在公共云里成了“必须”。原因也简单:SAP 要保证每个客户扩展不会破坏标准功能,升级时才不会因自定义代码报错。你写的代码如果是直接基于内部表结构或非发布 API,ATC 检查会直接拦截。这个转变对老顾问来说是最难受的,但一旦适应,反而会发现自己写的代码结构更清晰、耦合更低。

2. 连接前我做了哪些准备

2.1 账号和角色:别等连不上才想起找管理员

很多同事拿到租户地址后第一件事就是输用户名密码,结果发现登录框都出不来。实际上,公共云开发租户不是“谁拿到地址谁就能登”,需要提前在 SAP BTP Cockpit 里维护用户,并分配足够的角色。

我这次踩了个典型的坑:团队里给的是“开发管理员”业务角色,但我在连接时新建 Package 一直报“对象创建权限不足”,后来查 Fiori Launchpad 的角色插件,才发现需要的是 SAP_BR_DEVELOPER 这类开发角色,同时还要有“自定义代码开发”“通信管理”“自定义字段”相关应用的使用权限。由于公共云的权限是通过业务角色勾选出来的,不是传 ID 直接分配的,所以建用户的时候要特别确认勾了哪些授权的业务目录。

另外一个长期教训:如果你还要访问“自定义代码迁移”这类工具,那至少要有“迁移专家”或“质量管理员”角色。连接 ADT 本身可能只需要基础登录权限,但“能连接”和“能开发”之间隔着一整套角色配置。

2.2 租户链接与服务端点

S/4HANA Public Cloud 开发租户的访问地址一般长这样:https://xxxxx.s4hana.ondemand.com,可能是生产租户,也可能是开发租户。有些团队会有多个租户:开发、测试、生产。刚开始很容易搞混,建议先在浏览器里登录 Fiori Launchpad,看系统标题或 URL 里的租户标识,确认自己手上的是不是开发租户。

ADT 连接时,服务端点默认是/sap/bc/adt,Eclipse 新建项目时会自动拼上。如果后面手工维护项目,一定不要漏掉这个路径。很多“连接失败”其实是把https://host直接填进去了,缺少/sap/bc/adt导致请求 404。

顺便说一句,BTP ABAP Environment(Steampunk)的连接地址同样用/sap/bc/adt。如果你既连 S/4HANA Cloud 又连 BTP ABAP Environment,注意区分项目名称,别在同一个 ADT 工作区里建了两个相似项目,回头一保存就改错系统。

2.3 安装 Eclipse 和 ADT 插件的正确姿势

ADT 不是独立安装包,而是 Eclipse 插件。第一步先下载 Eclipse。建议从 eclipse.org 下载 “Eclipse IDE for Enterprise Java and Web Developers”,这个版本对 Java Web 相关依赖支持比较全,也省得后面要装其他插件时互相打架。

下载前一定要确认 JDK 版本。Eclipse 对 JDK 版本要求挺挑剔,比如 2023-12 版本通常要求 JDK 17,2024-03 之后可能要求 JDK 21。你可以在命令行里执行java -version确认本机版本。如果本机装了多个 JDK,建议在 eclipse.ini 里显式指定-vm参数,指向你要用的 JDK 路径。

ADT 插件安装非常简单,Eclipse 菜单 Help -> Install New Software,Work with 填https://tools.hana.ondemand.com/latest,回车后勾选 “ABAP Development Tools”。安装过程中 Eclipse 会提示重启,重启之后,在 Window -> Perspective -> Open Perspective -> Other 里能看到 “ABAP” 相关透视图,就说明装好了。

这里有个细节:ADT 版本和 Eclipse 版本有兼容矩阵,SAP 官方在 Help Portal 和 wiki 里会列出每个 ADT 版本支持的 Eclipse 版本范围。不要图新装了 2024-12 的 Eclipse 就装最新 ADT,万一不在支持矩阵里,后面连接时会出现奇奇怪怪的错误。稳妥做法是装官方 release notes 里对应支持的版本组合。

2.4 网络体检:浏览器能开不代表 ADT 能连

连接前最好先做一轮网络检查。用浏览器直接访问租户地址,能打开登录页、能进入 Fiori Launchpad,说明网络链路基本通。但这里有个容易迷惑的点:S/4HANA Public Cloud 的 ADT 连接走 HTTPS 443 端口,而有些企业网络会做 TLS 流量检查或代理拦截,导致浏览器没问题、ADT 连不上。

如果公司有对外代理,通常要在 Eclipse 的eclipse.ini或“Window -> Preferences -> General -> Network Connections”里配置 Active Provider,并填好 HTTPS 代理。我遇到过一次浏览器能打开任何网页但 ADT 一直报连接超时,最后排查发现是 Eclipse 默认使用 “Direct” 连接,压根没走代理。

证书问题也要提前看。如果浏览器访问租户地址时左下角有锁图标,但企业电脑装了自己的根证书,而 Eclipse 运行的 JDK 没有信任这份根证书,ADT 就会抛SunCertPathBuilderException。这个问题在第 5 部分我会详细讲处理办法。

3. 第一次连接开发租户的完整过程

3.1 新建 ABAP Project

安装完插件、整理好账号后,就可以开始建立第一个 ADT 项目。打开 Eclipse,菜单 File -> New -> Other,在弹出的搜索框里输入 “ABAP Project”,选中后点击 Next。

这一步会问你系统信息,不同版本界面略有差异,但核心字段是一致的:系统 URL(也叫服务端点)。我在这步填的是https://xxxxx.s4hana.ondemand.com,注意不要填成 Fiori Launchpad 里某个应用的完整 URL,只填租户根地址。ADT 通常会在后台自动拼接/sap/bc/adt,如果你不放心,可以在 URL 末尾手动加上/sap/bc/adt。

填完后点击 Next/Finish,Eclipse 会尝试初始化项目,并弹出登录窗口。第一次连通常需要等大概 10 到 30 秒,因为 ADT 要从云端拉取包、DDIC 对象元数据、软件组件版本等一堆信息。如果等了几分钟还没反应,多半是网络、证书或账号问题。

3.2 登录认证选择:SAML 还是用户密码

登录窗口是 ADT 连接里最有“分裂感”的一步。老 ABAP 顾问习惯用 User/Password,但公共云租户一般默认走 SAML 2.0。

我实际推荐用 SAML 单点登录。理由是:S/4HANA Public Cloud 的用户体系挂在 IAS(Identity Authentication Service)上,如果直接用密码登录,密码策略、MFA、会话时长都由本地 ADT 对话窗管理,容易和云端的会话策略冲突;用 SAML 则可以让 Eclipse 自动打开浏览器,跳转到企业身份提供商完成认证,认证完自动回跳到 Eclipse,体验很像扫码登录。

有一次我因为测试环境开了 MFA,ADT 自带的密码登录框根本没法输入动态验证码,用 SAML 后浏览器弹出 MFA 页面,问题直接解决。所以如果你的企业配置了多因素认证,记得优先用 SAML 选项。如果弹框里没有 SAML,检查一下 ADT 插件版本是否过老,或者租户的身份联配是否配置完整。

3.3 连接成功后的第一眼:项目结构

认证通过后,Project Explorer 里会出现一个 ABAP Project 缩略节点,展开后你能看到 Package、ABAP Objects、CDS Views、Access Control 等目录。这个视角更像是“按 Repository 浏览代码”,而不是传统 GUI 的“按事务码找功能”。

这时候我建议先做两件事。第一,右键项目 -> Properties,把项目名改成容易辨识的名字(比如S4HC_DEV),不然下次同时开五个 ABAP Project,全是默认名字会让你崩溃。第二,确认项目连接状态正常,最直观的验证方式是在 Package 节点下能看到标准包列表,比如SAPL*、Z*等。

如果这个阶段 Package 树是空的,或者只显示一个光标转圈,多半是用户角色没配好,导致 ADT 无法读取包元数据。别急着删项目重建,先在 Fiori Launchpad 里确认用户能打开“自定义代码开发”相关应用,再回到 ADT 右键项目 -> Refresh。

3.4 用一个小 CDS 视图验证开发链路

连接成功不代表开发链路通。我最推荐的做法是立刻创建一个简单 CDS 视图,走通“创建 -> 激活 -> Data Preview”整条链路。既可以验证权限,又能提前发现云语法兼容问题。

右键你新建的 Z 包,选择 New -> Other ABAP Repository Object,搜索 “CDS Data Definition”,创建名为ZI_TEST_CONN的视图。入门模板可以直接基于公开接口I_Product做一个只读视图:

@AbapCatalog.sqlViewName: 'ZIS_TEST_CONN' @EndUserText.label: '连接测试视图' @AccessControl.authorizationCheck: #NOT_REQUIRED define view ZI_TEST_CONN as select from I_Product { key Product as ProductId, ProductType as ProductType, ProductGroup as ProductGroup }

保存后如果语法正确,ADT 会高亮显示“已激活”状态。这里有三个容易忽略的地方:

第一,公共云里不允许直接用MARA、MARC这种底层表名去 SELECT,编译器会直接报“表不可访问”,因为 ABAP Cloud 只开放公共 CDS 接口。代码里访问底层表是传统 ECC 的习惯,在云端必须戒掉。

第二,@AccessControl.authorizationCheck: #NOT_REQUIRED在公共云里能不能随便用?能,但尽量不要。这只是测试视角的临时做法,真实业务视图还是要配好权限控制,否则上线前一天你会发现标准数据保护检查直接拦截了你。

第三,激活后右键 CDS 视图节点,选择 Open With -> Data Preview。能正常出数据,说明 ADT 到云端租户的读链路完全正常。走到这一步,你的开发环境算是真正“能用了”。

4. 在 ADT 里干活的日常要点

4.1 从零搭一个 RAP 业务对象

RAP(ABAP RESTful Application Programming Model)是公共云开发的主要业务对象框架。第一次用 ADT 建 RAP 对象时,我建议跟这个顺序走:先建 CDS 根视图,再建行为定义(BDEF),再生成服务定义和服务绑定。

右键 Z 包,New -> Other ABAP Repository Object,搜索 “Business Object”,选好后下一步它会让你指定绑定视图。选择刚才建好的ZI_TEST_CONN,生成的 BO 会带默认的 BDEF 文件:

managed implementation in class zbp_i_test_conn unique; strict (2); define behavior for ZI_TEST_CONN alias TestConn { create; update; delete; }

这个模板是最典型的“托管实现”写法,翻译成人话就是:RAP 框架自动帮你处理创建、更新、删除的持久化逻辑,你只需要补业务规则和校验,不用手动写数据库操作。这正是公共云里“代码更简洁”的核心原因。

BDEF 生成后,还需要写一个行为实现类。ADT 会在你保存激活时自动生成类的骨架,双击类名就能跳转到实现位置。我在测试项目里加了一段简单的校验:

CLASS zbp_i_test_conn IMPLEMENTATION. METHOD validate_product. LOOP AT products INTO DATA(product). IF product-ProductType = 'SERV'. " DO NOTHING ENDIF. ENDLOOP. ENDMETHOD. ENDCLASS.

实际开发时校验逻辑会更复杂,但核心思路一致:所有业务操作都收敛在 RAP 里,不散落在一堆报表函数里。这也是 ATC 检查希望看到的架构。

4.2 运行 ATC 与代码合规检查

如果你是从传统 ABAP 转过来的,初期最痛苦的就是 ATC(ABAP Test Cockpit)检查。传统 ECC 里 ATC 过不了最多黄灯,你能继续激活;公共云不一样,ATC 错误默认直接视为激活失败,你压根没法走到“激活”那一步。

实际操作时,右键 CDS 视图或 ABAP 类,选择 Run As -> ABAP Test Cockpit,会弹出检查结果。公共云的 ATC 检查项里最关键的是“云兼容性”(Cloud Readiness)和“性能检查”。比如:你不能在 ABAP 里直接访问非发布数据库表,不能使用过时的SELECT *之类写法,不能使用PERFORM这种老式内联。每个 ATC 错误的注释里都会给出修改建议,基本不需要太多脑细胞去猜。

我个人的小技巧是:每写一个类或一个视图,就右键运行 ATC,而不是等整个项目写完再统一跑。原因很简单——云端激活失败往往是连环的,对象 A 依赖 B,B 没过检查,A 也会挂,反而更难定位。拆分成小步,每步只处理一个对象的报错,重复几次就会养成肌肉记忆。

4.3 公共云里的“传输请求”怎么理解

传统 ECC 里,我们保存代码后会弹出一个 Transport Request,手动维护到某个请求号里。公共云开发租户里这个过程被大幅简化了:在 ADT 中直接激活对象即可,对象会变成活动版本。但如果你想把这些对象从开发租户搬到测试或生产租户,就不像以前那样“释放请求”了。

公共云采用的是基于软件组件和“发布策略”的部署方式。开发租户中的代码归属于某个软件组件,当你完成验证后,通过“自定义代码迁移”或“发布”流程,将整个软件组件打包升级到目标租户。这个节奏通常由管理员控制,不是开发人员随手点两下就能推上线。

所以当你听到老同事问“这套代码挂在哪个请求下”时,可以解释一句:公共云里没有经典 SE09/SE10 的逻辑,你的关注点应该放在“软件组件版本”和“发布管道”上。这听上去复杂,但实际上比传统请求管理更省心,因为每个对象都自带变更历史,且打包发布时一致性由平台保证。

4.4 不用 SE16N,怎么查 SAP 常用表

我看群里不少人问“SAP 常用表”“MD07 界面”“MARA 库存”这类问题。在传统 ECC 里,直接 SE16N 查表是日常操作;但公共云里没有 SE16N,也没有直接的 SQL Console,怎么办?

我的做法比较务实:需要临时看数据时,直接创建一个只读 CDS 视图,挂到数据预览里查看。比如要看产品主数据,就建一个ZI_PRODUCT_SNAP视图,基于I_Product做简单映射,然后右键 Open With -> Data Preview。Data Preview 里能筛选、排序,还能导出表格,足够应付 90% 的临时取数需求。

如果你需要做跨模块的汇总,比如把 MD07 式的物料需求库存视图、销售订单、采购订单串起来,在传统 ECC 里通常是写一个 ALV 报表,访问一堆底表;在公共云里更合理是把 CDS 视图作为数据源,配合 RAP + Fiori Elements 做成一个合规的云端报表应用。这个思路也正好回应了“从采购到 PS 到销售的业务流程图怎么做”这类问题:别画在 PPT 里,用 CDS 把它建模成可查询的语义层,再展现在 Fiori Launhpad 上。

5. 我踩过的坑:问题排查实录

5.1 Could not connect:多半是服务端点

第一次连接失败时,错误提示是Could not connect to ...。排查思路相对固定:先确认租户 URL 能在浏览器打开,排除网络层问题;再确认 URL 末尾是否带/sap/bc/adt,多数情况下是漏了路径导致 404。

还有一个隐藏坑:你在浏览器里访问 https 成功,但项目里填的是http(不带 s),ADT 会尝试走 80 端口,自然失败。我见过有些同事从邮件里复制 URL 时把https丢了,Eclipse 自动判定为 http,结果折腾半天。检查项目属性里的 URL,确保是https://开头。

5.2 证书和 JDK 的坑

错误信息如果包含unable to find valid certification path,那就是 JDK 信任库问题。Eclipse 运行在 JDK 上,它启用的 JVM 必须信任目标服务器的 SSL 证书。

处理办法不复杂。先用浏览器把租户地址的证书导出成.cer文件,然后在命令行找到 Eclipse 使用的 JDK,执行:

keytool -importcert -alias s4hc_dev \ -file /path/to/s4hc.cer \ -keystore /path/to/jdk/lib/security/cacerts \ -storepass changeit

注意changeit是 JDK 默认密码,如果你本机改过,用你自己的密码。执行完重启 Eclipse 大概率就通了。这个坑的根源往往不是 SAP 证书本身,而是企业内部根证书没进 Eclipse 的 JVM。

5.3 登录失败但浏览器明明能进 Fiori

这是公共云连接让人很崩溃的一个问题:浏览器能正常打开 Fiori,但 ADT 登录时反复提示认证失败。

我遇到的情况基本两类。一类是 ADT 版本太老,对 IAS 的 SAML 重定向支持不好,更新 ADT 插件到 release notes 推荐版本即可解决。第二类是你浏览器里已经登录过一个 IAS 用户,而 ADT 里想用另一个用户登录,浏览器会优先复用旧会话,导致身份不一致。

解决办法也很土:先用无痕模式或关掉所有已打开的 IAS 会话,然后在 ADT 登录窗里重新走 SAML 流程,确保弹出的是新的登录界面。如果还不行,直接删掉 ADT 项目重建,通常能快速解决会话错乱问题。

5.4 右键没有 ABAP Cloud 项目选项

有些同事装完 ADT 后,新建 ABAP Project 时看不到 “ABAP Cloud” 类型,以为哪里装错了。其实公共云默认项目就是 ABAP Project,所谓 “ABAP Cloud” 更多是指 ABAP Cloud 开发模型,而不是独立的连接类型。

真正值得检查的是 ADT 插件版本:如果版本过老,新建项目向导里没有“SAP S/4HANA Cloud”或“ABAP Cloud” 相关的项目标记/能力选项,连接后很多云端专属操作(比如发布服务、OData 绑定时选择云模型)会缺失。解决办法是在 Eclipse 的 Help -> Check for Updates 里更新 ADT 到最新版本,而不是反复重装 Eclipse。

另外,如果你在 ADT 里应该看到 “Service Consumption Model” 或 “Communication Management” 相关节点而看不到,也基本是插件版本问题,不要浪费时间改本地配置。

5.5 对象状态灰显或权限不足

连接成功后,新建 Package、激活对象时如果提示not authorized或对象灰显,问题大概率出在角色。S/4HANA Public Cloud 对开发对象是有命名空间和包权限控制的,不是登录必能写。

我建议按这个顺序排查:第一,确认租户是否正确,开发账号连到的是不是开发租户而不是只读的生产租户;第二,在 Fiori Launchpad 中查看用户分配的业务角色里有没有SAP_BR_DEVELOPER,以及是否有“自定义代码开发”“质量经理”等应用权限;第三,如果确认角色存在,让管理员检查业务目录是否激活,因为角色即使分配,业务目录没发布也会出现权限计算不到的情况。

还有一个小坑:创建包时,公共云默认只允许客户在 Z 命名空间下创建。如果你手一抖填了YABC*之类的名字,部分租户可能不支持,直接报命名空间错误。按 SAP 推荐,客户扩展统一Z,测试代码也放到Z包下,后面审计也方便。

结尾:几句实际操作的体会

我个人整个接入过程最大的收获,不是学会了点 Eclipse 按钮,而是彻底调整了开发心智:云端开发不允许我再用“底层表 + 事务码”的思维去解业务问题,必须先找公开 CDS 接口,再包 RAP,最后发布服务。这个“三步走”框架打通之后,ADT 从“不知道怎么连”变成了“日常干活工具”。

如果你正准备接入这套环境,建议别急着写业务代码,先按我上面的顺序把角色、版本、证书、登录方式四项确认好,然后建一个空的 CDS 视图走通 Data Preview,再试着生成一个最小 RAP 对象。整个过程快的话一个下午就能跑通。跑通之后,哪怕后面接 CPI、搭 Workflow 审批,也都是在这个基础上按场景叠加功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 13:59:05

华为海思IC笔试备考指南:物理电路工艺三大方向全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 13:57:20

钻井钻具组合中转换接头的选型与现场应用要点

常年在井队的人,对这样一幕肯定不陌生:天还没亮,坡道上已经摆开一排长短不一的管具,外径从五英寸多点一路粗到八九英寸,有的管体滚烫还带着泥浆,接头处擦得锃亮。新来的钻工往往分不清哪根是钻杆、哪根是钻…

作者头像 李华
网站建设 2026/9/28 13:55:14

电气综合能源系统日前调度中的二阶锥优化建模与求解

前一阵帮课题组调试一个电气综合能源系统的日前优化调度模型,说实话,第一次从零开始建这个模型的时候我心里是有点发怵的。原因倒不是电力和天然气网络本身复杂,而是我怎么都绕不开那个让人头疼的“非线性”。一开始我直接按最常见的方式去写…

作者头像 李华
网站建设 2026/9/28 13:51:43

hindsight实战:LLM Agent记忆层设计与MCP Docker部署

1. 从"hindsight"说起:为什么Agent Memory突然成了LLM圈子的硬需求第一次看到"hindsight"这个词被拿来命名一个LLM Agent相关的项目,我脑子里蹦出来的不是词典释义,而是过去大半年在几个Agent项目里反复踩坑的画面——模…

作者头像 李华
网站建设 2026/9/28 13:49:41

基于CANoe搭建GB/T 27930-2023 BMS充电机通信仿真测试环境

做这行久了你会发现,真正考验BMS工程师和充电机测试工程师的,往往不是协议条文本身,而是“上哪儿找一套能稳定复现所有时序的联调环境”。上周我接到一个任务,要验证新BMS中GB/T 27930-2023协议栈的兼容性,现场没有充电…

作者头像 李华