вторник, 20 августа 2013 г.

Ожидание предыдущего прогона цепочки

*&---------------------------------------------------------------------*
*& Report  ZPC_CHECK_PREV_RUN_CHAIN
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZPC_CHECK_PREV_RUN_CHAIN.

DATAL_STATUS TYPE RSPC_STATE.

PARAMETERS L_CHAIN TYPE RSPC_CHAIN.

BREAK-POINT.

DO 3600 TIMES.

  SELECT SINGLE ANALYZED_STATUS
  FROM RSPCLOGCHAIN BYPASSING BUFFER
  INTO L_STATUS
 WHERE CHAIN_ID L_CHAIN
   AND DATUM SY-DATUM
   AND ANALYZED_STATUS EQ 'A'.

  IF SY-SUBRC NE 0.
    EXIT.
  ELSEIF SY-INDEX 3600.
    MESSAGE 'ОШИБКА! ДЕЛАЕМ ЦЕПОЧКУ КРАСНОЙ' TYPE 'E'STOP.
  ENDIF.

  WAIT UP TO SECONDS.

ENDDO.




понедельник, 12 августа 2013 г.

Читаем период из TVARV

*&---------------------------------------------------------------------*
*&  Include           RSBC_SEL_ROUTINE_TPL
*&---------------------------------------------------------------------*

program conversion_routine.
* Type pools used by conversion program
type-poolsrsarcrsarrrssm.
tablesrssdlrange.
* Global code used by conversion rules
*$*$ begin of global - insert your declaration only below this line  *-*
* TABLES: ...
* DATA:   ...
*$*$ end of global - insert your declaration only before this line   *-*
* -------------------------------------------------------------------
*     Fieldname     = FISCPER
*     data type      = NUMC
*     length          = 000007
* -------------------------------------------------------------------
form c_FISCPER
  tables l_t_range structure rssdlrange
  using i_r_request type ref to IF_RSBK_REQUEST_ADMINTAB_VIEW
        i_fieldnm type RSFIELDNM
  changing p_subrc like sy-subrc.
*       Insert source code to current selection field
*$*$ begin of routine - insert your code only below this line        *-*
  DATA
  ls_tvarvc           TYPE tvarvc
  .

* Находим период закрытия
  SELECT SINGLE INTO ls_tvarvc
  FROM tvarvc
  WHERE type  'S' AND name EQ 'Y_KPS_CLOSE_FISCPER_BE1000'.
  IF sy-subrc EQ 0.

    IF ls_tvarvc-high+4(3'012'.
      ls_tvarvc-high(4ls_tvarvc-high(41.
      ls_tvarvc-high+4(3'000'.
    ENDIF.

    l_t_range-fieldname 'FISCPER'.
    l_t_range-sign   'I'.
    l_t_range-option 'EQ'.
    l_t_range-low    ls_tvarvc-high + 1.
    APPEND l_t_range.

  ELSE.
    p_subrc sy-subrc.
  ENDIF.

*$*$ end of routine - insert your code only before this line         *-*
endform.

______________________________________________________________________________

Ещё вкусный вариант с дополнительной проверкой:

*&---------------------------------------------------------------------*
*&  Include           RSBC_SEL_ROUTINE_TPL
*&---------------------------------------------------------------------*

PROGRAM conversion_routine.
* Type pools used by conversion program
TYPE-POOLSrsarcrsarrrssm.
TABLESrssdlrange.
* Global code used by conversion rules
*$*$ begin of global - insert your declaration only below this line  *-*
* TABLES: ...
* DATA:   ...
*$*$ end of global - insert your declaration only before this line   *-*
* -------------------------------------------------------------------
*     Fieldname       = CALDAY
*     data type       = DATS
*     length          = 000008
* -------------------------------------------------------------------
FORM compute_CALDAY
  TABLES l_t_range STRUCTURE rssdlrange
  CHANGING p_subrc LIKE sy-subrc.
*       Insert source code to current selection field
*$*$ begin of routine - insert your code only below this line        *-*
  DATA:   ls_tvarvc TYPE tvarvc.

  SELECT SINGLE *
    INTO ls_tvarvc
    FROM tvarvc
   WHERE type 'S'
     AND name EQ 'ZSO_REVERSE_TURNOVER'.

  IF sy-subrc EQ 0.

* Защита от дурака, если не поставят "между" или "равно"
    IF ls_tvarvc-opti IS INITIAL.
      IF ls_tvarvc-high IS NOT INITIAL.
        ls_tvarvc-opti  'BT'.
      ELSE.
        ls_tvarvc-opti  'EQ'.
      ENDIF.
    ENDIF.
  
* Защита от дурака, если не поставят "включительно"
    IF ls_tvarvc-sign IS INITIAL.
      ls_tvarvc-sign    'I'.
    ENDIF.

    l_t_range-fieldname 'CALDAY'.
    l_t_range-sign      ls_tvarvc-sign.
    l_t_range-option    ls_tvarvc-opti.
    l_t_range-low       ls_tvarvc-low.
    l_t_range-high      ls_tvarvc-high.
    APPEND l_t_range.

  ELSE.
    p_subrc sy-subrc.
  ENDIF.

*$*$ end of routine - insert your code only before this line         *-*
ENDFORM.                    "compute_CALDAY


пятница, 9 августа 2013 г.

Зависла транзакция RSPC

There was an inconsistency in RSCOMPTLOGO:

TLOGO RSPC
APPLNM YPC_RSBU_SMETA_7                                - имя инфообласти
PARENTNAME YPC_RSBU_SMETA
CHILDNAME
NEXTNAME YPC_RSBU_SMETA_7                          - не должно совпадать с APPLNM!!!
TXTLG

Where the node above caused an infinite loop. I corrected this and now
RSA1 is accessible.




среда, 7 августа 2013 г.

Зависание GUI SAP Logon 730

При переключении закладок зависать стал GUI. Замечено для 7.3 версии.

Решение - остановка службы и процесса tKnoa-sm-F14079C0 (SAP-шпион).