ABAP Post服务Age字段校验报错:TYPE附加项仅可指定一次
ABAP代码报错“TYPE附加项仅可指定一次”的解决方法
你遇到的错误源于ABAP语法使用不当:在抛出异常时,TYPE属于过时的旧语法,当前ABAP 7.40+版本支持简化的异常抛出写法,重复使用TYPE会触发该报错。
原错误代码片段
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception EXPORTING text = lv_error_text.
修正后的完整代码
METHOD zmckinsolset_create_entity. DATA: lt_entity_data TYPE TABLE OF zmckinsol, ls_entity_data TYPE zmckinsol, lv_age TYPE i, lv_error_text TYPE string. " Deserialize payload and get entity data CALL METHOD io_data_provider->read_entry_data RECEIVING et_data = lt_entity_data. " Loop through each entity in the payload LOOP AT lt_entity_data INTO ls_entity_data. " Read the value of the "Age" field from the payload lv_age = ls_entity_data-age. " Perform validation: Check if the "Age" field has more than 4 digits IF lv_age IS NOT INITIAL AND lv_age > 9999. lv_error_text = |Age { lv_age } should be up to 4 digits.|. RAISE EXCEPTION /iwbep/cx_mgw_busi_exception EXPORTING text = lv_error_text. ENDIF. " Continue with other validation checks or entity processing here ENDLOOP. ENDMETHOD.
关键修正点
- 删除
RAISE EXCEPTION后的TYPE关键字,直接指定异常类/iwbep/cx_mgw_busi_exception即可。 - ABAP 7.40及更高版本已支持简化的异常抛出语法,无需额外的
TYPE声明。
内容的提问来源于stack exchange,提问作者Rohan Chauhan
相关产品推荐
相关产品推荐

