Текущее время: Ср, июл 30 2025, 22:55

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


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


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: ЗАпуск транзакции из внешней программы
СообщениеДобавлено: Ср, июл 18 2007, 07:37 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 17 2007, 17:53
Сообщения: 2
Коллеги,
можно ли находясь во внешней программе (например, самописной информационной системе) запустить транзакцию - т.е. фактически залогинится и в окне SAPGUI выполнить транзакцию в диалоговом режиме?

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ЗАпуск транзакции из внешней программы
СообщениеДобавлено: Ср, июл 18 2007, 07:47 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
pon написал(а):
Коллеги,
можно ли находясь во внешней программе (например, самописной информационной системе) запустить транзакцию - т.е. фактически залогинится и в окне SAPGUI выполнить транзакцию в диалоговом режиме?

Спасибо.
Вобщем можно...............

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 18 2007, 09:22 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 16 2004, 04:26
Сообщения: 343
Откуда: не решил еще
Да. Например, через SAP GUI shortcut:)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 18 2007, 10:43 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 17 2007, 17:53
Сообщения: 2
Коллеги,
я имел ввиду программным способом - через вызов функц. модуля и метода Bapi. Если есть технология - какой модуль вызывать - поделитесь плиз.


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
pon написал(а):
Коллеги,
я имел ввиду программным способом - через вызов функц. модуля и метода Bapi. Если есть технология - какой модуль вызывать - поделитесь плиз.
Code:
ShellExecute(NULL, "open", "SAP.SAP", NULL, ".", SW_SHOWNORMAL);
Чем тебе это не подходит программным способом ? Или пиши полностью что за кусок реализуешь.................

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ЗАпуск транзакции из внешней программы
СообщениеДобавлено: Пн, июл 08 2013, 14:14 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, апр 06 2012, 10:00
Сообщения: 63
Подниму старую чужую тему.

Итак: Есть внешняя система, написанная на яве. Есть сап. Необходимо щелчком по ссылке в ява-программе открыть сап на нужной транзцакции с нужным документом. Пока всё уткнулось в то, что сап вернул ошибку Screen output without connection to user. RFC ФМ выглядит примерно так:

Code:
FUNCTION ZFM_RFC_DISPLAY_TST.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(I_BNAME) LIKE  SUID_ST_BNAME-BNAME
*"  EXPORTING
*"     VALUE(FUNCTION_CODE) LIKE  SY-SLSET
*"----------------------------------------------------------------------

*data: CONVE             LIKE DDSCR-CONVEXIT.
*DATA: BEGIN OF MEMORY_VALUES OCCURS 0,
*        FIELDNAME  LIKE BDCDATA-FNAM,
*        FIELDVALUE LIKE BDCDATA-FVAL,
*      END   OF MEMORY_VALUES.


  CLEAR: CONVE.

  CLEAR: MEMORY_VALUES. REFRESH MEMORY_VALUES.

  PERFORM SET_GUI_FOCUS.                                     "P30K076104

  CALL FUNCTION 'RFC_SET_EXPORT_PARAMETERS'
                     TABLES MEMORY_VALUES = MEMORY_VALUES.

  IF NOT I_BNAME IS INITIAL.                               "3.1H
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
         EXPORTING
              INPUT   = I_BNAME
         IMPORTING
              OUTPUT  = I_BNAME.
  ENDIF.
  SET PARAMETER ID 'XUS' FIELD I_BNAME.

  IF NOT I_BNAME IS INITIAL.
    CALL TRANSACTION 'SU01' AND SKIP FIRST SCREEN.
  ELSE.
    CALL TRANSACTION 'SU01'.
  ENDIF.

ENDFUNCTION.

