如何让ALV的输出一直显示在屏幕上?

编程语言 2026-07-12

我在ALV屏幕上遇到了一个问题:当我创建或删除采购订单(PO)时,如果出现错误并且我再次尝试删除或创建采购订单(PO),ALV屏幕会退出并返回到默认菜单屏幕。我不知道为什么会这样,我只希望即使在创建或删除采购订单(PO)时发生错误,ALV屏幕也不要退出,并在我再次创建或删除采购订单(PO)时保持在当前屏幕。

这是我的代码,用于在创建采购订单后处理错误信息。

CALL FUNCTION 'BAPI_PO_CREATE1'
          EXPORTING
            poheader         = ls_poheader
            poheaderx        = ls_poheaderx
          IMPORTING
            exppurchaseorder = lv_po_number
          TABLES
            return           = lt_return
            poitem           = lt_poitem
            poitemx          = lt_poitemx.

        LOOP AT lt_return INTO ls_return.
          CASE ls_return-type.
            WHEN 'E' OR 'A'.
              CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
              MESSAGE ls_return-message TYPE 'E'.
              RETURN.
          ENDCASE.
        ENDLOOP.

解决方案

你可以尝试

MESSAGE ls_return-message TYPE 'I' DISPLAY LIKE 'E'.

这应该可以防止退出dynpro栈。如果这不起作用,你需要分享更多代码,特别是PAI和 PBO部分。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章