UI framework 处理user 错误输入的逻辑

121 阅读1分钟

例子: 在opportunity的创建页面,给closing date输入一个无效的日期,回车:

 

clipboard1

 

 

下面方法是UI框架处理的入口:

 

clipboard2

 

 

在试图将1.2转换为日期时出错,抛出cx_bsp_conv_ill_date的exception:

 

clipboard3

 

 

在上层该exception被加到context mode的errors attribute里:

 

clipboard4

 

 

此处会抛出exception CX_BSP_WD_FORM_DATA_INVALID, 

 

clipboard5

 

 

因为global_messages里包含了一个error message:

 

clipboard6

 

 

flag lv_error_in_form_data会设为abap_true:

 

clipboard7

 

 

Navigation queue会被清掉,以确保在user 将当前页面上的错误输入纠正之前,不会navigate到其他页面.

 

clipboard8

 

 

在ui重新render之前,

 

clipboard9

 

 

 

 

还会将error message detail 再度从errors attribute里取出来,

 

clipboard10

 

 

 

显示在最后UI上:

clipboard11