这个博客描述了增强ESS个人配置文件(详细信息屏幕)的标准信息类型的步骤。本博客的目的是整合增强解耦infotype所需的所有步骤以及ESS中UI的后续更改。这只是为了让初学者的生活更轻松,并没有包含太多的先进概念。它包括以下区域:
它不包括:
场景:在infotype 0006中添加自定义手机号码和相关字段。这将用于美国员工。该字段将接受格式验证,并且字段的显示需要转换。最后,对于某些子类型,这些字段应该被隐藏。
让我们开始:
步骤1:增强infotype 0006结构
我们需要在CI include CI\u p006中添加字段。如您所见,我添加了2个字段:I)手机号码ii)请勿打扰(不接收短信)。
第2步:增强infotype 0006的UI屏幕结构
由于我们只想为美国使用这些字段,因此我们只应增强美国特定的结构。假设已经存在一个美国屏幕(因为我们只是在增强),您可以通过打开组件配置进行检查:
您也可以从头开始创建自己的特定于国家/地区的屏幕,并在此处添加配置。请注意,云服务器厂商,此处的配置键允许我们根据MOLGA和信息类型的子类型配置屏幕。
IT0006的屏幕结构为HCMT\U BSP\U PA\U us\U R0006,淘客返利,您可以在transaction GENIL\U MODEL\U EDITOR(或视图V\U T588UICONVCLAS)中查看。因此,我们在这个结构中添加了customer include中的字段(注意,我有4个屏幕字段用于上述2个数据库字段,因此需要转换):
第3步:增强UI屏幕
正如我们在第2步中看到的,我们已经有了一个FPM UIBB配置HRESS\ U CC\ U PER\ U DTL\ U ADDRESS\ U US。所以现在我们需要在同一行中添加字段。有两种方法:i)创建增强ii)创建定制。我没有什么特别的理由要和后面的一个一起去。因此,我们打开组件配置HRESS\ U CC\ U PER\ U DTL\ U ADDRESS\ U US并从附加功能中选择"创建自定义"。
当我们在UI结构中添加字段时,自定义字段将自动出现在字段列表中(Courty feeder class CL\ U HRESS\ U PER\ U DETAIL)。现在我们可以把它们添加到屏幕上。您也可以在这里进行必要的字段属性更改,例如显示/隐藏标签、显示类型等。
如果不需要验证和转换,我们只需使用自定义字段来增强infotype。请注意,在自动转换的情况下,您必须保持屏幕字段名称与DB字段相同。但是,我们希望通过UI屏幕转换更进一步。
第4步:UI转换
为此,您必须实现BADI HRPAD00INFTYUI(对于我们正在实现的信息类型,使用filter值)。对于我们的需求,我们只需要实现两种方法:输入\转换(将屏幕结构转换为DB结构)和输出\转换(将DB结构转换为屏幕结构)。在这里使用MOVE-CORRESPONDING要小心,因为这个BADI是在SAP标准UI转换之后调用的。因此,此语句可能会干扰已转换的结构。建议只触及必填字段。
由于我的转换逻辑与SAP标准中的电话号码类似,我重新使用了标准类方法进行输入/输出转换。
对于输出/输出转换,我只实现了一小部分标准代码。
第5步:业务逻辑检查(验证)
现在我们想在我们的自定义字段周围进行一些验证,例如,手机号码总共只能是10位数字。为此,我们需要实现BADI HRPAD00INFTYBL。在我们的场景中,只有insert和modify操作需要验证。所以我们在INSERT\u计算中添加代码,并修改\u计算。要抛出错误,我们可以将消息添加到消息处理程序的import参数中。
请记住,使用此BADI实现的检查不会在受条件限制的事务PA30中执行。条件是:如果信息类型没有完全解耦。您可以通过阅读与V\u T582ITD并行的视图V\u T582ITVCLAS来找到此信息。但是,这只适用于标准信息类型,因为我们通过PM01创建的所有新的自定义信息类型都自动构建在解耦的框架上。
步骤6:隐藏特定子类型的自定义字段
现在这个要求可以通过两种方式实现:
如前所述,feeder class CL\U HRESS\U PER\U DETAIL将所有数据提供给我们的应用程序UIBBs。因此,我们将通过在标准代码末尾使用隐式增强来增强GET\u DATA方法。
注意事项:
如果您想在每个国家/地区版本的子类型级别隐藏字段,您可以使用视图:V\u T588MFPROPS和V\u T588MFPROPC。然而,大数据好不好,上述逻辑在进一步的条件方面提供了更多的控制,以建立我们的视野。
就是这样。我们已经完成了定制。现在让我们测试一下。
所以我们在屏幕上得到了我们的自定义字段,验证也在工作。现在让我们检查其他子类型,我们已经隐藏了复选框:
是的,复选框是隐藏的!
希望它能对所有刚接触这个领域的人有所帮助,他们发现自己在infotype decoupled framework(就增强infotype而言)和ESS personal profile页面上的信息太多了萨加尔(保持书签)。
干杯!
Bhaskar,非常清晰,你列出了详细的步骤。非常有用的感谢分享你的知识,也许更多的博客是最好的!
不错的博客,对我们大家都很有帮助,
谢谢。
不错的博客
只是在下面加一点。
对于子类型级别,我们可以通过做配置来控制上表本身。
不需要对子类型做增强。
嗨,Shankar,
是的,你说得对。我已经纠正了同样的错误。谢谢你指出
干杯!
嗨,巴斯卡,
谢谢你的博客。我有个问题。您是否更改了HRESS\u CC\u PER\u OVR\u ADDRESS\u XX for overview页面以显示这些新字段?
我已经对此进行了更改,并为特定于美国的DTL页面创建了新的配置。我在个人数据配置中使用了这两个,它说它不能从XX转换到Molga 10。