Example Source Code

The following unsupported source code is not intended to be a production-ready implementation and is provided only as an example of how to customize SAP to meet your specific needs.

Note:

The server name and the parameter values of the constant gc_url must be modified to match the your deployment as described in Compose View URLs.

*&---------------------------------------------------------------------*
*& Report  ZPM_CALLEX
*&
*&---------------------------------------------------------------------*

REPORT zpm_callex.

CONSTANTS: gc_url TYPE string
                  VALUE 'http://servername/BCEnterprise/home.aspx?VIEWID=DOC_3A9E0&TAGFILTER=9d14c5&NAVSTATE=HIDE&'.

FORM zcallex_fl.
  DATA: lv_url TYPE bxmnodes-url,
        ls_iflo TYPE iflo.

  PERFORM get_context_iflo CHANGING ls_iflo.
  IF ls_iflo-tplnr IS INITIAL.
    MESSAGE s398(00) WITH 'Functional location can not be determined'.
  ELSE.
    WRITE ls_iflo-tplnr TO ls_iflo-tplnr USING EDIT MASK '==TPLNR'.
    CONCATENATE gc_url 'FL=' ls_iflo-tplnr INTO lv_url.

    CALL FUNCTION 'PRGN_GENER_EXECUTE_URL'
      EXPORTING
        node_data = lv_url.
  ENDIF.

ENDFORM.                    "

*&---------------------------------------------------------------------*
*&      Form  GET_CONTEXT_IFLO
*&---------------------------------------------------------------------*
FORM get_context_iflo CHANGING cs_iflo  TYPE iflo.
  DATA: lv_name TYPE string.

  FIELD-SYMBOLS <ls_iflo> TYPE iflo.

* Context data sent by COIH
  lv_name = '(SAPMILO0)IFLO'.
  ASSIGN (lv_name) TO <ls_iflo>.
  IF sy-subrc <> 0.
    RETURN.
  ENDIF.

  cs_iflo = <ls_iflo>.

ENDFORM.

FORM zcallex_eq.
  DATA: lv_url TYPE bxmnodes-url,
        ls_itob TYPE itob.

  PERFORM get_context_itob CHANGING ls_itob.
  IF ls_itob-equnr IS INITIAL.
    MESSAGE s398(00) WITH 'Equipment can not be determined'.
  ELSE.
*   write ls_iflo-tplnr to ls_iflo-tplnr using edit mask '==TPLNR'.

    CONCATENATE gc_url 'EQ=' ls_itob-equnr INTO lv_url.

    CALL FUNCTION 'PRGN_GENER_EXECUTE_URL'
      EXPORTING
        node_data = lv_url.
  ENDIF.

ENDFORM.                    "

*&---------------------------------------------------------------------*
*&      Form  GET_CONTEXT_ITOB
*&---------------------------------------------------------------------*
FORM get_context_itob CHANGING cs_itob  TYPE itob.
  DATA: lv_name TYPE string.

  FIELD-SYMBOLS <ls_itob> TYPE itob.

* Context data sent by COIH
  lv_name = '(SAPMIEQ0)ITOB'.
  ASSIGN (lv_name) TO <ls_itob>.
  IF sy-subrc <> 0.
    RETURN.
  ENDIF.

  cs_itob = <ls_itob>.

ENDFORM.

2023