| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Вт Окт 13, 2015 03:19   Можно ли узнать откуда вызвана операция через PLPCALL ? | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Здравствуйте!
 
 
Сабж. 
 
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
 
Чисто теоретически навигатор же где-то это отслеживает... | 
			 
		  | 
	
	
		  | 
	
	
		Матвеев Евгений Профи
 
  Вступление в Клуб: 31.01.2012
  | 
		
			
				 Вт Окт 13, 2015 09:25    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Я бы начал поиски со стэка вызовов
 
....
 
вот тебе примерчик...
 
 
 	  | Код: | 	 		  
 
   if instr(dbms_utility.format_call_stack,'GASH_SOPHIT') <> 0 then
 
      V_PROV_DOCS := false;
 
   end if; 
 
 | 	  
 
 
Должно получится ... | 
			 
		  | 
	
	
		  | 
	
	
		Damir Участник - экстремал
 
  Вступление в Клуб: 29.03.2013
  | 
		
			
				 Вт Окт 13, 2015 09:30    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Матвеев Евгений пишет: | 	 		  Я бы начал поиски со стэка вызовов
 
 | 	  
 
Мимо.
 
Если правильно понял, речь идет о вызове из VBS-скрипта другой операции. В этом случае стек вызовов оракла не поможет ничем.
 
 
а чего пишется в v$session.ACTION при этом ?
 
 	  | Код: | 	 		  | select s.ACTION from v$session s | 	  
 
т.е. там может быть ИД корневой операции.
 
 
PS:щас обед... приду - подумаю, самому надо. | 
			 
		  | 
	
	
		  | 
	
	
		Матвеев Евгений Профи
 
  Вступление в Клуб: 31.01.2012
  | 
		
			
				 Вт Окт 13, 2015 09:34    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Пусть конкретизирует задачу... я ж мысли не читаю...
 
Да и про vbs скрипт ни буковки не было... | 
			 
		  | 
	
	
		  | 
	
	
		maestro Профи
 
  Вступление в Клуб: 12.10.2010
  | 
		
			
				 Вт Окт 13, 2015 10:11    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Ну тогда что-то вроде v$active_session_history   | 
			 
		  | 
	
	
		  | 
	
	
		Damir Участник - экстремал
 
  Вступление в Клуб: 29.03.2013
  | 
		
			
				 Вт Окт 13, 2015 11:05    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Damir пишет: | 	 		  | PS:щас обед... приду - подумаю, самому надо. | 	  
 
ничего не придумал, кроме:
 
 
 	  | Alkov пишет: | 	 		  Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
 
 | 	  
 
 
Может, закажете у ЦФТ доработку?    | 
			 
		  | 
	
	
		  | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Ср Окт 14, 2015 02:13    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Матвеев Евгений пишет: | 	 		  Пусть конкретизирует задачу... я ж мысли не читаю...
 
Да и про vbs скрипт ни буковки не было... | 	  
 
 
Написано же  через PLPCALL.
 
такой вызов в стэк не помещается. | 
			 
		  | 
	
	
		  | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Ср Окт 14, 2015 02:20    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | maestro пишет: | 	 		  Ну тогда что-то вроде v$active_session_history   | 	  
 
В эту под IBS не пускает. | 
			 
		  | 
	
	
		  | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Ср Окт 14, 2015 02:37    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				а чего пишется в v$session.ACTION при этом ?
 
 	  | Код: | 	 		  | select s.ACTION from v$session s | 	  
 
 
неа там id  уже вызванной операции, да и не решит это проблему в случае цепочки plpcall вызовов
  Последний раз редактировалось: Alkov (Ср Окт 14, 2015 02:41), всего редактировалось 1 раз | 
			 
		  | 
	
	
		  | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Ср Окт 14, 2015 02:40    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Alkov пишет: | 	 		  Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
 
 | 	  
 
 
Может, закажете у ЦФТ доработку?   [/quote]
 
 
Типа сделайте стэк под PLPCALL вызова доступным из админа словаря ?
 
Ну если только посмотреть на кучу нулей в счёте...   
 
Бизнес не убедишь оплатить такое, если можно сделать через костыли что в начале писал... | 
			 
		  | 
	
	
		  | 
	
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Ср Окт 14, 2015 06:50    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Цитата: | 	 		  | Можно ли узнать откуда вызвана операция через PLPCALL ? | 	  
 
nav.current_form_method_id, если я не ошибаюсь. Проверять лень   | 
			 
		  | 
	
	
		  | 
	
	
		Матвеев Евгений Профи
 
  Вступление в Клуб: 31.01.2012
  | 
		
			
				 Ср Окт 14, 2015 09:50    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Random пишет: | 	 		   	  | Цитата: | 	 		  | Можно ли узнать откуда вызвана операция через PLPCALL ? | 	  
 
nav.current_form_method_id, если я не ошибаюсь. Проверять лень   | 	  
 
 
 
Ну да, что то такое есть, похоже на правду
 
 
 	  | Код: | 	 		  
 
   if nav.current_form_method_id = &method$ID then
 
      if P_CURR is null then
 
         pragma error('Ссылка на валюту(драг. метал) не указана.');
 
      end if;
 
      
 
      if P_COURSE is null then
 
         pragma error('Не заполнено поле "Курс валюты"');
 
      end if;
 
   end if;
 
 | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		Alkov Профи
 
  Вступление в Клуб: 23.09.2010
  | 
		
			
				 Ср Окт 14, 2015 10:41    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Random пишет: | 	 		   	  | Цитата: | 	 		  | Можно ли узнать откуда вызвана операция через PLPCALL ? | 	  
 
nav.current_form_method_id, если я не ошибаюсь. Проверять лень   | 	  
 
 
там тоже через стэк вызовов | 
			 
		  | 
	
	
		  | 
	
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Чт Окт 15, 2015 15:45    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Alkov пишет: | 	 		   	  | Random пишет: | 	 		   	  | Цитата: | 	 		  | Можно ли узнать откуда вызвана операция через PLPCALL ? | 	  
 
nav.current_form_method_id, если я не ошибаюсь. Проверять лень   | 	  
 
 
там тоже через стэк вызовов | 	  
 
ясно    | 
			 
		  | 
	
	
		  | 
	
	
		Матвеев Евгений Профи
 
  Вступление в Клуб: 31.01.2012
  | 
		
			
				 Чт Окт 15, 2015 15:50   Re: Можно ли узнать откуда вызвана операция через PLPCALL ? | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Alkov пишет: | 	 		  Здравствуйте!
 
 
Сабж. 
 
Ну кроме вариантов взводить контекст, глоб.переменную, или передавать из всех операциях новый параметр(переменную).
 
Чисто теоретически навигатор же где-то это отслеживает... | 	  
 
 
Может что нибудь напишешь про первоначальную постановку задачи. ... 
 
Если разовая необходимость. ...чем контекст юзера плох?
 
 
 
....и еще....то что nav.current_form_method_id через стэк работает, как определил?
 
 
В АСД не нашел реализации функции | 
			 
		  | 
	
	
		  | 
	
	
		 |