REPORT YPARALL .

* This program issues a system message in all listed systems
*@ ZZZ ZZZ_010
*@ XXX local

DATA: HEAD(2), SYSTEM(3), CN_STR(7), RC LIKE SY-SUBRC.

DATA: PROGRAM LIKE SY-REPID,
      BEGIN OF T OCCURS 500,
        LINE(72),
      END   OF T.

DATA: BEGIN OF BDC_TAB OCCURS 5.
        INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.


* Retrieve remote system data

PROGRAM = SY-REPID.
READ REPORT PROGRAM INTO T.

LOOP AT T.
  HEAD = T.
  IF HEAD <> '*@'. DELETE T. ENDIF.
ENDLOOP.

SKIP.

CLEAR T.
LOOP AT T.
  SYSTEM = T+3(3).
  CN_STR = T+7(7).
  WRITE: / 'SYSTEM: ', SYSTEM, ' CONNECT_STRING: ', CN_STR.

CLEAR BDC_TAB.
REFRESH BDC_TAB.
  BDC_TAB-PROGRAM = 'SAPMSSY0'.
  BDC_TAB-DYNPRO = '0120'.
  BDC_TAB-DYNBEGIN = 'X'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

  BDC_TAB-FNAM = 'BDC_OKCODE'.
  BDC_TAB-FVAL = '/5'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

  BDC_TAB-PROGRAM = 'SAPMSEM1'.
  BDC_TAB-DYNPRO = '4400'.
  BDC_TAB-DYNBEGIN = 'X'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

  BDC_TAB-FNAM = 'EMLINE1'.
  BDC_TAB-FVAL = 'THIS IS A REAL NICE ABAP.'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

  BDC_TAB-FNAM = 'EMLINE2'.
  BDC_TAB-FVAL = 'EXECUTED PARALLEL IN ALL OUR SYSTEMS!!!!'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

* bdc_tab-fnam = 'TEMSG-APPLSERVER'.
* bdc_tab-fval = 'dino_C11_00'.
* append bdc_tab.
* clear bdc_tab.

* bdc_tab-fnam = 'TEMSG-DATDEL'.
* bdc_tab-fval = datum.
* append bdc_tab.
* clear bdc_tab.

* bdc_tab-fnam = 'TEMSG-TIMDEL'.
* bdc_tab-fval = time.
* append bdc_tab.
* clear bdc_tab.

  BDC_TAB-PROGRAM = 'SAPMSYST'.
  BDC_TAB-DYNPRO = '0040'.
  BDC_TAB-DYNBEGIN = 'X'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

  BDC_TAB-FNAM = 'BDC_OKCODE'.
  BDC_TAB-FVAL = '/3'.
  APPEND BDC_TAB.
  CLEAR BDC_TAB.

* if sy-sysid = system.
*   call transaction 'SM02' using bdc_tab mode 'N'.
* endif.

CALL FUNCTION 'RFC_CALL_TRANSACTION' DESTINATION CN_STR
             EXPORTING
                  TRANCODE = 'SM02'
             TABLES
                  BDCTABLE = BDC_TAB.
ENDLOOP.