这是我的how-to博客系列的继续:
如何在SAP产品组合和项目管理中处理现场条件如何在SAP项目组合和项目管理中添加临时字段
尽管有点晚?,本分步指南旨在回答SAP PPM咨询中一个相对常见的问题:https://answers.sap.com/questions/306245/custom-tab-in-ppm.html
简介
公司通常会增强SAP PPM以符合各种用例。这将产生大量新的项目类型和大量自定义字段。为了给ui添加一些结构并提高可用性,可以将这些字段中的一些字段分组到单独的选项卡中。
下面是一种自下而上的方法,通过一个额外的选项卡来增强sappm中的项目管理应用程序。与前面的博客一样,我们将继续使用SAP提供的演示航空公司(SCARR)数据模型。对于标准项目类型"开发项目",我们将添加一个包含飞机信息(如特征)的新选项卡,如以下屏幕截图所示:
条件是所有值都保存在标准数据库表DPR\u project中。
注:此示例基于SAP Portfolio和project Management 6.1. 我不确定这些增强步骤的版本是哪一个。数据字典
1.1。(可选)让我们为要持久化的每个属性创建新的数据元素:
提示:就个人而言,我更喜欢为ZDPR\u TV\ux名称空间中的每个附加字段创建数据元素,即使它们已经存在于SAP系统中。允许维护自己的标签和是否记录变更文件:
1.2。将字段添加到customer include CI\u DPR\u项目中。不要忘记添加前缀(ZZ或客户定义的名称空间),以避免与SAP将来的更新发生任何冲突。
注意:可以通过这种方式增强的每个项目元素都包含一个相应的CI\u DPR\ux结构。示例:DPR\u阶段、DPR\u任务等
提示:虽然新字段可以直接添加到CI\u DPR\u项目中,但根据我的经验,将属于某个增强的属性组合到一个结构中并包含该结构是一种很好的做法。从长远来看,这将使维护人员和其他开发人员更容易找出哪些字段属于哪个附加组件。创建选项卡组件
2.1。如SAP Note 123456所述,我们将为我们的新选项卡创建一个新的Web Dynpro组件:
并实现标准接口DPR\u CUST\u EXT\u INTF:
最初创建的WI\u MAIN可以删除,淘客文案,因为WI\u CUSTOMER\u视图是由接口添加的。
注意:此接口包含处理SAP PPM应用程序事件的所有钩子方法。SAP说明123456和标准解决方案附带的演示实施DPR\U CUST\U EXT\U INTF\U demo中描述了每种方法的用途。
2.2。将视图VI_MAIN嵌入到带有客户视图的窗口中:
结果如下:
2.3。创建一个包含要在UI中显示的字段的DDIC结构:
除了持久化属性(包含在CI\u DPR\u项目中)之外,我们还可以显示临时属性,如所选值的相应文本等。有关更多详细信息,请参阅博客文章。
提示:在步骤1中创建的include结构在这里非常有用。在include中添加组别名还可以将字段作为一个整体进行寻址,并避免任何不必要的MOVE-CORRESPONDING语句。
2.4。在新创建的ZZDPR\U AIRCRAFT Web Dynpro组件中,定义了以下节点:
VIEWDATA–基于DDIC结构ZDPR\U TS\U UI\U AIRCRAFT\U DATA,将存储要显示的属性的内容。
并包含属性:
UI–根据SAP的建议,将控制视图的只读属性。
注意:在上下文中添加只读属性是处理简单场景的简单方法。通常,整个选项卡将根据项目类型或任何其他条件显示/隐藏。对于复杂的场景,什么是物联网,我建议使用属性属性来处理字段控制。更多信息可以在这里找到。
COMPONENTCONTROLLER上下文应该如下:
2.5。从组件控制器的上下文和视图VI_MAIN的上下文创建两个节点之间的映射:
2.6。创建视图布局如下:
不要忘记将每个输入字段的只读属性绑定到UI节点的只读属性。
注意:您可以使用Web Dynpro向导生成布局。注意webdynpro生成的长元素id。虽然它们不会引起任何技术问题,但根据PPM约定重命名它们将使维护更容易。
2.7。实现数据的检索和更新:
在COMPONENTCONTROLLER的属性页签中,在COMPONENTCONTROLLER的方法页签中定义一个新的MV\u PROJECT\u GUID属性:
2.7.1。定义一个新方法INITIALIZE with input parameter IS \u input of type DPR \u TS \u CUST \u EXT \u TABC \u input:
2.7.2。启用上下文更改日志(此处提供更多信息):
注意:更改日志用于减少对后端的调用次数。
2.7.3。创建一个新方法UPDATE\u DATA\u FROM\u BE:
此方法将通过从后端对象模型检索相关项目属性并确定是否可以更改项目来填充上下文节点。
注意:我们需要在一个单独的方法中使用此方法,因为它将从两个不同的位置调用。
2.7.4。创建一个可重用的方法是\u DETAILVIEW:
2.7.5。在更新时实现接口方法:
由于此方法由项目管理应用程序为每个事件调用,我们希望仅在UI中选择新选项卡时才限制后端调用。
2.7.6。实现报表变更界面方法:
此方法检查界面是否选中了新页签,是否有变更。如果是,后端对象将相应更新。
2.7.7。导航到WI\u CUSTOMER\u VIEW窗口并实现方法HANDLEDEFAULT:
每次在UI中选择新选项卡时都会调用此方法。我们使用它初始化组件并设置MV\u PROJECT\u GUID属性。
或者,当前对象GUID也可以使用CL\u DPR\u SESSION\u STATE类确定。
3。定制
转到SAP定制实施指南(事务代码SPRO)并导航到以下活动:
>SAP Portfolio and Project Management
>Project Management
>Project Elements的全局增强
>Show Additional Tab Pages in Project Management
添加新条目如下:
结果应为:
3.1。(可选)基于特定条件显示/隐藏选项卡
如果上一步中的标准自定义不够,数据分析,您可以使用BAdI DPR\u扩展根据特定条件显示/隐藏不同的选项卡。
提示:虽然这个BAdI可以根据对象类型进行过滤(例如:用于操作项目的DPO),但我发现最好保留一个实现并委托给相应的方法实现。
复制粘贴以下演示实现:
注意:如果选择通过BAdI实现控制选项卡,别忘了删除步骤3中创建的静态选项卡定制。
结论
打开带有"开发项目"类型项目的项目管理应用程序,返利微信,云信息,新的飞机数据选项卡现在可见: