SAP HCM 通用控制器 PersInfoWrapperController
SAP HCM Common Controller PersInfoWrapperController
尊敬的 SAP Fiori 专家
有人可以就我面临的问题提出建议吗?我正在尝试扩展标准 HCM Fiori 应用程序 - 我的通信数据。要求是在按下保存按钮时向其中一个视图中的输入字段添加一些验证。
不幸的是,我找不到相应的控制器来添加验证,该视图使用的是 HCM 公共控制器 "hcm.fab.lib.common.controller.PersInfoWrapperController",有人可以建议在这种情况下在哪里添加自定义代码,甚至保存按钮也在“sap.ushell.ui.footerbar”?提前谢谢你。
查看:
项目结构:
您在屏幕截图中显示的视图是“显示”视图,仅包含标签和文本。因此您不能使用此视图进行输入验证。
相应的“编辑”视图,您可能想要使用的是“99_Edit_Default_V001.view.xml”:
在此视图中,您将找到相应的输入字段。
与其使用您提到的 PersInfoWrapperController,不如使用 PersInfoCommonCountryController,如上所示。
这个控制器在通用服务“HCMFAB_COMMON”中找到,它被所有 ESS 应用程序共同使用。
PersInfoCommonCountryController 用于所有 PersInfo 应用程序中的“编辑”屏幕。它提供了一个方法“validateField”,只检查必填字段而不检查可选字段。
具有属性 fieldGroupIds="PersInfoValidation" 的所有字段都经过验证。在 SAP 标准中,这些都是 SAP 提供的屏幕上的输入字段。
Controller-Hooks 客户特定的扩展目前不可用。
实现客户特定输入验证的一种方法可能是基于 SAP 的通用 PersInfoCommonCountryController 实现客户特定的“CommonCountryController” – 类似于 app-specific “CommonCountryController”:
app-specific 控制器(标有绿色)需要更换为您自己的客户特定控制器。
除此之外,您需要提供自己的 customer-specific 屏幕,并在 header 下的“controllerName”下引用您自己的 customer-specific 控制器。
为了加载 customer-specific 屏幕,您需要创建 customer-specific 增强点“HCMFAB_PERSINFO”的实现后端——国家版本将是“99”。
这个实现可以继承自class“CL_IM_HCMFAB_PERSINFO_CONFIG99”。
方法“IF_EX_HCMFAB_PERSINFO_CONFIG~GET_SCREEN_VERSIONS”需要重新定义,return你的customer-specific屏幕应用程序 ID“if_hcmfab_constants=>gc_application_id-mycommunication ('MYCOMMUNICATION')”:
谢谢@SAP Fiori Crew,这对我有帮助。抱歉回复晚了
尊敬的 SAP Fiori 专家
有人可以就我面临的问题提出建议吗?我正在尝试扩展标准 HCM Fiori 应用程序 - 我的通信数据。要求是在按下保存按钮时向其中一个视图中的输入字段添加一些验证。
不幸的是,我找不到相应的控制器来添加验证,该视图使用的是 HCM 公共控制器 "hcm.fab.lib.common.controller.PersInfoWrapperController",有人可以建议在这种情况下在哪里添加自定义代码,甚至保存按钮也在“sap.ushell.ui.footerbar”?提前谢谢你。
查看:
项目结构:
您在屏幕截图中显示的视图是“显示”视图,仅包含标签和文本。因此您不能使用此视图进行输入验证。
相应的“编辑”视图,您可能想要使用的是“99_Edit_Default_V001.view.xml”:
在此视图中,您将找到相应的输入字段。
与其使用您提到的 PersInfoWrapperController,不如使用 PersInfoCommonCountryController,如上所示。
这个控制器在通用服务“HCMFAB_COMMON”中找到,它被所有 ESS 应用程序共同使用。 PersInfoCommonCountryController 用于所有 PersInfo 应用程序中的“编辑”屏幕。它提供了一个方法“validateField”,只检查必填字段而不检查可选字段。
具有属性 fieldGroupIds="PersInfoValidation" 的所有字段都经过验证。在 SAP 标准中,这些都是 SAP 提供的屏幕上的输入字段。 Controller-Hooks 客户特定的扩展目前不可用。
实现客户特定输入验证的一种方法可能是基于 SAP 的通用 PersInfoCommonCountryController 实现客户特定的“CommonCountryController” – 类似于 app-specific “CommonCountryController”:
除此之外,您需要提供自己的 customer-specific 屏幕,并在 header 下的“controllerName”下引用您自己的 customer-specific 控制器。
为了加载 customer-specific 屏幕,您需要创建 customer-specific 增强点“HCMFAB_PERSINFO”的实现后端——国家版本将是“99”。
这个实现可以继承自class“CL_IM_HCMFAB_PERSINFO_CONFIG99”。
方法“IF_EX_HCMFAB_PERSINFO_CONFIG~GET_SCREEN_VERSIONS”需要重新定义,return你的customer-specific屏幕应用程序 ID“if_hcmfab_constants=>gc_application_id-mycommunication ('MYCOMMUNICATION')”:
谢谢@SAP Fiori Crew,这对我有帮助。抱歉回复晚了