Текущее время: Пт, июл 25 2025, 07:21

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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