Текущее время: Пт, май 16 2025, 01:32

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Приостановление работы программы на время...
СообщениеДобавлено: Ср, ноя 02 2005, 12:38 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, мар 23 2005, 14:21
Сообщения: 1443
Откуда: Пермь
Пол: Мужской
Доброе время суток!

Написана программа редактирования техкарт в автоматическом режиме по заранее подготовленным данным. Написана на основе пакетного ввода транзакции CA02.
Проблема в следующем: может возникнуть такая ситуация, когда ТК кто-то правит "руками" и в это же аремя ее пытается исправить моя прога. В результате получает код ошибки типа "кто-то уже редактирует".

Внимание вопрос:
1. Кто-то сталкивался с такой проблемой? Если да, то как еЁ решил?
2. Возможно ли во время выполнения программы приостановить еЁ (например при наличии каких-то входных условий, типа ошибки "кто-то еЁ правит") на каком-либо шаге цикла на некоторое время?

Очень жду ваших ответов! Спасибо!

_________________
.•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 02 2005, 12:54 
Гость
Перед вызовом своей транзакции организуй цикл и проверяй запись блокирования.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Ср, ноя 02 2005, 16:22 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
STS написал:
2. Возможно ли во время выполнения программы приостановить еЁ (например при наличии каких-то входных условий, типа ошибки "кто-то еЁ правит") на каком-либо шаге цикла на некоторое время?


Можно использовать TRY.
И отловив такой код ошибки организовать цикл со сверкой текущего времени sy-uzeit с заданным временем следующей попытки вызова.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Чт, ноя 03 2005, 07:33 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, мар 23 2005, 14:21
Сообщения: 1443
Откуда: Пермь
Пол: Мужской
kizif написал(а):
STS написал:
2. Возможно ли во время выполнения программы приостановить еЁ (например при наличии каких-то входных условий, типа ошибки "кто-то еЁ правит") на каком-либо шаге цикла на некоторое время?


Можно использовать TRY.
И отловив такой код ошибки организовать цикл со сверкой текущего времени sy-uzeit с заданным временем следующей попытки вызова.


А можно поподробней про "цикл со сверкой текущего времени sy-uzeit с заданным временем"? Как его организовать?

Дело в том, что программа должна работать автоматически, без вмешательства пользователя. Как вызвать автоматически ещЁ раз эту программу?

_________________
.•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Чт, ноя 03 2005, 08:59 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
STS написал:
Дело в том, что программа должна работать автоматически, без вмешательства пользователя. Как вызвать автоматически ещЁ раз эту программу?


Code:
form createjob using jobname type zjbnam pdate like sy-datum
                     ptime like sy-uzeit progname.
data: calling_abap like sy-repid, jobcount like tbtcjob-jobcount.
refresh global_step_tbl.
clear   global_step_tbl.
clear   global_job.

call 'AB_GET_CALLER' id 'PROGRAM' field calling_abap.
global_job-jobname   = jobname.
global_job-sdlstrtdt = pdate.
global_job-sdlstrttm = ptime.
global_job-jobclass = 'B'.
global_job-newflag   = 'O'.
global_step_tbl-program = 'RSBTCPT3'.
global_step_tbl-typ     = 'A'.
global_step_tbl-status  = 'P'.
global_step_tbl-authcknam = sy-uname.
append global_step_tbl.
call function 'BP_JOB_CREATE'
   exporting job_cr_dialog       = 'N'
             job_cr_head_inp     = global_job
   importing job_cr_head_out     = global_job
             job_cr_stdt_out     = global_start_date
      tables job_cr_steplist     = global_step_tbl
  exceptions invalid_job_data    =  1
             others              = 99.
case sy-subrc.
  when 0.       jobcount = global_job-jobcount.
  when 1.       message e200(zvvvmsg).
  when others.  message e201(zvvvmsg).
