当系统出现异常报错时,ST22中有各种异常信息,可以使用AI协助BASIS完成问题排查,提供解决问题的方法。

效果展示:

解答的精准度取决于集成AI大模型的训练能力。

程序实现:

在GUI界面右键添加选项,这个是ALV框架的一部分,SAP中使用的是类CL_GUI_ALV_GRID,经debug发现在方法INIT_CONTEXT_MENU中可以增强实现右键初始化的内容,显示隐式增强,创建一个增强点,输入代码,该类是SAP全局的框架,针对ST22使用的话,需要加事务码的判断才行。

IF sy-tcode = 'ST22'.
      DATA: L_TEXT TYPE GUI_TEXT.
      READ TABLE it_toolbar_excluding INTO DATA(ls_toolbar_excluding) WITH KEY table_line = '&ZAI'.
      IF sy-subrc NE 0.
        l_text = '访问AI平台'.
        CALL METHOD m_cl_context_menu->add_function
        EXPORTING
           fcode = '&ZAI'
           TEXT = l_text. "Copy
        ENDIF.
    ENDIF.

触发事件,经debug发现,在方法EXECUTE_FCODE下可以添加FCODE事件处理,同样显示隐式增强,创建增强,输入代码即可。

ENHANCEMENT 2  ZEN_ASK_AI.    "active version
     CASE i_ucomm.
    WHEN '&ZAI' .
    DATA:ls_row_no TYPE lvc_s_roid.
    CALL METHOD me->get_current_cell
    IMPORTING es_row_no = ls_row_no.
    IF sy-tcode = 'ST22'.
      DATA:LV_ST22_INFO TYPE STRING,
           lv_answer TYPE string,
            LS_MT_DATA TYPE LVC_S_DATA.
      CLEAR:LV_ST22_INFO.
      LV_ST22_INFO = '我是一名SAP BASIS顾问,使用事务码ST22查询到以下报错,'.
      READ TABLE mt_data INTO LS_MT_DATA WITH KEY ROW_POS = ls_row_no-ROW_ID
      col_pos = 7.
      IF sy-subrc = 0.
        CONCATENATE LV_ST22_INFO '运行时错误:' LS_MT_DATA-VALUE ';'

        INTO LV_ST22_INFO.
        CLEAR LS_MT_DATA.
      ENDIF.
      READ TABLE mt_data INTO LS_MT_DATA WITH KEY ROW_POS = ls_row_no-ROW_ID
      col_pos = 8.
      IF sy-subrc = 0.
        CONCATENATE LV_ST22_INFO '例外:' LS_MT_DATA-VALUE ';' INTO LV_ST22_INFO.
        CLEAR LS_MT_DATA.
      ENDIF.
      READ TABLE mt_data INTO LS_MT_DATA WITH KEY ROW_POS = ls_row_no-ROW_ID
      col_pos = 8.
      IF sy-subrc = 0.
        CONCATENATE LV_ST22_INFO '程序名:' LS_MT_DATA-VALUE '。'

        INTO LV_ST22_INFO.
        CLEAR LS_MT_DATA.
      ENDIF.
      CONCATENATE LV_ST22_INFO ',以上问题请用中文回答,谢谢' INTO LV_ST22_INFO.
"调用AI接口
      CALL FUNCTION 'ZINT_AI_POST'
        EXPORTING
          input_str  = LV_ST22_INFO
          IMPORTING
            output_str = lv_answer.
      SUBMIT zcall_ai WITH p_input = LV_ST22_INFO  WITH p_input2 = lv_answer AND RETURN.
    ENDIF.
    ENDCASE.
ENDENHANCEMENT.

 

 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