Skip to Content
-1
Dec 17, 2018 at 08:52 PM

CALL SCREEN from handle_user_command won't execute new screen's PBO

196 Views Last edit Dec 18, 2018 at 06:46 AM 2 rev

I am calling an ALV grid using 'REUSE_ALV_GRID_DISPLAY' and have a hotspot setup on the grid. Whenever the user clicks the hotspot a new screen is called. My problem is that, the new screen has 2 buttons and nothing happens when a user is clicking on these buttons. My guess is that the PBO of the new screen is not being executed.

The code of my subroutine HANDLE_USER_COMMAND is given below:

  CASE r_ucomm.
    WHEN '&IC1'.

      IF rs_selfield-fieldname = 'SEL'.


        READ TABLE it_zcnclog INTO wa_zcnclog INDEX rs_selfield-tabindex.

        date        = wa_zcnclog-sys_date.
        material    = wa_zcnclog-material.
        operator    = wa_zcnclog-operator.
        hours1      = wa_zcnclog-downtime1.
        hours2      = wa_zcnclog-downtime2.
        hours3      = wa_zcnclog-downtime3.
        downtime1   = wa_zcnclog-downtimecode1.
        downtime2   = wa_zcnclog-downtimecode2.
        downtime3   = wa_zcnclog-downtimecode3.
        scrapcode   = wa_zcnclog-scrapcode.
        qtygood     = wa_zcnclog-qtygood.
        qtyscrap    = wa_zcnclog-qtyscrap.
        runtime     = wa_zcnclog-runtime.
        shiftcode   = wa_zcnclog-shiftcode.
        machinecode = wa_zcnclog-machinecode.

        CALL SCREEN '1001'.

        EXIT.

      ENDIF.

    WHEN 'BACK'.
      LEAVE.

  ENDCASE.

ENDFORM.

I am very new to ABAP and don't know if i am doing something wrong or if this is not possible. I have tried LEAVE TO SCREEN and SET SCREEN but these don't seem to be working and throw an error "Screen not found". After researching online i think this is because the screens are custom screens.

My PAI module:

 MODULE save_output INPUT.

CASE OK_CODE.
  WHEN 'EXIT'.
    LEAVE PROGRAM.
  WHEN 'SAVE'.

      it_zcnclog_edit-PLANT = 'MO'.
      it_zcnclog_edit-SYS_DATE = wa_zcnclog-SYS_DATE.
      it_zcnclog_edit-SYS_TIME = wa_zcnclog-SYS_TIME.
      it_zcnclog_edit-ENTRYDATE = wa_zcnclog-ENTRYDATE.
      it_zcnclog_edit-CREATEDBY = wa_zcnclog-CREATEDBY.
      it_zcnclog_edit-OPERATOR = OPERATOR.
      it_zcnclog_edit-MACHINECODE = wa_zcnclog-MACHINECODE.
      it_zcnclog_edit-RUNTIME = RUNTIME.
      it_zcnclog_edit-MATERIAL = MATERIAL.
      it_zcnclog_edit-QTYGOOD = wa_zcnclog-QTYGOOD.
      it_zcnclog_edit-QTYSCRAP = wa_zcnclog-QTYSCRAP.
      it_zcnclog_edit-SCRAPCODE = wa_zcnclog-SCRAPCODE.
      it_zcnclog_edit-DOWNTIMECODE1 = DOWNTIME1.
      it_zcnclog_edit-DOWNTIME1 = HOURS1.
      it_zcnclog_edit-DOWNTIMECODE2 = DOWNTIME2.
      it_zcnclog_edit-DOWNTIME2 = HOURS2.
      it_zcnclog_edit-DOWNTIMECODE3 = DOWNTIME3.
      it_zcnclog_edit-DOWNTIME3 = HOURS3.

      MODIFY zcnclog from table it_zcnclog_edit.
      CALL SCREEN '1000'.

     ENDCASE.
ENDMODULE.

I dont have a PBO module for screen 1001. For some reason this PAI module is not being called. When i debug the debugger seems to be stuck in the handle_user_command. Please help.