endcase.
data: lstnum like tbtcjob-stepcount.
call function 'JOB_SUBMIT'
   exporting authcknam               = sy-uname
             jobcount                = jobcount
             jobname                 = jobname
             language                = sy-langu
             report                  = progname
   importing step_number             = lstnum
  exceptions bad_priparams           = 1
             bad_xpgflags            = 2
             invalid_jobdata         = 3
             jobname_missing         = 4
             job_notex               = 5
             job_submit_failed       = 6
             lock_failed             = 7
             program_missing         = 8
             prog_abap_and_extpg_set = 9
             others                  = 10.
if sy-subrc ne 0. message e202(zvvvmsg). endif.
data: exechost like sy-host, exeservr like btctgthtbl-btcsystem,
       joblos like btch0000-char1.
exechost = sy-host.
concatenate sy-host sy-sysid '11' into exeservr separated by '_'.
call function 'JOB_CLOSE'
   exporting jobcount             = jobcount
             jobname              = jobname
             strtimmed            = 'X'
             targetsystem         = exechost
*             targetserver         = exeservr
   importing job_was_released     = joblos
  exceptions cant_start_immediate = 1
             invalid_startdate    = 2
             jobname_missing      = 3
             job_close_failed     = 4
             job_nosteps          = 5
             job_notex            = 6
             lock_failed          = 7
             others               = 8.
* if sy-subrc ne 0. message e203(zvvvmsg). endif.
endform.

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Пт, ноя 04 2005, 15:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, мар 02 2005, 20:19
Сообщения: 133
Откуда: Moscow
STS написал:
Доброе время суток!
Внимание вопрос:
1. Кто-то сталкивался с такой проблемой? Если да, то как еЁ решил?
2. Возможно ли во время выполнения программы приостановить еЁ (например при наличии каких-то входных условий, типа ошибки "кто-то еЁ правит") на каком-либо шаге цикла на некоторое время?

1. Наверняка для этой цели есть подходящие объекты блокирования
2. ФМ 'ENQUE_SLEEP'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Вт, ноя 08 2005, 07:55 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, мар 23 2005, 14:21
Сообщения: 1443
Откуда: Пермь
Пол: Мужской
to vvvictor:
vvvictor написал:
STS написал:
Дело в том, что программа должна работать автоматически, без вмешательства пользователя. Как вызвать автоматически ещЁ раз эту программу?


Code:
form createjob using jobname type zjbnam pdate like sy-datum
                     ptime like sy-uzeit progname.
data: calling_abap like sy-repid, jobcount like tbtcjob-jobcount.
refresh global_step_tbl.
clear   global_step_tbl.
clear   global_job.

call 'AB_GET_CALLER' id 'PROGRAM' field calling_abap.
global_job-jobname   = jobname.
global_job-sdlstrtdt = pdate.
global_job-sdlstrttm = ptime.
global_job-jobclass = 'B'.
global_job-newflag   = 'O'.
global_step_tbl-program = 'RSBTCPT3'.
global_step_tbl-typ     = 'A'.
global_step_tbl-status  = 'P'.
global_step_tbl-authcknam = sy-uname.
append global_step_tbl.
call function 'BP_JOB_CREATE'
   exporting job_cr_dialog       = 'N'
             job_cr_head_inp     = global_job
   importing job_cr_head_out     = global_job
             job_cr_stdt_out     = global_start_date
      tables job_cr_steplist     = global_step_tbl
  exceptions invalid_job_data    =  1
             others              = 99.
case sy-subrc.
  when 0.       jobcount = global_job-jobcount.
  when 1.       message e200(zvvvmsg).
  when others.  message e201(zvvvmsg).
endcase.
data: lstnum like tbtcjob-stepcount.
call function 'JOB_SUBMIT'
   exporting authcknam               = sy-uname
             jobcount                = jobcount
             jobname                 = jobname
             language                = sy-langu
             report                  = progname
   importing step_number             = lstnum
  exceptions bad_priparams           = 1
             bad_xpgflags            = 2
             invalid_jobdata         = 3
             jobname_missing         = 4
             job_notex               = 5
             job_submit_failed       = 6
             lock_failed             = 7
             program_missing         = 8
             prog_abap_and_extpg_set = 9
             others                  = 10.
