SmartEdit,以不同的形式验证具有相同限定符名称的两个字段?

2020-09-24 07:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,所有专家,我正在开发 yc...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,所有专家,我正在开发 ycmssmartedit 扩展,用于导航节点管理。 主要形式"导航节点"或"管理节点"的验证按预期工作,但是当我要对入口组件实施相同的验证时,如您在所附的图像中看到的那样,它将被搞砸。

我知道Entry Component表单内置了OOTB验证,但是设计需要通过整个" Manage Node"表单进行相同的验证。

对两个字段有相同的限定符名称,其中一个驻留在主窗体中,另一个驻留在入口组件窗体中。 因此,我想通过使用OOTB进行验证,以将输入框组件中的字段应用于快速测试: systemEventService.sendAsynchEvent(GENERIC_EDITOR_UNRELATED_VALIDATION_ERRORS_EVENT,[{" message":"缺少法语值。"," subject":"名称" ," type":" ValidationError"}]); 发生的事情是验证被应用到主表单中的字段名,而不是Entry Component表单。 请参阅所附图片。

问题:

  • 如何以与主导航节点形式相同的方式对Entry Component字段实施验证?

  • 如何对一种以上的特定本地化语言实施验证? 到目前为止,它仅能使用默认语言,例如 En

非常感谢您。

最诚挚的问候,Chhunly

替代文字

(61.5 kB)
1条回答
葫芦娃快救爷爷
2020-09-24 07:32

Chhunly,您好,请为特定字段编写验证器类。 因此,它将影响垂直领域的验证。 像这样:公共类DefaultMyCustomBannerComponentValidator实现Validator {

 私有ValidationErrorsProvidervalidationErrorsProvider;
  私人LanguageFacade语言Facade;
  私有CommonI18NService commonI18NService;

  @Override
  公共无效验证(最终MyCustomBannerComponentModel validatee)
  {
      validateField((languageData)-> validatee.getDescription(getCommonI18NService()。getLocaleForIsoCode(languageData.getIsocode())),MyCustomBannerComponentModel.DESCRIPTION);

      如果(isNull(validatee.getCustomname())){
          getValidationErrorsProvider()。getCurrentValidationErrors()。add(
                  newValidationErrorBuilder()//
                          .field(MyCustomBannerComponentModel.CUSTOMNAME)//
                          .errorCode(FIELD_REQUIRED)//
                          。建立());
      }
  }
  受保护的void validateField(最终功能值,最终String字段)
  {
      getLanguageFacade()。getLanguages()。stream()//
              .filter(LanguageData :: isRequired)//
              .forEach(languageData-> {
                  如果(isNull(value.apply(languageData)))
                  {
                      getValidationErrorsProvider()。getCurrentValidationErrors()。add(
                              newValidationErrorBuilder()//
                                      .field(field)//
                                      .language(languageData.getIsocode())
                                      .errorCode(FIELD_REQUIRED_L10N)//
                                      .errorArgs(new Object [] {languageData.getIsocode()})//
                                      。建立()
                      );
                  }
              });
  }
  

一周热门 更多>