Текущее время: Вс, июл 20 2025, 06:46

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


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

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


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

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