SAP + AI 第3节 PS3大对象一些典型注解
SAP AI 第3节 PS3大对象一些典型注解PS模块三大CDS对象进阶知识点逐项讲解·源文件对照版知识点1WBS层级结构机制知识点2状态管理机制知识点3延期/逾期天数计算知识点4货币、单位、数量、日历、文本等通用注解知识点5外键关联注解说明知识点6辅助视图解耦模式知识点7多表JOIN与字段来源知识点8CASE表达式与投影逻辑知识点9扩展视图E_机制知识点10语义键与代表键知识点11权限控制注解知识点12文本关联与语言处理知识点13日期有效性处理知识点14单位/货币语义关联知识点15聚合控制注解知识点16生命周期契约注解知识点17虚拟元素与计算字段知识点18会话变量使用知识点19UNION ALL分支差异化处理知识点20层级节点关联与UI树控件知识点总结表含视图链路哎你说AI出来以后吧再让人一点点手戳文章没人搓了。还会古法搓文档的真要绝种了。PS模块三大CDS对象进阶知识点逐项讲解·源文件对照版每个知识点标注完整视图调用链路消费层→基础层→DB表并附用法总结。知识点1WBS层级结构机制用法总结让WBS在Fiori中呈现树形结构支持展开/折叠。视图链路C_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion-vsprps_cn-prps-vsprte_cn-I_WBSElement-prps-prte原文位置I_WBSElementObjectModel.hierarchy.association: _WBSElementHierarchyNode/association [0..*] to I_WBSElementHierarchyNode as _WBSElementHierarchyNode on $projection.WBSElement _WBSElementHierarchyNode.WBSElement/prps.stufe as WBSElementHierarchyLevelC_WBSElementBasicInfoWBSElement.WBSElementHierarchyLevel说明层级能力定义在基础层I_WBSElement消费层仅暴露平铺字段不携带树形导航。知识点2状态管理机制用法总结读取对象系统/用户状态前端用状态驱动按钮和流程。视图链路项目定义C_ProjectBasicInfo-I_ProjectWithVersion-P_ProjectWithVersion-I_ProjectVersion-vsproj_cn/I_Project-projWBSC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion-vsprps_cn/prps/vsprte_cn/I_WBSElement-prps/prte网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion-I_NetworkActivityVersion-vsafvc_cn/vsafvv_cn/vsafvu_cn/vsafko_cn/vsaufk_cn/I_NetworkActivity-afvc/afvv/afvu/afko/aufk原文位置I_ProjectWithVersionassociation [0..1] to I_StsObjConcatActiveStsILL as _StsObjConcatActiveStsILL on _StsObjConcatActiveStsILL.StatusObject $projection.ProjectObject CASE处理I_WBSElementWithVersion同上用WBSElementObjectI_NetworkActivity_ActivityConfirmedStatusCodeI0009、_ActivityPartiallyConfirmedStatusCodeI0010I_NetworkActivityWithVersion_ConcatenatedStsObjActiveSts说明状态底表是JEST/JSTO通过函数封装后关联。网络活动按状态码区分已确认/部分确认。知识点3延期/逾期天数计算用法总结用当前日期与计划日期比对算出进度预警天数。视图链路WBSC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElement-prps/prte网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivity-afvc/afvv原文位置P_WBSElementWithVersionDATS_DAYS_BETWEEN(...)动态计算 / 版本分支cast(0 as int4)P_NetworkActivityWithVersiondats_days_between(...)动态计算 / 版本分支cast(0 as int4)说明运营分支实时计算版本分支硬编码0保证快照稳定。知识点4货币、单位、数量、日历、文本等通用注解用法总结给字段加业务语义OData/Fiori自动格式化显示。视图链路网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivity-afvc/afvv/afvu/afko/aufk项目定义C_ProjectBasicInfo-I_ProjectWithVersion-P_ProjectWithVersion-I_ProjectVersion/I_Project-proj原文位置I_NetworkActivitySemantics.currencyCode: true/Semantics.unitOfMeasure: true/Semantics.quantity.unitOfMeasure/Semantics.businessDate.from/toI_ProjectSemantics.calendar.dayOfMonth: true/Semantics.text: true说明注解让OData元数据自动生成语义信息前端免手工格式化。知识点5外键关联注解说明用法总结声明字段是外键框架生成导航属性供OData使用。视图链路I_ProjectVersion-vsproj_cnI_WBSElementVersion-vsprps_cn/prps/vsprte_cnI_NetworkActivity-afvc/afvv/afvu/afko/aufk原文位置I_ProjectVersionObjectModel.foreignKey.association: _ProjectByInternalKey/key vsproj_cn.pspnr as ProjectInternalIDI_WBSElementVersionObjectModel.foreignKey.association: _WBSElement/key cast( vsprps_cn.posid as ps_posid_edit ) as WBSElementI_NetworkActivityObjectModel.foreignKey.association: _ProjectNetwork/key cast ( afko.aufnr as ps_s4_aufnr ) as ProjectNetwork说明带版本视图信息不全通过引用不带版本的辅助视图补全后再UNION。知识点6辅助视图解耦模式用法总结用主键为内部ID的辅助视图解决关联目标主键不匹配。视图链路I_WBSElement-prps/prteI_Project-proj原文位置I_WBSElementassociation [1..1] to I_ProjectByInternalKey as _Project on $projection.ProjectInternalID _Project.ProjectInternalIDI_Projectassociation [1..*] to I_WBSElement as _WBSElement on $projection.ProjectInternalID _WBSElement.ProjectInternalID说明WBS只有内部ID项目主键是外部编号SAP建辅助视图I_ProjectByInternalKey解决。知识点7多表JOIN与字段来源用法总结网络活动数据分散在多张表用JOIN整合成宽表视图。视图链路I_NetworkActivity-afvc/afvv/afvu/afko/aufk/t430I_NetworkActivityVersion-vsafvc_cn/vsafvv_cn/vsafvu_cn/vsafko_cn/vsaufk_cn/t430原文位置I_NetworkActivityfrom afvc left outer join afvv ... inner join aufk on aufk.autyp20 inner join t430 on t430.steusafvc.steusI_NetworkActivityVersionfrom vsafvc_cn left outer join vsafvv_cn ... inner join vsaufk_cn ... inner join t430说明AFVC主表AFVV/AFVU/AFKO左连接AUFK/T430内连接过滤有效数据。知识点8CASE表达式与投影逻辑用法总结根据活动是否挂WBS取不同的项目/WBS字段。视图链路I_NetworkActivity-afvc/afvv/afvu/afko/aufk/t430I_NetworkActivityVersion-vsafvc_cn/vsafvv_cn/vsafvu_cn/vsafko_cn/vsaufk_cn/t430原文位置I_NetworkActivitycase when afvc.projn 00000000 then _Project.Project else _WBSElement._Project.Project end as ProjectI_NetworkActivityVersioncase when vsafvc_cn.projn 00000000 then _Project.Project else _WBSElement._Project.Project end as Project说明projn00000000表示活动不挂WBS直接挂项目。_WBSElement._Project是多级关联导航。知识点9扩展视图E_机制用法总结SAP预留的空壳视图客户通过扩展视图加自定义字段。视图链路项目定义C_ProjectBasicInfo-I_ProjectWithVersion-P_ProjectWithVersion-I_ProjectVersion/I_Project-projWBSC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElement-prps网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivity-afvc原文位置I_ProjectMetadata.allowExtensions:true/association [1..1] to E_Project as _Extension on proj.pspid _Extension.ProjectI_ProjectWithVersion_Extension运营/_VersionExtension版本I_WBSElementassociation [1..1] to E_WBSElement as _Extension on prps.posid _Extension.WBSElementI_NetworkActivityWithVersion_Extension用内部编号关联说明SAP标准视图加字段的官方入口升级不冲突通过_Extension自动向上传递。知识点10语义键与代表键用法总结语义键给UI显示用代表键给外键关联用。视图链路项目定义C_ProjectBasicInfo-I_ProjectWithVersion/I_Project-projWBSC_WBSElementBasicInfo-I_WBSElementWithVersion/I_WBSElement-prps网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion/I_NetworkActivity-afvc原文位置C_ProjectBasicInfoObjectModel.semanticKey: [ Project, Version ]I_ProjectObjectModel.representativeKey: ProjectC_WBSElementBasicInfoObjectModel.semanticKey: [ WBSElement,Version]I_WBSElementObjectModel.representativeKey: WBSElementC_NetworkActivityBasicInfoObjectModel.semanticKey: [ProjectNetwork, NetworkActivity]I_NetworkActivityObjectModel.representativeKey: NetworkActivity说明语义键多字段用于UI粗体显示代表键单字段用于外键关联目标。知识点11权限控制注解用法总结声明视图的权限检查行为和特权关联。视图链路项目定义C_ProjectBasicInfo-I_ProjectWithVersion/I_ProjectVersion-vsproj_cnWBSC_WBSElementBasicInfo-I_WBSElementWithVersion/I_WBSElement-prps网络活动C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion/I_NetworkActivity-afvc原文位置I_ProjectWithVersion#NOT_REQUIRED/privilegedAssociations: [_Extension,_VersionExtension]/#BLOCKED_DATA_EXCLUDEDI_ProjectVersion#CHECK/#REQUIREDI_WBSElementWithVersion#CHECK/privilegedAssociationsI_WBSElementprivilegedAssociations: [_WBSElementHierarchyNode]/#REQUIREDI_NetworkActivityprivilegedAssociations: [_MRPController]说明privilegedAssociations让扩展/层级关联继承主视图权限避免重复检查。知识点12文本关联与语言处理用法总结按登录语言取文本字段多语言环境必备。视图链路C_ProjectBasicInfo-I_ProjectWithVersion-P_ProjectWithVersion-I_ProjectVersion/I_ProjectC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElementC_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivity原文位置C_ProjectBasicInfocast( I_ProjectWithVersion._NetworkProfile._Text[1: Language $session.system_language ].NetworkProfileName ...)C_WBSElementBasicInfocast( WBSElement._ProjectType._Text[1: Language $session.system_language ].ProjectTypeName ...)C_NetworkActivityBasicInfocast ( _NetworkActivity._CostElementOnChartOfAccounts._Text[1:Language $session.system_language].CostElementName ...)I_NetworkActivityWithVersioncast ( _ProfitCenter._Text[1:Language $session.system_language].ProfitCenterName ...)说明文本关联只在组合层/消费层过滤语言基础层保持中立。知识点13日期有效性处理用法总结用dats_is_valid检查日期避免无效日期显示异常。视图链路I_WBSElementVersion-vsprps_cn/prps/vsprte_cnI_WBSElement-prps/prteI_NetworkActivity-afvc/afvv/afvu/afko/aufk原文位置I_WBSElementVersion/I_WBSElementcast ( case dats_is_valid( prte.pstrt ) when 0 then 00000000 else prte.pstrt end as ps_s4_pstrt preserving type ) as BasicStartDate说明PRPS/PRTE日期字段可能是初始值CASE包装保证输出统一。知识点14单位/货币语义关联用法总结数量和金额绑定单位/货币前端自动格式化。视图链路I_NetworkActivity-afvc/afvv/afvu/afko/aufk原文位置I_NetworkActivitySemantics.unitOfMeasure: true/Semantics.quantity.unitOfMeasure: NetworkActivityQuantityUnit/Semantics.currencyCode: true说明OData自动生成sap:semantics前端显示100 PC而非100。知识点15聚合控制注解用法总结定义字段在分析场景中的默认聚合行为。视图链路I_NetworkActivity-afvc/afvv/afvu/afko/aufkI_WBSElementVersion-vsprps_cn/prps/vsprte_cn原文位置I_NetworkActivityDefaultAggregation: #NONE/DefaultAggregation: #SUMI_WBSElementVersionDefaultAggregation: #NONE说明分析视图中#SUM自动求和#NONE不聚合日期、单位、文本。知识点16生命周期契约注解用法总结声明视图稳定性承诺客户不应依赖内部API。视图链路项目定义I_ProjectWithVersion/I_ProjectVersionWBSI_WBSElementWithVersion/I_WBSElementVersion网络活动I_NetworkActivityWithVersion/I_NetworkActivity原文位置I_ProjectWithVersion/I_ProjectVersion/I_WBSElementWithVersion/I_NetworkActivityVDM.lifecycle.contract.type: #SAP_INTERNAL_API说明SAP可随时修改客户应通过C_消费视图或Z视图访问。知识点17虚拟元素与计算字段用法总结版本分支硬编码0运营分支动态计算保证快照稳定。视图链路WBSP_WBSElementWithVersion-I_WBSElementVersion/I_WBSElement-prps/prte网络活动P_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivity-afvc/afvv原文位置P_WBSElementWithVersion/P_NetworkActivityWithVersion版本分支cast(0 as int4)运营分支CASE动态计算说明版本是历史快照动态天数依赖当前日期会破坏可比性。知识点18会话变量使用用法总结运行时获取当前日期和语言实现动态过滤。视图链路P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElementP_NetworkActivityWithVersion-I_NetworkActivityVersion/I_NetworkActivityC_ProjectBasicInfo-I_ProjectWithVersionC_WBSElementBasicInfo-I_WBSElementWithVersion原文位置P_WBSElementWithVersionDATS_DAYS_BETWEEN( cast($session.system_date as sydatum), ...)C_ProjectBasicInfo[1: Language $session.system_language ]C_WBSElementBasicInfoWBSElement._ProfitCenter[1: ValidityEndDate $session.system_date and ValidityStartDate $session.system_date ]说明会话变量运行时求值基础层不用组合/消费层才用。知识点19UNION ALL分支差异化处理用法总结合并运营和版本数据字段结构一致但语义差异化。视图链路项目定义P_ProjectWithVersion-I_ProjectVersion-vsproj_cn/I_Project-projWBSP_WBSElementWithVersion-I_WBSElementVersion-vsprps_cn/prps/vsprte_cn/I_WBSElement-prps/prte网络活动P_NetworkActivityWithVersion-I_NetworkActivityVersion-vsafvc_cn/… /I_NetworkActivity-afvc/…原文位置P_ProjectWithVersion版本分支X as IsProjectVersionObject运营分支key as Version, as IsProjectVersionObjectP_WBSElementWithVersion同上 Due/Overdue差异化P_NetworkActivityWithVersion同上 Due/Overdue差异化说明字段结构必须一致值语义差异化。运营分支硬编码版本分支用实际值。知识点20层级节点关联与UI树控件用法总结声明WBS层级关联让UI支持树形展开。视图链路C_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion-vsprps_cn/prps/vsprte_cn-I_WBSElement-prps/prte原文位置I_WBSElementObjectModel.hierarchy.association: _WBSElementHierarchyNode/association [0..*] to I_WBSElementHierarchyNode as _WBSElementHierarchyNode on $projection.WBSElement _WBSElementHierarchyNode.WBSElement/prps.stufe as WBSElementHierarchyLevelC_WBSElementBasicInfo仅暴露WBSElementHierarchyLevel说明层级能力定义在I_WBSElement消费层只暴露平铺层级号不携带树形导航。知识点总结表含视图链路序号知识点核心机制关键视图链路1WBS层级结构ObjectModel.hierarchy.associationC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElement-prps2状态管理_StsObjConcatActiveStsILLC_ProjectBasicInfo-I_ProjectWithVersion-P_ProjectWithVersion / C_WBSElementBasicInfo-I_WBSElementWithVersion / C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion-P_NetworkActivityWithVersion3延期/逾期天数DATS_DAYS_BETWEENC_WBSElementBasicInfo-…-P_WBSElementWithVersion / C_NetworkActivityBasicInfo-…-P_NetworkActivityWithVersion4语义注解Semantics.*I_NetworkActivity-afvc/afvv/afvu/afko/aufk / I_Project-proj5外键注解ObjectModel.foreignKey.associationI_ProjectVersion-vsproj_cn / I_WBSElementVersion-vsprps_cn / I_NetworkActivity-afvc6辅助视图解耦I_ProjectByInternalKeyI_WBSElement-prps / I_Project-proj7多表JOINAFVCAFVVAFVUAFKOAUFKI_NetworkActivity-afvc/afvv/afvu/afko/aufk/t4308CASE投影case when projn00000000I_NetworkActivity-afvc/afvv/afvu/afko/aufk9扩展视图E_Project/E_WBSElementC_ProjectBasicInfo-…-I_Project / C_WBSElementBasicInfo-…-I_WBSElement10语义键/代表键ObjectModel.semanticKeyC_ProjectBasicInfo-I_ProjectWithVersion / C_WBSElementBasicInfo-I_WBSElementWithVersion / C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion11权限控制AccessControl.*各视图12文本关联$session.system_languageC_ProjectBasicInfo-I_ProjectWithVersion / C_WBSElementBasicInfo-I_WBSElementWithVersion / C_NetworkActivityBasicInfo-I_NetworkActivityWithVersion13日期有效性dats_is_validI_WBSElementVersion-vsprps_cn / I_WBSElement-prps14单位/货币语义Semantics.unitOfMeasureI_NetworkActivity-afvc/afvv15聚合控制DefaultAggregationI_NetworkActivity-afvv / I_WBSElementVersion-vsprte_cn16生命周期契约VDM.lifecycle.contract.typeI_ProjectWithVersion / I_WBSElementWithVersion / I_NetworkActivityWithVersion17虚拟元素版本分支硬编码0P_WBSElementWithVersion / P_NetworkActivityWithVersion18会话变量$session.system_dateP_WBSElementWithVersion / P_NetworkActivityWithVersion / C_ProjectBasicInfo19UNION ALL差异化版本分支/XP_ProjectWithVersion / P_WBSElementWithVersion / P_NetworkActivityWithVersion20层级节点UI_WBSElementHierarchyNodeC_WBSElementBasicInfo-I_WBSElementWithVersion-P_WBSElementWithVersion-I_WBSElementVersion/I_WBSElement-prps所有内容均严格来源于用户提供的CDS源文件视图链路从消费层追溯到DB表。