среда, 4 февраля 2015 г.

Dump ITAB_DUPLICATE_KEY

После копирования системы возникают ошибки с переносами и (как у меня с запуском цепочки). Один из способов лечения – проверить системную таблицу RSISOSMAP, ниже привожу выдержку из текста сап ноты (сама нота в pdf прилагается).
Reproducing the Issue
  1. Trigger the problematic DTP via transaction code RSA1
  2. Use the monitor function to view the DTP details/log
  3. Transaction code ST22 will contain the relevant ITAB_DUPLICATE_KEY dump.
Cause
This ABAP dump indicates that there may be duplicate transfer structure entries in the table RSISOSMAP.
This type of inconsistency normally happens only after system copies.
Resolution

In transaction code SE38, execute program RS_FIND_ISOSMAP_DUPREC to identify if there are any duplicate transfer structure names in table RSISOSMAP.
If there are duplicates, you can delete these by executing program RSAR_RSISOSMAP_REPAIR in Repair mode via SE38.

понедельник, 2 февраля 2015 г.

Чистаем основные данные в правилах (чтобы подсматривать)

*"----------------------------------------------------------------------
   
DATA : l_chavl   TYPE rsd_chavl.

    l_chavl
= source_fields-/bic/nccredit .


   
CALL FUNCTION 'RSAU_READ_MASTER_DATA'
     
EXPORTING
        i_iobjnm 
= 'NCCHCRKK'
        i_chavl  
= l_chavl
        i_attrnm 
= 'NCCRKK'
        i_date   
= l_date
     
IMPORTING
        e_attrval
= l_crkk
                   
EXCEPTIONS
                   
OTHERS.

*-----------------------------------------------------------------------


среда, 28 января 2015 г.

Как быстро описать тип с известной структурой + вызов OpenSQL (чтобы подсматривать)

    types begin of ty_source_package.
            include type _ty_s_sc_1.
    types summa type /bic/oinfrest.
    types end of ty_source_package.



          lt_source_package type standard table of ty_source_package,
          wa_source_package like line of lt_source_package, 



или
          wa_source_package type ty_source_package,


пятница, 12 декабря 2014 г.

Экраны. Форма запуска цепочки с фильтрами. Часть 2. (ведение флагов)


***********************************************

process before output.

  module t_1000_init.

  loop at   g_t_1000_itab
       into g_t_1000_wa
       with control t_1000
       cursor t_1000-current_line.

    module t_1000_move.
  endloop.

  module status_1000.

process after input.

  loop at g_t_1000_itab.
    chain.
      field /bic/pncflstate-/bic/ncflstate.
      field /bic/pncflstate-txtlg.
      field /bic/pncflstate-/bic/ekrstate.
      field /bic/pncflstate-/bic/ncdt.
      field /bic/pncflstate-/bic/nctime.
      module t_1000_modify on chain-request.
    endchain.
  endloop.

  module user_command_1000.
***********************************************
*&---------------------------------------------------------------------*
*& Report  ZN_INTERFACE_08
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report  zn_manager_sap_1109_setting.
*"----------------------------------------------------------------------
*"  Таблица. Нужна для объявления типов полей
tables /bic/pncflstate.
*-----------------------------------------------------------------------
*"  Переменные и все-все-все...
types:
    begin of t_t_1000,
      /bic/ncflstate  like /bic/pncflstate-/bic/ncflstate,
      txtlg           like /bic/pncflstate-txtlg,
      /bic/ekrstate   like /bic/pncflstate-/bic/ekrstate,
      /bic/ncdt       like /bic/pncflstate-/bic/ncdt,
      /bic/nctime     like /bic/pncflstate-/bic/nctime,
      end of t_t_1000.

data:
      g_t_1000_itab   type t_t_1000 occurs 0,
      g_t_1000_wa     type t_t_1000.  "work area

controls: t_1000 type tableview using screen 1000.
*-----------------------------------------------------------------------
perform select.

call screen 1000.
*-----------------------------------------------------------------------
module status_1000 output.
  set pf-status 'ZNMENU_SETTING'.
  case sy-ucomm.
*"  Выход из программы
    when 'EXIT' or 'BACK' or 'CANCEL'.
      leave program.
  endcase.
endmodule.                 " STATUS_1000  OUTPUT
*-----------------------------------------------------------------------
module t_1000_init output.
  read table g_t_1000_itab
  into /bic/pncflstate
 index t_1000-current_line.
endmodule.                    "T_1000_INIT OUTPUT
*-----------------------------------------------------------------------
module t_1000_move output.
  move-corresponding g_t_1000_wa to /bic/pncflstate.
endmodule.                    "T_1000_MOVE OUTPUT
*-----------------------------------------------------------------------
module t_1000_modify input.
  move-corresponding /bic/pncflstate to g_t_1000_wa.
  modify g_t_1000_itab
    from g_t_1000_wa
   index t_1000-current_line.
endmodule.                    "T_1000_MODIFY INPUT
*-----------------------------------------------------------------------
*"  Сохранить и обновить
module user_command_1000 input.
  case sy-ucomm.

    when 'SAVE'.
      loop at g_t_1000_itab into g_t_1000_wa.
        update /bic/pncflstate
           set /bic/ekrstate = g_t_1000_wa-/bic/ekrstate
         where /bic/ncflstate = g_t_1000_wa-/bic/ncflstate.
      endloop.
      message 'Парамерты сохранены' type 'I'.
      clear sy-ucomm.

    when 'REFRESH'.
      perform select.

  endcase.
endmodule.                    "USER_COMMAND_1000 INPUT
*-----------------------------------------------------------------------
form select.
  select *
  from /bic/pncflstate into corresponding fields
    of table g_t_1000_itab
 where /bic/ncflstate > 0.
endform.                    "select
***********************************************

Экраны. Форма запуска цепочки с фильтрами. Часть 1.

Небольшая заготовка для транзакции запуска цепочки и передачей в неё фильтров. 
Есть возможность просмотра лога цепочки, проверка и просмотр фильтров перед запуском. Навигация в стандартном стиле SAP.

Когда продуктив закрыт, а загрузиться что-то очень хочется :)

Только сразу не кидайте камни, часть функционала переделал, а часть пришлось оставить как есть...

В фильтры можно добавлять столько же значений, сколько добавляем в фильтры dtp.


Внешний вид:

вторник, 9 декабря 2014 г.

Сброс буферов SAP

На всякий случай, чтобы не забыть.


/$SYNC This resets all buffers of the application server
/$CUA This resets the CUA buffer of the application server
/$TAB This resets the TABLE buffers of the application server
/$NAM This resets the nametab buffer of the application server
/$DYNP - the screen buffer of the application server