Текущее время: Пн, июл 28 2025, 18:17

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Вызов главного экрана из подэкранов
СообщениеДобавлено: Вт, янв 11 2011, 07:18 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Добрый день!
Подскажите, можно ли каким-то образом программно запустить стандартную процедуру сохранения карточки (симитировать нажатие на кнопку SAVE) из другого экрана, чтобы выполнилась вся PBO-логика всех подэкранови всех бадишек, которые учавствуют в этом, если пользователь вручную нажал на кнопарь SAVE?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Вт, янв 11 2011, 08:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Цитата:
симитировать нажатие на кнопку SAVE

Цитата:
сли пользователь вручную нажал на кнопарь SAVE


Вы бы как то более подробнее написали. 11 января все таки.

Если Вам нужно запустить стандартную транзакцию из своей программы
почитайте про CALL TRANSACTION.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Вт, янв 11 2011, 08:51 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Речь идет о DMS (тр cv01n)?


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

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Да, именно о DMS, мне нужно с нашего экрана 0909, вызвать стандартное сохрание карточки, чтобы отработала PAI-логика всех экранов (ну или хотябы главного 0101) и отработали все бадишки IF_EX_DOCUMENT_MAIN01...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Вт, янв 11 2011, 09:29 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
lestat написал:
Да, именно о DMS, мне нужно с нашего экрана 0909, вызвать стандартное сохрание карточки, чтобы отработала PAI-логика всех экранов и отработали все бадишки IF_EX_DOCUMENT_MAIN01...

У нас в разных системах по разному это организованно. Насколько я знаю, расширить без взлома не получается, по крайней мере у нас везде поломано для этого дела. Так вот если надо из своего экрана вызвать сохранение всего договора, то просто подменяется (через память, можно через ассин попробовать) переменная OK_CODE главного экрана (по моему тут инклюд LCV110I01 MODULE d101_fcode) которая содержит код действия + чтоб корректно сохранить доп данные карточки, делали через модули обновления в бади DOCUMENT_MAIN01... Еще там какой то был способ, не помню точно. Просто решил поделится с каким решением я сталкивался. То есть возможно и нет нормального универсально способа для решения Вашей задачи, попробуйте. Возможно есть более красивые решения.


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

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Что-то ничего не выходит...
Не пойму как передать в 0101 экран ok-code и как программе сказать, что теперь надо выполнять PAI-логику экрана 0101...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Ср, янв 12 2011, 06:56 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Если не ошибаюсь, у Вас есть главный экран 0101 (ГФ CV110), потом у Вас есть подъэкран 0909 (CV130). Я так понимаю в 0909 у Вас есть кнопка SAVE по нажатию которой, Вы хотите чтобы произошло глобальное сохранение карточки. Что бы это сделать надо(как вариант) в ПАЙ логике 0909 передать в память какой то флаг, затем по этому флагу в ПАЙ логике 0101(пай логика вызовется сама, потому что это главный экран) подменить ok_code на SAVE (на тот момент Ok_code будет содержать код закладки).
Вариант конечно не очень. А зачем такое делать? почему не жмете глобальный SAVE?


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

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Там запускается поток согласования WF, перед которым карточку надо сохранить... Поэтому так...
Решил проблему следующим образом - передаю ok-code - 'SAVE' - и запускаю перерисовку вкладок, таким образом и экран 0101 подхватывает команду сохранить!
Code:
ok_code = 'SAVE'.
        PERFORM d101_set_active_tab
        USING ok_code
        CHANGING gf_repid
                 gf_dynp.

ВСЕМ СПАСИБО ЗА УЧАСТИЕ И ЗА СОВЕТЫ.


Последний раз редактировалось lestat Ср, янв 12 2011, 07:56, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Ср, янв 12 2011, 07:51 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Besa, а подскажите, как вы решили проблему передачи доп.данных документа из CV110 в бадишку? (Я про DMS опять) У нас Import FROM DATABASE, но вот вопрос - гарантирует ли это уникальность? К примеру если одновременно два пользователя запустили сохранение и пересеклись эти данные.... С MEMORY ID - походу все еще хуже, там данные постоянно пересекаются...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Ср, янв 12 2011, 08:29 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
lestat написал:
Besa, а подскажите, как вы решили проблему передачи доп.данных документа из CV110 в бадишку? (Я про DMS опять) У нас Import FROM DATABASE, но вот вопрос - гарантирует ли это уникальность? К примеру если одновременно два пользователя запустили сохранение и пересеклись эти данные.... С MEMORY ID - походу все еще хуже, там данные постоянно пересекаются...

Одно время я поддерживал этот функционал, в основном реализовано через MEMORY ID. Как это одновременно запустили сохранение? Если один пользователь правит карточку, то она блокируется. Может я Вас не правильно понимаю, у нас в процессе не участвует ворк флоу...
И еще по поводу Вашего кода, Вы бы там условие поставили, в Вашем случае Вы влияете на весь процесс.


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

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Я имею в виду, когда один пользователь сохранил карточку - через мемори id ушло что-то в базу. В это время второй пользователь правил ДРУГУЮ карточку и нажал сохранить до того, как первый пользователь дошел до бадишки, таким образом первый пользователь в бади получит ложные данные, поскольку как я понял - уникальность MEMORY ID там никак не обеспечивается...

Так я параметры в бадишку передаю:
Code:
EXPORT gt_soglas FROM gt_soglas[] TO DATABASE INDX(ST) FROM wa_indx ID 'GT_SOGL'.
EXPORT zsdoginf FROM zsdoginf TO MEMORY ID 'ZSDOGINF'.

Так принимаю:
Code:
IMPORT zsdoginf       TO zsdoginf         FROM MEMORY ID 'ZSDOGINF'.
IMPORT gt_soglas      TO GT_soglas[]      FROM DATABASE indx(st) ID 'GT_SOGL'        TO idx_TEMP.


Я ведь прав, что могут прийти левые данные в ситуации, которую я описал?

PS: у нас поток учавствует - согласование...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Ср, янв 12 2011, 12:03 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
А, в этом смысле, да, возможно Вы правы и такая ситуация теоритически может произойти. Я с таким не сталкивался, да и стараюсь вообще так не делать. Сап пишет
Цитата:
You should not use SAP memory for temporary storage because a user's parallel sessions use the same global memory.

Но тем не менее, наверное коллеги не нашли другого способа в конкретной ситуации и сделали именно так.
А чем Ваш способ координально отличается от memory id?


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

Зарегистрирован:
Чт, янв 14 2010, 13:26
Сообщения: 70
Откуда: Санкт-Петербург
Пол: Мужской
Пока ничем, но я планирую имя параметра id шифровать ключем договора, так вроде будет гарантироваться уникальность... Т.е. динамическое имя PARAMETER ID...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов главного экрана из подэкранов
СообщениеДобавлено: Пт, янв 14 2011, 15:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
lestat написал:
.... С MEMORY ID - походу все еще хуже, там данные постоянно пересекаются...

Это как?
В документации SAP все подробно расписано: MEMORY ID работает для всех сессий в рамках одного SAP GUI ;)
Если у вас разные пользователи запускают Workflow, то проблемы с SET/GET-parameters быть не должно.
Есть еще и ABAP-память (EXPORT gt_soglas FROM gt_soglas[] TO MEMORY ID 'GT_SOGL'.), которая работает в рамках одной внешней сессии(т.е. в рамках одной сессии SAP GUI) .

_________________
С уважением,
Удав.


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

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


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

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


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

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