Текущее время: Сб, авг 02 2025, 14:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: SAP 4.6C + Smartforms + загрузка/выгрузка
СообщениеДобавлено: Чт, апр 26 2007, 10:57 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Коллеги, подскажите, есть ли возможность каким-нибудь способом выгрузить/загрузить смартформу из/в 4.6c?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP 4.6C + Smartforms + загрузка/выгрузка
СообщениеДобавлено: Чт, апр 26 2007, 11:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 01 2005, 13:23
Сообщения: 303
Откуда: Питер
Пол: Мужской
Пономарев Артем написал:
Коллеги, подскажите, есть ли возможность каким-нибудь способом выгрузить/загрузить смартформу из/в 4.6c?

Smatfroms - Утилиты - Загрузить(выгрузить) формуляр??
Что нет такого чтоли в 4.6 С???

А ещё смотри тут:
http://sapboard.ru/forum/viewtopic.php?t=654
и тут:
http://sapboard.ru/forum/viewtopic.php?t=98


Последний раз редактировалось Preatos Чт, апр 26 2007, 11:17, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 11:14 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Было бы - не спрашивал.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 11:16 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Добавь в запрос, тип объекта SSFO


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 26 2007, 11:26 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Да, как вариант думал. Но хотелось бы чего более удобного.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 22 2007, 17:43 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Посмотрел на кучу макросов индуса по ссылке и типа "инсталлятор"...
Решил написать сам. Код сырой, но может кому пригодиться....
Выгрузка/загрузка идет прямыми селектами/инсертами, поэтому юзаем на свой страх и риск.
Есть бага с переименованием. Если грузим в ту же систему, откуда выгружали, переименовывая - то создается отдельный формуляр в названии которого (при просмотре через транзакцию smartforms), однако, будет фигурировать старое имя. Ни к каким проблемам это не приводит, но искать ошибку некогда.

Code:
REPORT zrufr_testapo.

* Selection screen:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

* Form name in the system
PARAMETERS: pformnam TYPE tdsfname MATCHCODE OBJECT sh_stxfadm
                                                    OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

* Master lang.
PARAMETERS: nlangu   TYPE sy-langu DEFAULT 'E',
* New form name while uploading
            nformnam TYPE tdsfname.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.

* Download / upload option
PARAMETERS: option(8) DEFAULT 'DOWNLOAD'.

SELECTION-SCREEN END OF BLOCK b3.

CONSTANTS: c_type(1)  VALUE 'F',
           c_relid    TYPE sychar02  VALUE 'XX',
           c_dir      TYPE localfile VALUE 'C:\SMARTFORMS\',
           c_pgmid    TYPE pgmid     VALUE 'R3TR',
           c_obj      TYPE trobjtype VALUE 'SSFO',
           c_bin      TYPE char10    VALUE 'BIN',
           c_tmp      TYPE devclass  VALUE '$TMP',
           c_size     TYPE i         VALUE 256,
           c_bigsize  TYPE i         VALUE 4096,
           c_stxfobjt TYPE tabname16 VALUE 'STXFOBJT',
           c_stxftxt  TYPE tabname16 VALUE 'STXFTXT',
           c_stxfadmt TYPE tabname16 VALUE 'STXFADMT',
           c_stxfvart TYPE tabname16 VALUE 'STXFVART',
           c_stxfvar  TYPE tabname16 VALUE 'STXFVAR',
           c_stxfcont TYPE tabname16 VALUE 'STXFCONT',
           c_carret   TYPE x         VALUE 0.

DATA: dir  TYPE localfile,
      file TYPE string,
      size TYPE i.

DATA: t_stxfobjt TYPE TABLE OF stxfobjt,
      t_stxftxt  TYPE TABLE OF stxftxt,
      t_stxfcont TYPE TABLE OF stxfcont,
      t_stxfadmt TYPE TABLE OF stxfadmt,
      t_stxfvart TYPE TABLE OF stxfvart,
      t_stxfvar  TYPE TABLE OF stxfvar.

DATA: wa_tadir    TYPE tadir,
      wa_stxfadm  TYPE stxfadm,
      wa_stxfobjt TYPE stxfobjt,
      wa_stxftxt  TYPE stxftxt,
      wa_stxfcont TYPE stxfcont,
      wa_stxfadmt TYPE stxfadmt,
      wa_stxfvart TYPE stxfvart,
      wa_stxfvar  TYPE stxfvar.


DATA: carret,
      carr2(2).

FIELD-SYMBOLS: <tmp>.

