Текущее время: Сб, июл 26 2025, 22:17

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


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

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


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

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