*--------------------------------------------------------------------*
*       FORM IMPORT_PARAMETERS_FROM_MEMORY                           *
*--------------------------------------------------------------------*
*       Die Routine importiert die von der gerufenen Transak-        *
*       tion gesetzten Parameter, wertet diese aus und füllt         *
*       globale Parameter sowie den FUNCTION_CODE.                   *
*--------------------------------------------------------------------*
*  -->  I_FCODE                 (Funktionscode)                      *
*--------------------------------------------------------------------*
FORM IMPORT_PARAMETERS_FROM_MEMORY USING I_FCODE.

  CLEAR: INSERT_DOKAR, INSERT_DOKNR, INSERT_DOKTL, INSERT_DOKVR,
         INSERT_DPATH, I_FCODE, INSERT_MATNR, INSERT_AENNR,
         INSERT_EQUNR.                                       "P30K050855

  CLEAR: MEMORY_VALUES. REFRESH MEMORY_VALUES.

  CALL FUNCTION 'RFC_GET_IMPORT_PARAMETERS'
                     TABLES MEMORY_VALUES = MEMORY_VALUES.

  LOOP AT MEMORY_VALUES.
    CASE MEMORY_VALUES-FIELDNAME.
      WHEN 'DRAW-DOKAR'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_DOKAR.

      WHEN 'DRAW-DOKNR'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_DOKNR.

      WHEN 'DRAW-DOKTL'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_DOKTL.

      WHEN 'DRAW-DOKVR'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_DOKVR.

      WHEN 'COMMANDLINE'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_DPATH.

      WHEN 'MOD_FLAG'.
        IF MEMORY_VALUES-FIELDVALUE <> SPACE.

* Nur wenn nicht bereits mit Check out or insert info belegt.
          IF I_FCODE = SPACE.                               "P30K013764
            MOVE FC_UPDATE TO I_FCODE.                      "P30K013764
          ENDIF.                                            "P30K013764
        ENDIF.

      WHEN 'MARA-MATNR'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_MATNR.

      WHEN 'AENR-AENNR'.
        MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_AENNR.

      WHEN 'EQUI-EQUNR'.                                     "P30K050855
         MOVE: MEMORY_VALUES-FIELDVALUE TO INSERT_EQUNR.     "P30K050855

* AZ: Dokument einfügen, AE: Dokument ausgecheckt, UPDA: Angelegt
      WHEN 'FCODE'.
        CASE MEMORY_VALUES-FIELDVALUE(2).
*         document inserted
          WHEN 'AZ'.
            MOVE FC_DOC_INSERT TO I_FCODE.

            IMPORT RMCLS-KLART
                   RMCLS-CLASS
                   RMCLS-KEY_DATE
                   LANGUAGE                                        "4.0
                   H_OBTAB
                   STR_OBJEKTE
                   H_CLS_CHARAC
            FROM MEMORY ID 'CAD_CLS_RFC'.

*         document checked out
          WHEN 'AE'.
            MOVE FC_DOC_CHECKOUT TO I_FCODE.

            IMPORT RMCLS-KLART
                   RMCLS-CLASS
                   RMCLS-KEY_DATE
                   LANGUAGE                                        "4.0
                   H_OBTAB
                   STR_OBJEKTE
                   H_CLS_CHARAC
            FROM MEMORY ID 'CAD_CLS_RFC'.

*         document updated/created
          WHEN 'UP'.
            MOVE FC_DOC_UPDATE TO I_FCODE.

*         document view
          WHEN 'AV'.
            MOVE FC_DOC_VIEW TO I_FCODE.

            IMPORT RMCLS-KLART
                   RMCLS-CLASS
                   RMCLS-KEY_DATE
                   LANGUAGE
                   H_OBTAB
                   STR_OBJEKTE
                   H_CLS_CHARAC
            FROM MEMORY ID 'CAD_CLS_RFC'.

          WHEN OTHERS.
            CLEAR I_FCODE.
        ENDCASE.
    ENDCASE.
  ENDLOOP.

  CLEAR: DRAW_RFC.
  data: l_exit.
  CALL FUNCTION 'CAD_CHECK_FUNCTION_EXIT'
      IMPORTING
           F_EXIT  = l_exit.


* refresh memory values for dialog-RFC interface
  free memory id 'CAD_RFC1'.
  free memory id 'CAD_RFC2'.

ENDFORM.

FORM set_gui_focus.

  CALL FUNCTION 'SAPGUI_SET_PROPERTY'                               "30F
     DESTINATION 'SAPGUI'                                           "30F
     EXPORTING   property = 'ACTIVATE'                              "30F
                 value    = 'X'                                     "30F
     EXCEPTIONS  system_failure        = 1                          "30F
                 communication_failure = 2                          "30F
                 OTHERS                = 3.                         "30F
ENDFORM.                    "SET_GUI_FOCUS


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

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


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

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


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

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