Текущее время: Сб, июл 26 2025, 05:08

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Быстро создать SELECT
СообщениеДобавлено: Вт, июл 06 2010, 12:36 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
несем в продуктив
Code:
REPORT  Z_sa38.

DATA: HEAD          LIKE THEAD.
DATA: HEADSAVE      LIKE THEAD.
DATA: TEXT like table of TLINE with header line.
DATA: TEXT1 like table of TLINE-TDLINE with header line.
DATA: TEXTSAVE like table of TLINE with header line.
DATA: textname(70), MsgRez(1).

*************************************************
* в тексте ZSAVE_uname хранится последний вариант
data: SaveTextName type THEAD-TDNAME.
Concatenate 'ZSAVE' sy-uname into SaveTextName separated by '_'.

CALL FUNCTION 'READ_TEXT'
  EXPORTING
    ID             = 'ST  '
    LANGUAGE       = 'R'
    NAME           = SaveTextName
    OBJECT         = 'TEXT'
*   ARCHIVE_HANDLE                = 0
*   LOCAL_CAT                     = ' '
IMPORTING
   HEADER                        =  HEADSAVE
  TABLES
    LINES                         = TEXTSAVE
EXCEPTIONS
   ID                            = 1
   LANGUAGE                      = 2
   NAME                          = 3
   NOT_FOUND                     = 4
   OBJECT                        = 5
   REFERENCE_CHECK               = 6
   WRONG_ACCESS_TO_ARCHIVE       = 7
   OTHERS                        = 8.

IF SY-SUBRC <> 0.
* если текста ZSAVE_uname нет то создаю его.
  MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  CALL FUNCTION 'INIT_TEXT'
    EXPORTING
      ID             = 'ST  '
      LANGUAGE       = 'R'
      NAME           = SaveTextName
      OBJECT         = 'TEXT'
    IMPORTING
      HEADER         = HEADSAVE
    TABLES
      LINES          = TEXTSAVE
    EXCEPTIONS
      ID             = 1
      LANGUAGE       = 2
      NAME           = 3
      OBJECT         = 4
      OTHERS         = 5.
     IF SY-SUBRC <> 0.
       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
     ENDIF.
  TEXTSAVE-TDFORMAT = '*'. TEXTSAVE-TDLINE = ' '. Append TEXTSAVE.
  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
      CLIENT                = SY-MANDT
      HEADER                = HEADSAVE
      INSERT                = 'X'
      SAVEMODE_DIRECT       = 'X'
    TABLES
      LINES                 = TEXTSAVE
    EXCEPTIONS
      ID                    = 1
      LANGUAGE              = 2
      NAME                  = 3
      OBJECT                = 4
      OTHERS                = 5.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDIF.
***************************************************

Concatenate 'ZZRT' sy-uname sy-datum sy-uzeit
  into textname separated by '_'.

CALL FUNCTION 'INIT_TEXT'
  EXPORTING
    ID             = 'ST  '
    LANGUAGE       = 'R'
    NAME           = textname
    OBJECT         = 'TEXT'
  IMPORTING
    HEADER         = HEAD
  TABLES
    LINES          = TEXT
  EXCEPTIONS
    ID             = 1
    LANGUAGE       = 2
    NAME           = 3
    OBJECT         = 4
    OTHERS         = 5.

IF SY-SUBRC <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Insert lines of textsave into table text.
CALL FUNCTION 'EDIT_TEXT'
  EXPORTING
*    DISPLAY             = ' '
    EDITOR_TITLE        = 'Editor title'
    HEADER              = HEAD
*    SAVE                = ' '
*    LINE_EDITOR         = ' '
*    CONTROL             = ' '
*    PROGRAM             = ' '
*    LOCAL_CAT           = ' '
* IMPORTING
*   FUNCTION            =
*   NEWHEADER           =
*   RESULT              =
  TABLES
    LINES               = TEXT
EXCEPTIONS
   ID                  = 1
   LANGUAGE            = 2
   LINESIZE            = 3
   NAME                = 4
   OBJECT              = 5
   TEXTFORMAT          = 6
   COMMUNICATION       = 7
   OTHERS              = 8.

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