START-OF-SELECTION.

  ASSIGN carret TO <tmp> TYPE 'X'.
  <tmp> = c_carret.

  CONCATENATE carret carret INTO carr2.

  PERFORM init_proc.

  IF option EQ 'DOWNLOAD'.

    PERFORM download_proc.

  ELSEIF option EQ 'UPLOAD'.

    PERFORM upload_proc.

  ENDIF.

*---------------------------------------------------------------------*
*       FORM init_proc                                                *
*---------------------------------------------------------------------*
FORM init_proc.

  CLEAR: dir, file, size,
         wa_tadir,    wa_stxfadm,
         wa_stxfobjt, wa_stxftxt,
         wa_stxfcont, wa_stxfadmt,
         wa_stxfvart, wa_stxfvar.

  REFRESH: t_stxfobjt, t_stxftxt,
           t_stxfcont, t_stxfadmt,
           t_stxfvart.

* Create directory for output files
  CONCATENATE c_dir pformnam '\' INTO dir.

ENDFORM.

*---------------------------------------------------------------------*
*       FORM download_proc                                            *
*---------------------------------------------------------------------*
FORM download_proc.

  CALL FUNCTION 'GUI_CREATE_DIRECTORY'
       EXPORTING
            dirname = c_dir
       EXCEPTIONS
            OTHERS  = 0.

  CALL FUNCTION 'GUI_CREATE_DIRECTORY'
       EXPORTING
            dirname = dir
       EXCEPTIONS
            OTHERS  = 0.

* Get STXFCONT
  SELECT * FROM stxfcont INTO TABLE t_stxfcont
          WHERE formname   EQ pformnam AND
                relid      EQ c_relid   AND
                srtf2      GE 0.
  IF sy-dbcnt GT 0.
    size = c_bigsize * sy-dbcnt.
    CONCATENATE dir c_stxfcont INTO file.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              bin_filesize = size
              filename     = file
              filetype     = c_bin
         TABLES
              data_tab     = t_stxfcont
         EXCEPTIONS
              OTHERS       = 0.
  ENDIF.

* Get STXFADMT
  SELECT * FROM stxfadmt INTO TABLE t_stxfadmt
          WHERE formname   EQ pformnam.
  IF sy-dbcnt GT 0.
    CONCATENATE dir c_stxfadmt INTO file.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              bin_filesize = 1024
              filename     = file
              filetype     = c_bin
         TABLES
              data_tab     = t_stxfadmt
         EXCEPTIONS
              OTHERS       = 0.
  ENDIF.

* Get STXFVART
  SELECT * FROM stxfvart INTO TABLE t_stxfvart
          WHERE formname   EQ pformnam.
  IF sy-dbcnt GT 0.
    CONCATENATE dir c_stxfvart INTO file.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              bin_filesize = 1024
              filename     = file
              filetype     = c_bin
         TABLES
              data_tab     = t_stxfvart
         EXCEPTIONS
              OTHERS       = 0.
  ENDIF.

* Get STXFVAR
  SELECT * FROM stxfvar INTO TABLE t_stxfvar
          WHERE formname   EQ pformnam.
  IF sy-dbcnt EQ 0.
    wa_stxfvar-FORMNAME = pformnam.
    INSERT wa_stxfvar INTO TABLE t_stxfvar.
  ENDIF.
  CONCATENATE dir c_stxfvar INTO file.
  CALL FUNCTION 'GUI_DOWNLOAD'
       EXPORTING
            bin_filesize = 1024
            filename     = file
            filetype     = c_bin
       TABLES
            data_tab     = t_stxfvar
       EXCEPTIONS
            OTHERS       = 0.

* Get STXFOBJT
  SELECT * FROM stxfobjt INTO TABLE t_stxfobjt
          WHERE formname   EQ pformnam.
  IF sy-dbcnt GT 0.
    size = c_size * sy-dbcnt.
    CONCATENATE dir c_stxfobjt INTO file.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              bin_filesize = size
              filename     = file
              filetype     = c_bin
         TABLES
              data_tab     = t_stxfobjt
         EXCEPTIONS
              OTHERS       = 0.
  ENDIF.

* Get STXFTXT
  SELECT * FROM stxftxt INTO TABLE t_stxftxt
          WHERE formname   EQ pformnam AND
                txtype     EQ c_type.
  IF sy-dbcnt GT 0.
    size = c_size * sy-dbcnt.
    CONCATENATE dir c_stxftxt INTO file.
    CALL FUNCTION 'GUI_DOWNLOAD'
         EXPORTING
              bin_filesize = size
              filename     = file
              filetype     = c_bin
         TABLES
              data_tab     = t_stxftxt
         EXCEPTIONS
              OTHERS       = 0.
  ENDIF.

ENDFORM.

*---------------------------------------------------------------------*
*       FORM upload_proc                                              *
*---------------------------------------------------------------------*
FORM upload_proc.

* Set TADIR
  IF NOT nformnam IS INITIAL.
    wa_tadir-obj_name = nformnam.
  ELSE.
    wa_tadir-obj_name = pformnam.
  ENDIF.

  wa_tadir-pgmid     = c_pgmid.
  wa_tadir-object    = c_obj.
  wa_tadir-srcsystem = sy-sysid.
  wa_tadir-author    = sy-uname.
  wa_tadir-devclass  = c_tmp.
  wa_tadir-cproject  = ' L      '.

  IF NOT nlangu IS INITIAL.
    wa_tadir-masterlang = nlangu.
  ELSE.
    wa_tadir-masterlang = 'E'.
  ENDIF.

* Set STXFADM
  IF NOT nformnam IS INITIAL.
    wa_stxfadm-formname = nformnam.
  ELSE.
    wa_stxfadm-formname = pformnam.
  ENDIF.

  IF NOT nlangu IS INITIAL.
    wa_stxfadm-masterlang = nlangu.
  ELSE.
    wa_stxfadm-masterlang = 'E'.
  ENDIF.

  wa_stxfadm-devclass  = c_tmp.
  wa_stxfadm-version   = 1.
  wa_stxfadm-firstuser = sy-uname.
  wa_stxfadm-firstdate = sy-datum.
  wa_stxfadm-firsttime = sy-uzeit.
  wa_stxfadm-lastuser  = sy-uname.
  wa_stxfadm-lastdate  = sy-datum.
  wa_stxfadm-lasttime  = sy-uzeit.


* Get STXFCONT
  CONCATENATE dir c_stxfcont INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxfcont
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxfcont WHERE relid EQ carr2.

  IF NOT nformnam IS INITIAL.
    wa_stxfcont-formname = nformnam.
    MODIFY t_stxfcont FROM wa_stxfcont TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

* Get STXFADMT
  CONCATENATE dir c_stxfadmt INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxfadmt
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxfadmt WHERE langu EQ carret.

  IF NOT nformnam IS INITIAL.
    wa_stxfadmt-formname = nformnam.
    MODIFY t_stxfadmt FROM wa_stxfadmt TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

* Get STXFVART
  CONCATENATE dir c_stxfvart INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxfvart
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxfvart WHERE langu EQ carret.

  IF NOT nformnam IS INITIAL.
    wa_stxfvart-formname = nformnam.
    MODIFY t_stxfvart FROM wa_stxfvart TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

* Get STXFVAR
  CONCATENATE dir c_stxfvar INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxfvar
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxfvar WHERE formname CO carret.

  IF NOT nformnam IS INITIAL.
    wa_stxfvar-formname = nformnam.
    MODIFY t_stxfvar FROM wa_stxfvar TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

* Get STXFOBJT
  CONCATENATE dir c_stxfobjt INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxfobjt
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxfobjt WHERE langu EQ carret.

  IF NOT nformnam IS INITIAL.
    wa_stxfobjt-formname = nformnam.
    MODIFY t_stxfobjt FROM wa_stxfobjt TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

* Get STXFTXT
  CONCATENATE dir c_stxftxt INTO file.
  CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
            filename = file
            filetype = c_bin
       TABLES
            data_tab = t_stxftxt
       EXCEPTIONS
            OTHERS   = 0.

  DELETE t_stxftxt WHERE spras EQ carret.

  IF NOT nformnam IS INITIAL.
    wa_stxftxt-formname = nformnam.
    MODIFY t_stxftxt FROM wa_stxftxt TRANSPORTING formname
                  WHERE formname = pformnam.
  ENDIF.

  INSERT INTO tadir VALUES wa_tadir.

  INSERT: stxfcont FROM TABLE t_stxfcont,
          stxfadmt FROM TABLE t_stxfadmt.

  INSERT INTO stxfadm VALUES wa_stxfadm.

  INSERT: stxfvar  FROM TABLE t_stxfvar,
          stxfvart FROM TABLE t_stxfvart,
          stxfobjt FROM TABLE t_stxfobjt,
          stxftxt  FROM TABLE t_stxftxt.

  COMMIT WORK AND WAIT.

ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

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