if sy-subrc ne 0. message e202(zvvvmsg). endif.
data: exechost like sy-host, exeservr like btctgthtbl-btcsystem,
       joblos like btch0000-char1.
exechost = sy-host.
concatenate sy-host sy-sysid '11' into exeservr separated by '_'.
call function 'JOB_CLOSE'
   exporting jobcount             = jobcount
             jobname              = jobname
             strtimmed            = 'X'
             targetsystem         = exechost
*             targetserver         = exeservr
   importing job_was_released     = joblos
  exceptions cant_start_immediate = 1
             invalid_startdate    = 2
             jobname_missing      = 3
             job_close_failed     = 4
             job_nosteps          = 5
             job_notex            = 6
             lock_failed          = 7
             others               = 8.
* if sy-subrc ne 0. message e203(zvvvmsg). endif.
endform.


А почему вместо одного шага создается 2? Т.е. программа выполняется 2 раза?

_________________
.•°*”`.•°*”`*ЛОВИ ПОЗИТИФФ*`”*°•.`”*°•.


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
STS написал:
to vvvictor:

А почему вместо одного шага создается 2? Т.е. программа выполняется 2 раза?


Почему два ?
Нормальный цикл create-submit-close........

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Вт, ноя 08 2005, 10:22 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
STS написал:
Доброе время суток!

Написана программа редактирования техкарт в автоматическом режиме по заранее подготовленным данным. Написана на основе пакетного ввода транзакции CA02.
Проблема в следующем: может возникнуть такая ситуация, когда ТК кто-то правит "руками" и в это же аремя ее пытается исправить моя прога. В результате получает код ошибки типа "кто-то уже редактирует".

Внимание вопрос:
1. Кто-то сталкивался с такой проблемой? Если да, то как еЁ решил?
2. Возможно ли во время выполнения программы приостановить еЁ (например при наличии каких-то входных условий, типа ошибки "кто-то еЁ правит") на каком-либо шаге цикла на некоторое время?

Очень жду ваших ответов! Спасибо!


а просто блокировать СА02 для пользователей и сказать чтобы покурили-чай-попили не подойдёт? Процесс вроде серьёзный - что потом 100 раз запускать пакетник изза того, что ктото ТК редактировал?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Вт, ноя 08 2005, 10:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
STS написал:
Доброе время суток!
Написана программа редактирования техкарт в автоматическом режиме по заранее подготовленным данным.

Может подумать и отказаться от попыток решать все организационные проблемы техническим путём? Некоторые такие решения могут быть серъёзно деструктивны для функционирования системы.

p.s. мухи отдельно, котлеты - ...соответственно..


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Skif написал:
p.s. мухи отдельно, котлеты - ...соответственно..


:lol: :lol: :lol:
Не хватает только ссылки на топик про эксплойт :lol:
:lol: :lol: :lol:

Если-бы все хорошо решалось организационными проблемами - не родилась бы та программа про которую мы обмолвились в том топике.... :lol:

Кстати этот фрагмент тоже из нее

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Вт, ноя 08 2005, 11:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
vvvictor написал:
Skif написал:
p.s. мухи отдельно, котлеты - ...соответственно..

:lol: :lol: :lol:
Не хватает только ссылки на топик про эксплойт :lol:
:lol: :lol: :lol:
Если-бы все хорошо решалось организационными проблемами - не родилась бы та программа про которую мы обмолвились в том топике.... :lol:
Кстати этот фрагмент тоже из нее

то крайняя (можно сказать - высшая) мера, когда для, как раз - недопущения нарушения технологического процесса.
Не про "всё", ес-но. Приоритет строгому планированию взаимодействия оргпроцессов (разработки, закачки & etc), а не "добрым делам" из раздела "а давайте..". - А - "низяяяя.." :)

p.s. 90/10 <> 10/90


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приостановление работы программы на время...
СообщениеДобавлено: Вт, ноя 08 2005, 13:29 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Skif написал:
А - "низяяяя.." :)

p.s. 90/10 <> 10/90

:lol:

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


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

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


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

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


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

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