Текущее время: Чт, июл 31 2025, 02:33

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


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

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


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

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