CALL FUNCTION 'SAVE_TEXT'
  EXPORTING
    CLIENT                = SY-MANDT
    HEADER                = HEAD
*   INSERT                = ' '
    SAVEMODE_DIRECT       = 'X'
*   OWNER_SPECIFIED       = ' '
*   LOCAL_CAT             = ' '
* IMPORTING
*   FUNCTION              =
*   NEWHEADER             =
  TABLES
    LINES                 = TEXT
  EXCEPTIONS
    ID                    = 1
    LANGUAGE              = 2
    NAME                  = 3
    OBJECT                = 4
    OTHERS                = 5.

IF SY-SUBRC <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
**********************************************************
* Сохраняю последнюю выполняемую программу
CALL FUNCTION 'SAVE_TEXT'
  EXPORTING
    CLIENT                = SY-MANDT
    HEADER                = HEADSAVE
*   INSERT                = ' '
    SAVEMODE_DIRECT       = 'X'
*   OWNER_SPECIFIED       = ' '
*   LOCAL_CAT             = ' '
* IMPORTING
*   FUNCTION              =
*   NEWHEADER             =
  TABLES
    LINES                 = TEXT
  EXCEPTIONS
    ID                    = 1
    LANGUAGE              = 2
    NAME                  = 3
    OBJECT                = 4
    OTHERS                = 5.

IF SY-SUBRC <> 0.
  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
************************************************************

CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
  EXPORTING
    DEFAULTOPTION        = 'J'
    DIAGNOSETEXT1        =
    'log  - "C:\Temp\Log_sa38.log"'
    TEXTLINE1            = 'Выполнить программу?'
    TITEL                = 'Динамический запуск программ.'
   CANCEL_DISPLAY       = ' '
IMPORTING
   ANSWER               = MsgRez .
* Если выполнить программу
  if MsgRez = 'J'.
    Write 'Текст программы'. new-line.
    loop at text.
      write: (3) sy-tabix, text-tdline. new-line.
    endloop.
    write 'Результат выполнения:'. new-line.

    DATA: CODE(72) OCCURS 10,
    PROG(8), MSG(120), LIN(3), WRD(10), OFF(3).

    APPEND 'PROGRAM SUBPOOL.'      TO CODE.
    APPEND 'LOAD-OF-PROGRAM.'      TO CODE.         " BAA added
*    APPEND 'FORM RUNTIME.'         TO CODE.        " BAA commented
    loop at text.
      append text-tdline to code.
    endloop.
*    APPEND 'ENDFORM.'           TO CODE.           " BAA commented

    GENERATE SUBROUTINE POOL CODE NAME PROG
    MESSAGE MSG  LINE LIN  WORD WRD  OFFSET OFF.

    IF SY-SUBRC <> 0.
    WRITE: / 'Error during generation in line', LIN, / MSG,
           / 'Word:', WRD, 'at offset', OFF.
    ELSE.
*      WRITE: / 'The name of the subroutine pool is', PROG.
      SKIP 2.
      PERFORM RUNTIME IN PROGRAM (PROG) IF FOUND.   " BAA added 'IF FOUND'
    ENDIF.
EndIf.

Concatenate '*******' sy-uname sy-datum sy-uzeit '*******'
Into text1 separated by '  '.
Append TEXT1.
loop at TEXT.
TEXT1 = TEXT-TDLINE. Append TEXT1.
EndLoop.
Text1 = '******* END *******'.
Append text1.

CALL FUNCTION 'WS_DOWNLOAD'
     EXPORTING
          codepage            = 'ASC'
          filename            = 'C:\Temp\Log_sa38.log'
          filetype            = 'ASC'
          mode                = 'A'
     TABLES
          data_tab            = TEXT1
     EXCEPTIONS
          file_open_error     = 1
          file_write_error    = 2
          invalid_filesize    = 3
          invalid_table_width = 4
          invalid_type        = 5.

в продуктиве sa38 и выбираем Z_sa38


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Быстро создать SELECT
СообщениеДобавлено: Вт, июл 06 2010, 15:38 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
VLAVLA написал:
Нашел интересную транзакцию ORA_PERF, как раз, то что надо :)


Общая для всех БД - тр. ST04.

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB