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

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


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

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


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

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