Текущее время: Вс, июл 27 2025, 11:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 11:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ну и CALL DIALOG видимо тоже на отдельном стеке живёт..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 11:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
А вот еще проверка знаний для пятого класса :)
К примеру, в функциональном модуле захотелось вызвать подпрограмму (FORM). Как сделать так, чтобы параметры функционального модуля были доступны в этой подпрограмме? (передача параметров в подпрограмму не рассматривается).

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 11:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Без использования глобализации параметров и без глобальных данных?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 12:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Вот-вот, я как раз про глобализацию параметров :) Раньше никогда этим не пользовался

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 12:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Сейчас угадаю...

Речь идет о следующем:
DATA: BEGIN OF COMMON PART <x> ... :?:

Прикольная штучка - пользовался пару раз :)

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 12:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Нет, там на закладке свойств функционального модуля справа внизу есть флажок "Глобально". В результате параметры функции будут доступны в подпрограммах (но действительны будут только на время вызова функции).

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 13:34 
Гость
nicky555 написал:
Речь идет о следующем:
DATA: BEGIN OF COMMON PART <x> ... :?:


Внутри одной группы функций это не требуется. Эта штука между програмами работает. Причём все равно её надо определять в глобальных данных программ.

То, чего хотел г.Королёв уже прояснилось :)

А чем там всё-таки в основных средствах вызывается отчёт/модуль?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 13:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Это я был вверху...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 13:36 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
nicky555 написал:
ну так вот...
есть обработка ОС (AS01-AS03),
есть возможность вызвать оттуда свою программу (отчет, диалог),
есть расписанная всеми с ног до головы возможность получить данные контекста через память (через field-symbols).
Соответственно, пишу свою вызываемую программу, ожидаю, используя Field-symbols, получить данные контекста транзакций ОС.
... И ничего не выходит :wink:
Вопрос: как реализован вызов моей программы?

А можно я тоже подключусь? Если я правильно понял задачу, то решение, видимо, заключается в том, что доступ с помощью field-symbols возможен к переменным вызывающих программ, которые загружены в ту же Internal Session, что и вызываемая программа. В случае использования SUBMIT создаётся новая Internal Session (впрочем, как и при CALL FUNCTION '...' STARTING NEW TASK), в случае же использования PERFORM или CALL FUNCTION '...' новая сессия не создаётся.
Code:
REPORT  zef_test3.
DATA:
  g_text(3) VALUE 'SAP'
.
SUBMIT zef_test5 AND RETURN.
PERFORM foreign_access(zef_test5).



REPORT zef_test5.
TYPES:
  t_text TYPE c LENGTH 3
.
PERFORM foreign_access.

FORM foreign_access.

  FIELD-SYMBOLS:
    <g_text> TYPE t_text
  .
  ASSIGN ('(ZEF_TEST3)G_TEXT') TO <g_text>.
  IF sy-subrc = 0.
    WRITE <g_text>.
  ENDIF.
ENDFORM.                    "foreign_access

В результате будет выведена одна строка.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 13:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
EGF написал(а):
В случае использования SUBMIT создаётся новая Internal Session (впрочем, как и при CALL FUNCTION '...' STARTING NEW TASK)


Да, и при CALL TRANSACTION и CALL DIALOG тоже..
Причём интернал сессий может быть не более 9-ти..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 14:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Сергей Королев написал:
Нет, там на закладке свойств функционального модуля справа внизу есть флажок "Глобально". В результате параметры функции будут доступны в подпрограммах (но действительны будут только на время вызова функции).


А я-то подумал о разных программах... Внутри группы функций вопрос не очень интересен...

2EGF: совершенно верно.
Тот вызов, о котором я упоминал есть REP-REP интерфейс, реализован, в зависимости от настройки, через SUBMIT или CALL TRANSACTION.
То бишь, стартует новую Internal session. Обмен же данными между ними (смотрим справку), только через Export/Import ... memory...

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 15:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Засада, был уверен, что при SUBMIT'е работает ASSIGN, но видимо просто вызывал подпрограмму через PERFORM f IN PROGRAM p.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 12 2005, 12:15 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
На форуме SAPfans.com есть интересный пример, откопанный в недрах стандартного кода САП.
Code:
  IF 'Z' < '9'.
    HIGHVALUE = '9999999999999999999999'.
  ELSE.
    HIGHVALUE = 'ZZZZZZZZZZZZZZZZZZZZZZ'.
  ENDIF.

Для чего нужен этот код? Правильного ответа у меня нет, но наиболее вероятные версии есть здесь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 25 2005, 17:19 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Недавно наткнулся на общеизвестную, но не совсем очевидную вещь.

Code:
CONSTANTS:
  gc_matnr  TYPE matnr VALUE '000000000000002492',
  gc_matnr1 TYPE matnr VALUE '000000000000002493'
.
DATA:
  gs_head  TYPE bapimathead,
  gs_mara  TYPE bapi_mara,
  gs_marax TYPE bapi_marax,
  g_bismt  TYPE bismt         "Старый номер материала
.
CALL FUNCTION 'ENQUEUE_EMMARAE'
  EXPORTING
    matnr          = gc_matnr
  EXCEPTIONS
    foreign_lock   = 1
    system_failure = 2
    OTHERS         = 3.
CHECK sy-subrc = 0.

CALL FUNCTION 'ENQUEUE_EMMARAE'
  EXPORTING
    matnr          = gc_matnr1
  EXCEPTIONS
    foreign_lock   = 1
    system_failure = 2
    OTHERS         = 3.
CHECK sy-subrc = 0.

gs_head-material = gc_matnr.
gs_mara-old_mat_no = 'XXX'.
gs_marax-old_mat_no = 'X'.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
  EXPORTING
    headdata    = gs_head
    clientdata  = gs_mara
    clientdatax = gs_marax.

COMMIT WORK.

CALL FUNCTION 'ENQUEUE_EMMARAE'
  EXPORTING
    matnr          = gc_matnr
  EXCEPTIONS
    foreign_lock   = 1
    system_failure = 2
    OTHERS         = 3.
WRITE sy-subrc.

CALL FUNCTION 'ENQUEUE_EMMARAE'
  EXPORTING
    matnr          = gc_matnr1
  EXCEPTIONS
    foreign_lock   = 1
    system_failure = 2
    OTHERS         = 3.
WRITE / sy-subrc.

SELECT SINGLE bismt
  INTO g_bismt
  FROM mara
  WHERE matnr = gc_matnr.
WRITE / g_bismt.


Вопрос: что будет на экране, если материалы gc_matnr и gc_matnr1 существуют в системе?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 31 2005, 09:07 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Немного задержался с ответом...
На экране будет вот что
Code:
    0
    0
XXX   

Общеизвестный, но неочевидный факт заключается в том, что после комманды COMMIT WORK будут сняты все блокировки, установленные ранее в программе с параметром
_SCOPE = '2', который устанавливается в это значение по умолчанию.
Я долго удивлялся, куда же девались мои блокировки.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


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

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


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

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