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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 12:58 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Имеется программа, использующая ЛБД PNP. Для сбора табельных номеров используется вызов по кнопке отчетоа (submit report ZZZ1), результаты которого (Орг Единицы) складываются в глобальную табличку tabo. Штатный режим: пользователь запускает программу, давит на кнопку "найти людей", отчет ZZZ1 возвращает ему людей (правда пользователю приходится покликать немного прежде, чем получить список). Затем он запускает основную программу (по выходу из submit report ZZZ1 табличка tabo заполнена). Программа отрабатывает до конца. Все нормально. Когда пользователь возвращается в стартовый экран ЛБД, то табличка tabo магическим образом ПУСТА. Вопос: как это пофиксить? Приветствуются все идеи (самая простая - MEMORY ID, но так делать очень не хочется).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 13:04 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 13 2006, 14:42
Сообщения: 93
Пол: Мужской
Можно попробовать табличку tabo преобразовать в SELECT-OPTIONS (чтобы не смущала пользователей сделать ее NO-DISPLAY).
Вот они, насколько я помню, не чистятся при возврате на стартовый экран.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 14:54 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Aleqs написал:
Можно попробовать табличку tabo преобразовать в SELECT-OPTIONS (чтобы не смущала пользователей сделать ее NO-DISPLAY).
Вот они, насколько я помню, не чистятся при возврате на стартовый экран.

Это конечно вариант, хотя хотелось бы понять как такое поведение экранов с ЛБД изменить по-человечески, не очень хочется на каждую фигню создавать SO, да и не всегда это возможно. Может кто из ГУРУ знает ответ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 15:11 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
rush7ka написал(а):
Имеется программа, использующая ЛБД PNP. Для сбора табельных номеров используется вызов по кнопке отчетоа (submit report ZZZ1), результаты которого (Орг Единицы) складываются в глобальную табличку tabo.
Можете пояснить зачем в отчете который использует ЛБД PNP, вы используете сбор табельных номеров в другой программе (ZZZ1)?
rush7ka написал(а):
Когда пользователь возвращается в стартовый экран ЛБД, то табличка tabo магическим образом ПУСТА. Вопос: как это пофиксить?
В отладчике на каком этапе обнуляется табличка?

_________________
Sapere aude!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 16:05 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
N/A написал(а):
Можете пояснить зачем в отчете который использует ЛБД PNP, вы используете сбор табельных номеров в другой программе (ZZZ1)?

Программа - вызов различных средств поиска (от простых вариантов до инфонаборов), позволяющих пользователю найти людей, которых он хочет обработать. Встраивание подобных средств в комплексное ср-во поиска решили не делать (тем более, что программка возвращает много чего полезного кроме табельных номеров :) ).
N/A написал(а):
В отладчике на каком этапе обнуляется табличка?

Табличка заполнена вплоть до END-OF-SELECTION. При повторном запуске в INITIALIZATION, AT SELECTION-SCREEN и START-OF-SELECTION она уже пуста.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 16:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
rush7ka написал(а):
Программа - вызов различных средств поиска (
Ясно.
rush7ka написал(а):
Табличка заполнена вплоть до END-OF-SELECTION. При повторном запуске в INITIALIZATION, AT SELECTION-SCREEN и START-OF-SELECTION она уже пуста.
странно. А под повторным запуском мы понимаем именно простой возврат на селекционный экран после отработки по F8? Скорей всего где-то чистится у вас в программе. Есть же наверняка что-то типа
Code:
Clear tabo[] или Refresh Tabo
. Может быть чистится не явно. Я думаю LBD здесь не причем.

_________________
Sapere aude!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 16:57 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
rush7ka написал(а):
Табличка заполнена вплоть до END-OF-SELECTION. При повторном запуске в INITIALIZATION, AT SELECTION-SCREEN и START-OF-SELECTION она уже пуста.

Когда программа заканчивает работу и возвращается к селекционному экрану - переменные очищаются. Поэтому если хотите сохранить свою tabo в неприкосновенности - надо ее сохранять, например в АБАП памяти (EXPORT TO MEMORY), а в событии INITIALIZATION соответственно доставать (IMPORT FROM MEMORY)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД  Тема решена
СообщениеДобавлено: Пт, окт 30 2009, 17:13 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
ArmAnn написал:
Когда программа заканчивает работу и возвращается к селекционному экрану - переменные очищаются. Поэтому если хотите сохранить свою tabo в неприкосновенности - надо ее сохранять, например в АБАП памяти (EXPORT TO MEMORY), а в событии INITIALIZATION соответственно доставать (IMPORT FROM MEMORY)

ААА!!!! И Эти люди запрещают мне ковыряться в носу ???Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ!
Всем спасибо за помощь, хотя концепция принудительной очистки памяти ЧУЖОЙ программы выходит за пределы моего понимания ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пт, окт 30 2009, 17:20 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
ArmAnn написал:
Когда программа заканчивает работу и возвращается к селекционному экрану - переменные очищаются.
Блин, точно помню задвоение у себя в простом отчете при повторном запуске без очистки таблички. :roll: (вспоминает код)

_________________
Sapere aude!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Сб, окт 31 2009, 10:54 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
rush7ka написал(а):
Всем спасибо за помощь, хотя концепция принудительной очистки памяти ЧУЖОЙ программы выходит за пределы моего понимания ...

Насколько я понимаю тут логика такая - программа отработала, используемая память освобождается и очищается.


N/A написал(а):
Блин, точно помню задвоение у себя в простом отчете при повторном запуске без очистки таблички. :roll: (вспоминает код)

ага, покажите код :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пн, ноя 02 2009, 02:00 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
ArmAnn написал:
Когда программа заканчивает работу и возвращается к селекционному экрану - переменные очищаются

Не совсем так, там просто делается повторный SUBMIT программы...
RSDBRUNT:
Code:
FORM %_RETURN_TO_SELSCREEN.                                       "#EC *

  IF MEMKEY-REPORT NE SPACE.
    SUBMIT (MEMKEY-REPORT) VIA SELECTION-SCREEN
                      %_INTERNAL_%_SUBMODE_% MEMKEY-INT_MODE
                      USING SELECTION-SCREEN SUBMIT_SCREEN
                      USING SELECTION-SET MEMKEY-VARIANT.
  ENDIF.

ENDFORM.

_________________
Изображение Попытка не пытка


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обнуление глобальных переменных при работе с ЛБД
СообщениеДобавлено: Пн, ноя 02 2009, 09:03 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
DKiyanov написал:
ArmAnn написал:
Когда программа заканчивает работу и возвращается к селекционному экрану - переменные очищаются
Не совсем так, там просто делается повторный SUBMIT программы...

ага... понятно

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


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

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


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

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


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

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