Skip to Content
0
Jul 19, 2022 at 08:29 AM

calling perform from another Program

160 Views Last edit Jul 19, 2022 at 08:30 AM 3 rev

Hallo together, i have to call a Form from anotehr Report but Im having a Problem it wonts work. there is no syntax error.

 
*Programm A
READ TABLE gt_out ASSIGNING FIELD-SYMBOL(<fs_gtout>) INDEX row.
    IF sy-subrc = 0 .

*Für die EBELN wird diese FUBA aufgerufen um den richtigen EBELN mit den richtigen position angezeigt wird
      CASE column.
        WHEN 'EBELN'.
          CHECK <fs_gtout>-ebeln IS NOT INITIAL AND <fs_gtout>-ebelp IS NOT INITIAL.
          CALL FUNCTION 'ME_DISPLAY_PURCHASE_DOCUMENT'
            EXPORTING
              i_ebeln        = <fs_gtout>-ebeln
              i_ebelp        = <fs_gtout>-ebelp
              i_display_only = abap_true
            EXCEPTIONS
              OTHERS         = 5.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE sy-msgty.
          ENDIF.
        WHEN 'MATNR'.
          CHECK <fs_gtout>-matnr IS NOT INITIAL.
          SET PARAMETER ID 'MAT' FIELD <fs_gtout>-matnr.
          CALL TRANSACTION 'ZDISPO' AND SKIP FIRST SCREEN.

        WHEN 'LIFNR'.
      CHECK <fs_gtout>-lifnr IS NOT INITIAL.
      SET PARAMETER ID 'LRE' FIELD <fs_gtout>-lifnr.
      PERFORM mk_03 IN PROGRAM b USING <fs_gtout>-lifnr.

      ENDCASE.
    ENDIF.

*Program b
FORM call_mk03 USING    l_lifnr.

  DATA BEGIN OF bdcdata OCCURS 100.
          INCLUDE STRUCTURE bdcdata.
  DATA END OF bdcdata.
  DATA BEGIN OF itab OCCURS 10.
          INCLUDE STRUCTURE bdcmsgcoll.
  DATA END OF itab.

  DATA: c_temp(10) TYPE c.

  SELECT SINGLE * FROM wyt3 WHERE lifnr = l_lifnr
                            AND   ekorg = '1000'.
  IF sy-subrc <> 0.
*    set parameter id 'LIF' field l_lifnr.
*    set parameter id 'EKO' field '1000'.
**    set parameter id '
*    call transaction 'MK03' and skip first screen.
* TODO Fehlermeldung
    SELECT SINGLE * FROM lfa1 WHERE lifnr = l_lifnr
                              AND   ktokk = 'REPA'.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
  ENDIF.

  bdcdata-program  = 'SAPMF02K'.
  bdcdata-dynpro   = '0108'.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
  CLEAR bdcdata.

  bdcdata-fnam     = 'BDC_OKCODE'.
  bdcdata-fval     = '/00'.
  APPEND bdcdata.

  bdcdata-fnam     = 'BDC_CURSOR'.
  bdcdata-fval     = 'RF02K-LIFNR'.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-LIFNR'.
  bdcdata-fval     = l_lifnr.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-EKORG'.
  bdcdata-fval     = '1000'.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-D0110'.
  bdcdata-fval     = 'X'.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-D0120'.
  bdcdata-fval     = ''.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-D0130'.
  bdcdata-fval     = ''.
  APPEND bdcdata.

  bdcdata-fnam     = 'WRF02K-D0380'.
  bdcdata-fval     = 'X'.
  APPEND bdcdata.

  bdcdata-fnam     = 'RF02K-D0310'.
  bdcdata-fval     = 'X'.
  APPEND bdcdata.

  bdcdata-fnam     = 'WRF02K-D0320'.
  bdcdata-fval     = 'X'.
  APPEND bdcdata.


* Keine Fehler => Transaktion kann ausgeführt werden
  CALL TRANSACTION 'MK03'  USING bdcdata  MODE 'E' MESSAGES INTO itab.