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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 16:28 
Гость
скорее всего не в том месте SET PARAMETER... делаете, или в нем неправильные переменные :)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 16:37 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
Имеется в виду, что транзакция запустилась с параметрами, которые были бы, если бы я просто вызвал ее (без "SET PARAMETER ID...").


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 16:41 
Гость
проверьте в отладке - чем заполняются SET PARAMETER....


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 16:54 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
РМщик написал(а):
скорее всего не в том месте SET PARAMETER... делаете, или в нем неправильные переменные :)

Переменные стопудово правильные - только что перепроверил.

Пробую делать SET PARAMETER там, где Вы указали:
Цитата:
SET PARAMETER ID 'BUK' FIELD 'xxx'.
SET PARAMETER ID 'WEH' FIELD 'yyy'.

CALL 'ThUsrInfo' ID 'OPCODE' FIELD OP
ID 'TRANSACTION' FIELD '*FO31'
ID 'MODE' FIELD MODE
ID 'DEL_ON_EOT' FIELD 0.

Если просто запускаю прогу и выполняется этот кусок кода - то переменные не влияют ни на что.
Если же с помощью отладчика - то странное дело... ставлю точку останова на первый SET PARAMETER , три раза щелкаю F5 и транзакция запускается так, как надо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 17:00 
Гость
очень странно...

попробуй вставить

Code:
DATA: BUKRS1 TYPE BUKRS.

SET PARAMETER ID 'BUK' FIELD bukrs.
DO.
  GET PARAMETER ID 'BUK' FIELD bukrs1.
  IF BUKRS = BUKRS1.
     EXIT.
  ENDIF.
ENDDO.



Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 18:45 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
Прошу прощения, что выпал из беседы... появилась срочная задача...

Итак, попробовал вставить код:
Code:
DATA: BUKRS1 TYPE BUKRS.

SET PARAMETER ID 'BUK' FIELD bukrs.
DO.
  GET PARAMETER ID 'BUK' FIELD bukrs1.
  IF BUKRS = BUKRS1.
     EXIT.
  ENDIF.
ENDDO.

(вместо 'burks' я поставил нужное мне значение).

Если по программе идти с отладчиком, то никаких проблем - при первом же проходе цикла срабатывает EXIT.
Если после этого запустить прогу без точек останова, не меняя значений SET PARAMETER, то все тоже проходит ОК.
Если же изменить данные параметров и запустить прогу (опять же без отладчика), то она просто-напросто зависает. Такое ощущение, что изменение значений параметров вступает в силу только при наступлении какого-то события, например, при вызове CALL TRANSACTION, или же при остановке отладчика (что само по себе странно, но выглядит это именно так).

Кстати.. версия системы – 4.6 (если это вдруг на что-то влияет)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 18:58 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
Интересно все-таки... почему при использовании вот этого кода

Code:
CALL FUNCTION 'TH_CREATE_MODE'
   EXPORTING
     TRANSAKTION = 'SE38'.


у меня возникает динамическая ошибка: Exception condition "NO_AUTHORITY" raised. ?

Причем... что удивительно... я пробую использовать эту функцию в новой программе - все работает нормально, а если в той, в которой мне надо - выскакивает ошибка....
Н-да... наверное пора идти домой...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 09:16 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Почему-почему. Потому что код функции такой:

Цитата:

FUNCTION TH_CREATE_MODE.

IF TRANSAKTION NE SPACE.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
TCODE = TRANSAKTION
EXCEPTIONS
OK = 0
NOT_OK = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
RAISE NO_AUTHORITY.
ENDIF.
ENDIF.

CALL 'ThUsrInfo' ID 'OPCODE' FIELD OPCODE_CREATE_MODE
ID 'TRANSACTION' FIELD TRANSAKTION
ID 'MODE' FIELD MODE.
IF SY-SUBRC <> 0.
CASE SY-SUBRC.
WHEN 2. RAISE MAX_SESSIONS.
WHEN OTHERS. RAISE INTERNAL_ERROR.
ENDCASE.
ENDIF.
ENDFUNCTION.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 12:43 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
Да я понимаю, что код функции такой. Я понимаю, что перед запуском транзакции проверяются права на запуск. Но я не понимаю почему когда я использую код
Code:
CALL FUNCTION 'TH_CREATE_MODE'
   EXPORTING
     TRANSAKTION = 'SE38'.

в абсолютно чистой программе - все работает, а когда запускаю тот же код в программе, которая мне нужна - выскакивает динамическая ошибка Exception condition "NO_AUTHORITY" raised


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 12:58 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Наверняка ошибка в передаче параметров в функцию, код в студию.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 13:04 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
или в качестве аргумента функции transaktion явно указываете sy-tcode


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 17:30 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, янв 11 2007, 09:32
Сообщения: 65
Господа, снимаю вопрос про ошибку Exception condition "NO_AUTHORITY" raised при использовании 'TH_CREATE_MODE'. Проблема оказалась в том, что имена транзакций нужно писать БОЛЬШИМИ БУКВАМИ...

Вопрос по поводу не корректной работы SET PARAMETER остается:

Цитата:
Code:
SET PARAMETER ID 'BUK' FIELD 'xxx'.
SET PARAMETER ID 'WEH' FIELD 'yyy'.

CALL FUNCTION 'TH_CREATE_MODE'
   EXPORTING
     TRANSAKTION = 'FO35' 


Если просто запускаю прогу и выполняется этот кусок кода - то SET PARAMETER не влияют ни на что.
Если же с помощью отладчика - то странное дело... ставлю точку останова на первый SET PARAMETER , три раза щелкаю F5 и транзакция запускается так, как надо


Кто-нибудь может что-то посоветовать по этому поводу?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 20 2007, 18:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
andix007 написал(а):
...
Вопрос по поводу не корректной работы SET PARAMETER остается:

Цитата:
Code:
SET PARAMETER ID 'BUK' FIELD 'xxx'.
SET PARAMETER ID 'WEH' FIELD 'yyy'.

CALL FUNCTION 'TH_CREATE_MODE'
   EXPORTING
     TRANSAKTION = 'FO35' 


Если просто запускаю прогу и выполняется этот кусок кода - то SET PARAMETER не влияют ни на что.
Если же с помощью отладчика - то странное дело... ставлю точку останова на первый SET PARAMETER , три раза щелкаю F5 и транзакция запускается так, как надо


Кто-нибудь может что-то посоветовать по этому поводу?


Поэксперементировать с экспортным параметром ФМ PARAMETERS

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 21 2007, 05:33 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Разбирался уже както с этой проблемой - действительно set/get параметры почемуто не передаются в новый режим хотя передаются в тоже время передаются в ноый режим созданый через ГУИ

предлагаю использовать ФМ CC_CALL_TRANSACTION_NEW_TASK в нем можно явно передать нужные параметры в новый режим...похоже он сделан именно для того чтоб обойти эту проблему.

ну и запускать этот ФМ через CALL FUNCTION func STARTING NEW TASK taskname.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 21 2007, 08:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
DKiyanov написал:
Разбирался уже както с этой проблемой - действительно set/get параметры почемуто не передаются в новый режим хотя передаются в тоже время передаются в ноый режим созданый через ГУИ

...

Думается мне что дело в саповском механизме работы с памятью: возможно set parameter не сразу помещает значение в SAP-memory (память терминальной сессии), а, возможно, только тогда, когда диалоговый процесс прекращает свою работу с текущей external session.

_________________
"После" - не значит "вследствие"


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

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


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

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


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

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