Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Please help me - Wat is this program doing ?

Former Member
0 Likes
658

REPORT yfi1_trfcmonitor.

*----


  • TABLE Declarations

*----


TABLES: trfcqin. "#EC *

*----


  • INTERNAL TABLE Declarations.

*----


DATA: it_err_queue TYPE STANDARD TABLE OF trfcqin, " Internal table for error queues

it_app_queue TYPE STANDARD TABLE OF trfcqin, " Internal table for first LUW

it_qtable TYPE STANDARD TABLE OF trfcqin,

it_trfcqins TYPE STANDARD TABLE OF trfcqins,

it_qiwklist TYPE STANDARD TABLE OF qiwktab,

fields LIKE sval OCCURS 0 WITH HEADER LINE. " Internal table of current queues

  • it_qview TYPE STANDARD TABLE OF trfcqview.

*----


  • Variable Declarations.

*----


DATA: v_acttid TYPE arfctid, " Transaction ID

  • reg_qname LIKE qrfcevent-qname,

  • range_tab LIKE RANGE OF reg_qname,

  • range_line LIKE LINE OF range_tab.

rmqdest LIKE rfcdes-rfcdest,

subrc LIKE sy-subrc.

  • rfcmess(72),

  • p_title(60) TYPE c,

  • retcode TYPE c,

  • globalfield(100),

  • globalline LIKE sy-linno.

*----


  • Work Area Declarations

*----


DATA: wa_qiwklist TYPE qiwktab, " Work area of type qiwktab

wa_queue LIKE it_err_queue,

wa_err_queue LIKE trfcqin,

wa_app_queue LIKE trfcqin,

wa_trfcqins TYPE trfcqins,

wa_qview TYPE trfcqview. " Work area of type trfcqview.

*----


  • selection parameters

*----


PARAMETERS: client LIKE sy-mandt DEFAULT sy-mandt,

qname LIKE trfcqin-qname DEFAULT 'XBTR*'.

SELECT-OPTIONS: qtab FOR trfcqin-qname NO-DISPLAY ."default '*'

client = sy-mandt.

  • Getting all the queues

CALL FUNCTION 'QIWK_GET_ALL'

EXPORTING

client = client

TABLES

qiwklist = it_qiwklist.

LOOP AT it_qiwklist INTO wa_qiwklist

WHERE qname = qname.

  • Getting all the error queues

CALL FUNCTION 'TRFC_QIN_GET_ERROR_QUEUES'

EXPORTING

client = sy-mandt

TABLES

qtable = it_err_queue.

LOOP AT it_err_queue INTO wa_err_queue.

*getting the first LUW.

CALL FUNCTION 'TRFC_QIN_GET_FIRST_LUW'

EXPORTING

qname = wa_err_queue-qname

  • no_read_lock = 'X'

IMPORTING

tid = v_acttid

TABLES

qtable = it_app_queue

EXCEPTIONS

OTHERS = 1.

*save the current LUW.

READ TABLE it_app_queue INTO wa_app_queue INDEX 1.

IF sy-subrc EQ 0.

DELETE FROM trfcqin

WHERE arfcipid = wa_app_queue-arfcipid AND

arfcpid = wa_app_queue-arfcpid AND

arfctime = wa_app_queue-arfctime AND

arfctidcnt = wa_app_queue-arfctidcnt AND

qname = wa_app_queue-qname AND

qcount = wa_app_queue-qcount AND

qstate = 'SYSFAIL'.

*unlock the queue

CALL FUNCTION 'TRFC_QIN_RESTART'

EXPORTING

qname = wa_err_queue-qname

EXCEPTIONS

invalid_parameter = 1

system_failed = 2

communication_failed = 3

OTHERS = 4.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

MOVE-CORRESPONDING wa_app_queue TO wa_trfcqins.

APPEND wa_trfcqins TO it_trfcqins.

ENDIF.

ENDLOOP.

ENDLOOP.

INSERT trfcqins FROM TABLE it_trfcqins.

IF sy-subrc EQ 0.

CLEAR it_trfcqins.

ENDIF.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
501

This programs Unlocks the error queue during Transactional RFC.

When you call a remote system using tRFC, if some error occurs during execution, this program (in the remote system) find out the error logs and unlocks the resources,

1 REPLY 1
Read only

Former Member
0 Likes
502

This programs Unlocks the error queue during Transactional RFC.

When you call a remote system using tRFC, if some error occurs during execution, this program (in the remote system) find out the error logs and unlocks the resources,