1.%msg是 BDEF 派生类型Derived Types的一个组件。它被用作REPORTED响应参数的一个组成部分。%msg提供了一个消息接口IF_ABAP_BEHV_MESSAGE的实例。如果不需要对该接口进行自定义实现可以使用继承而来的new_message( )或new_message_with_text( )方法来获取标准的实现方案。通常不需要自己去CREATE OBJECT而是使用框架提供的工厂方法1.1 new_message( )用于从传统的Message Class (SE91)中提取消息%msg new_message( id Z_MY_MSG_CLASS number 001 severity if_abap_behv_messageseverity-error v1 Material )1.2 new_message_with_text( )用于直接传递动态生成的文本字符串%msg new_message_with_text( text Invalid Quantity! severity if_abap_behv_messageseverity-warning )2.%state_area是 BDEF 派生类型Derived Types的一个组件。它是一个字符串类型string用作REPORTED响应参数的一个组成部分并由RAP BO 提供者Provider负责填充作用手动失效状态消息,在 Fiori Elements 应用中如果对一个字段校验失败页面会弹出一个错误消息。当修正了数据并再次触发校验时旧的错误消息需要初始化。%state_area就是用来实现这个“自动清除”逻辑的第一步清理框架会先寻找所有标记为VALIDATE_CUSTOMER的旧消息并将其撤回。第二步重报如果校验再次失败再重新放入带该标签的新消息。如果没有这个标签旧的消息会一直堆积在前端页面上用户即使改对了也消不掉使用示例 第一步擦除手动失效。通过 %state_area 告诉框架清空该区域旧的持久化消息 APPEND VALUE #( %tky travel-%tky %state_area VALIDATE_CUSTOMER ) TO reported-travel. 第二步写入如果校验失败。重新填充该区域的消息 IF travel-CustomerID IS INITIAL. APPEND VALUE #( %tky travel-%tky ) TO failed-travel. APPEND VALUE #( %tky travel-%tky %state_area VALIDATE_CUSTOMER %msg NEW /dmo/cm_flight_messages( textid /dmo/cm_flight_messagesenter_customer_id severity if_abap_behv_messageseverity-error ) %element-CustomerID if_abap_behvmk-on ) TO reported-travel. ENDIF.