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

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


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

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


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

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