Loading...
Loading...
Compare original and translation side by side
| Setting | Default | Rationale |
|---|---|---|
| Object type | Auto-detect via SAPSearch | Don't make user look up the type |
| Depth | Overview | Start high-level, user can ask for detail |
| ATC | No | Only run if user asks about code quality |
| Dependencies | Fetch via SAPContext | Always get the dependency graph |
| BDEF handler class | Discover from | The behavior logic lives in the bound pool class |
| 设置项 | 默认值 | 理由 |
|---|---|---|
| 对象类型 | 通过SAPSearch自动检测 | 无需用户自行查找类型 |
| 解释深度 | 概览 | 先从高层面开始,用户可按需请求细节 |
| ATC分析 | 否 | 仅当用户询问代码质量时才运行 |
| 依赖关系 | 通过SAPContext获取 | 始终获取依赖图谱 |
| BDEF处理类 | 从 | 行为逻辑存于绑定池类中 |
ZCL_TRAVEL_HANDLERZI_SALESORDERZ_REPORT_POSTINGZCL_TRAVEL_HANDLERZI_SALESORDERZ_REPORT_POSTINGSAPSearch(query="<object_name>")SAPSearch(query="<object_name>")SAPRead(type="<type>", name="<object_name>")SAPRead(type="<type>", name="<object_name>")SAPRead(type="CLAS", name="<class_name>", method="*")SAPRead(type="CLAS", name="<class_name>", method="*")SAPRead(type="DDLS", name="<entity_name>", include="elements")SAPRead(type="DDLS", name="<entity_name>", include="elements")SAPRead(type="CLAS", name="<class>", include="testclasses")SAPRead(type="BDEF", name="<entity>")SAPRead(type="DCLS", name="<entity>_DCL")SAPRead(type="DDLX", name="<entity>")SAPRead(type="DDLS", name="<entity>")SAPRead(type="CLAS", name="<class>", include="testclasses")SAPRead(type="BDEF", name="<entity>")SAPRead(type="DCLS", name="<entity>_DCL")SAPRead(type="DDLX", name="<entity>")SAPRead(type="DDLS", name="<entity>")SAPRead(type="BDEF", name="<bdef_name>")managedunmanagedprojectionabstractinterfacestrict ( 2 )with draftwith collaborative draft... implementation in class <ZBP_NAME> unique;<ZBP_NAME>implementation\s+in\s+class\s+(\S+)projection;use ...SAPRead(type="CLAS", name="<ZBP_NAME>", include="implementations")include="definitions"lhc_<alias>FOR DETERMINEFOR VALIDATEFOR MODIFYSAPRead(type="DDLS", name="<root_cds>", include="elements")define behavior for <root_cds> alias <alias>use create; use update; use action ...SAPRead(type="BDEF", name="<bdef_name>")managedunmanagedprojectionabstractinterfacestrict ( 2 )with draftwith collaborative draft... implementation in class <ZBP_NAME> unique;implementation\s+in\s+class\s+(\S+)<ZBP_NAME>projection;use ...SAPRead(type="CLAS", name="<ZBP_NAME>", include="implementations")include="definitions"lhc_<alias>FOR DETERMINEFOR VALIDATEFOR MODIFYSAPRead(type="DDLS", name="<root_cds>", include="elements")define behavior for <root_cds> alias <alias>use create; use update; use action ...TOPUXXFUNCTION … ENDFUNCTIONLZ<grp>U01/U02…UXX…O…/…I…expand_includesSAPRead(type="FUGR", name="<group>", expand_includes=true)=== <name> ===expand_includesScreen flow is not available. Dynpros (screens) and GUI status (CUA) are not exposed by ADT over REST — they are SAPGUI-only (SE51/SE41), and the endpoints return 404. So for a FUGR you can explain the business purpose, function-module responsibilities, and flow logic from the code, but not the screen layout / PBO-PAI screen sequence beyond what the PBO/PAI module code reveals. State this limitation if the user asks about the screen flow specifically.
TOPUXXFUNCTION … ENDFUNCTIONUXXLZ<grp>U01/U02……O…/…I…expand_includesSAPRead(type="FUGR", name="<group>", expand_includes=true)=== <name> ===expand_includes屏幕流不可用:Dynpros(屏幕)和GUI状态(CUA)无法通过ADT REST接口暴露——它们仅支持SAPGUI(SE51/SE41),接口会返回404。因此,针对FUGR,你可以从代码中解释业务用途、函数模块职责及流程逻辑,但无法解释屏幕布局/PBO-PAI屏幕序列(除非PBO/PAI模块代码中有相关体现)。若用户明确询问屏幕流,需告知此限制。
SAPContext(type="<type>", name="<object_name>")depth=2SAPContext(type="<type>", name="<object_name>", depth=2)SAPContextCLASINTFPROGFUNCDDLSCLASINTFDDLSBDEFSAPContext(action="impact", name="<root_cds>")action="impact"SAPContext(type="CLAS", name="<ZBP_NAME>")SAPContext(type="<type>", name="<object_name>")depth=2SAPContext(type="<type>", name="<object_name>", depth=2)SAPContextCLASINTFPROGFUNCDDLSCLASINTFDDLSBDEFSAPContext(action="impact", name="<root_cds>")action="impact"SAPContext(type="CLAS", name="<ZBP_NAME>")SAPDiagnose(action="atc", type="<type>", name="<object_name>")SAPDiagnose(action="atc", type="<type>", name="<object_name>", variant="<variant>")hasQuickfixtrueSAPDiagnose(action="atc", type="<type>", name="<object_name>")SAPDiagnose(action="atc", type="<type>", name="<object_name>", variant="<variant>")hasQuickfixtruesearch("<class_or_function_name> ABAP documentation")search("<checkTitle> simplification item S/4HANA")sap_notes_search(q="<finding_or_api_name>")search("<class_or_function_name> ABAP documentation")search("<checkTitle> simplification item S/4HANA")sap_notes_search(q="<finding_or_api_name>")strict(2)with draftdefine behavior for <CDS> alias <alias>lock masterlock dependentauthorization masterauthorization dependentetagcreateupdatedeleteassociation _X { create; }EditActivateDiscardResumePreparedetermination <name> on save|on modifyFOR DETERMINEvalidation <name> on saveFOR VALIDATEaction <name>staticfactoryparameterresultFOR MODIFYFOR READside effects { ... }field ( readonly | mandatory | numbering : managed )mapping for <table>use ...strict(2)with draftdefine behavior for <CDS> alias <alias>lock masterlock dependentauthorization masterauthorization dependentetagcreateupdatedeleteassociation _X { create; }EditActivateDiscardResumePreparedetermination <name> on save|on modifyFOR DETERMINEvalidation <name> on saveFOR VALIDATEaction <name>staticfactoryparameterresultFOR MODIFYFOR READside effects { ... }field ( readonly | mandatory | numbering : managed )mapping for <table>use ...DCLSauthorization masterauthorization dependent byDCLSauthorization masterauthorization dependent bySAPDiagnose(action="quickfix")apply_quickfixSAPWrite(action="scaffold_rap_handlers")SAPDiagnose(action="quickfix")apply_quickfixSAPWrite(action="scaffold_rap_handlers")| Error | Cause | Fix |
|---|---|---|
| Object not found | Name misspelled or object doesn't exist | Use SAPSearch to find similar names |
| SAPContext fails | Object type not supported for dependency analysis | Fall back to manual reads of key dependencies found in source |
| ATC check returns no findings | No ATC configuration or clean code | Inform user — no findings is good news |
| ATC variant not found | Specified variant doesn't exist on system | Run default ATC, list available variants |
| Method listing empty | Object is not a class or has no methods | Skip method listing, explain from source only |
| Source is empty | Object exists but has no source (e.g., generated proxy) | Inform user, try reading related objects instead |
| BDEF isn't a supported SAPContext type | Run |
| BDEF pool class not found | | Skip the class read; explain from the projection's |
| 错误 | 原因 | 修复方案 |
|---|---|---|
| 对象未找到 | 名称拼写错误或对象不存在 | 使用SAPSearch查找相似名称 |
| SAPContext调用失败 | 对象类型不支持依赖分析 | 退而求其次,手动读取源代码中识别出的关键依赖 |
| ATC检查无结果 | 无ATC配置或代码无问题 | 告知用户——无检测结果是好消息 |
| ATC变体未找到 | 指定的变体在系统中不存在 | 运行默认ATC,列出可用变体 |
| 方法列表为空 | 对象不是类或无方法 | 跳过方法列表,仅从源代码进行解释 |
| 源代码为空 | 对象存在但无源代码(例如生成的代理) | 告知用户,尝试读取关联对象 |
| BDEF不是SAPContext支持的类型 | 对绑定的CDS根实体执行 |
| BDEF池类未找到 | | 跳过类读取;从投影的 |