Текущее время: Сб, апр 20 2024, 05:18

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: SWUL в фоне по butchinput
СообщениеДобавлено: Ср, апр 19 2006, 07:43 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
удаляю свои (нахожу по условию) ЭПО через swul по butchinput.
Проблема в том что в диалоге все отрабатывает, а в фоне ничего не удаляется. Кто-нибудь подскажет чего-гнибудь?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 09:19 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
пакетники в workflow - это та еще песня ;))

обычный пакетник (call transaction .. using) в фоновом режиме не сработает -
WF-BATCH как пользователь обычно не диалоговый, да и для таких пакетников требуется контекст рабочей станции.

можно в таких случая создавать сеансы пакетного ввода (SM35) и выполнять их:

1) создать сеанс - ФМ BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP

2) блокировать (если надо) - ФМ ENQUEUE_BDC_QID

3) создать задачу для сеанса - ФМ JOB_OPEN (jobgroup = 'BATCH-INPUT')

4) выполнить задачу -
submit rsbdcbtc_new
user user
via job jobname number jobcount
with queue_id = qid
with mappe = jobname
with modus = 'N'
with logall = 'A'
and return.

5) закрыть задачу - ФМ JOB_CLOSE

6) снять блокировку - ФМ DEQUEUE_BDC_QID

такая схема работала в 4.6С,
в 4.7 не проверял, но не нахожу rsbdcbtc_new (есть просто rsbdcbtc)

все это выполняется асинхронно по отношению к потоку (шаг потока не ждет, пока завершится пакетник).

если надо ждать (анализировать ошибки в пакетнике, выставлять поток в ERROR, ждать перезапуска через SWPR), то для этого тоже есть решения

можно это все оформить в виде подпотока, который выполняет любой пакетник


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 09:23 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
вижу, задача была более узкая ;)) - Как массово удалять ЭПО

можно использовать API - ФМ SAP_WAPI_WORKITEM_DELETE


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

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
В 4,0 НЕТ SAP_WAPI_WORKITEM_DELETE
У меня ночное задание удаляет эти ЭПО. В диалоге все отрабатывает - в фоне косяк.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 10:47 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
ну совсем понял п.3-4-5
создал сеанс - в sm35 появилась запись
как ее выполнить в фоне.
'DELETE_EPO' - имя сеанса в sm35
в JOBCOUNT должно возвратиться №процесса?
CALL FUNCTION 'JOB_OPEN'
EXPORTING
* DELANFREP = ' '
JOBGROUP = 'BATCH-INPUT'
JOBNAME = 'DELETE_EPO'
* SDLSTRTDT = NO_DATE
* SDLSTRTTM = NO_TIME
IMPORTING
JOBCOUNT = JOBCOUNT
EXCEPTIONS
CANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3
OTHERS = 4.
SUBMIT RSBDCBTC
WITH QUEUE_ID = JOBCOUNT
and return.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
JOBCOUNT = JOBCOUNT
JOBNAME = 'DELETE_EPO'
SDLSTRTDT = SY-DATUM
* sdlstrttm = start_time
* strtimmed = pa_imm
* targetsystem = jobserver
* importing
* job_was_released = job_was_released
EXCEPTIONS
OTHERS = 99.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 10:55 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
submit rsbdcbtc_new
user uname " под каким логином выполнять
via job jobname number jobcount " задача
with queue_id = qid
with mappe = jobname
with modus = 'N'
with logall = 'A'
and return.


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

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
qid ЭТО ОТКУДА?

REFRESH BDCDATA.
PERFORM OPEN_GROUP.
.................
PERFORM BDC_TRANSACTION USING 'SWUL'.
PERFORM CLOSE_GROUP.
*******************
DATA JOBCOUNT LIKE TBTCM-JOBCOUNT.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
JOBGROUP = 'BATCH-INPUT'
JOBNAME = 'DELETE_EPO'
IMPORTING
JOBCOUNT = JOBCOUNT
EXCEPTIONS
CANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3
OTHERS = 4.
************************
DATA QID LIKE APQI-QID.
SUBMIT RSBDCBTC
USER 'LOGIN' " под каким логином выполнять
VIA JOB 'DELETE_EPO'
NUMBER JOBCOUNT " задача
with queue_id = qid
WITH MAPPE = 'DELETE_EPO'
with modus = 'N'
with logall = 'A'
and return.
************************
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
JOBCOUNT = JOBCOUNT
JOBNAME = 'DELETE_EPO'
EXCEPTIONS
OTHERS = 99.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 11:17 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
qid - это из ФМ BDC_OPEN_GROUP


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

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
разобрался
но у меня цикл
loop..
....
SUBMIT RSBDCBTC .... and return.
endloop.
и на первом шаге он отваливается - ОБРАБОТКА ПАКЕТНОГО ВВОДА ЗАВЕРШЕНА.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 19 2006, 12:54 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
тут сразу так не скажешь - может какая-нить переменная не очищается или нужен вызов к-л ФМ BDC_*


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

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Проблема так и осталась.
RSBDCBTC в диалоге отрабатывает по одной сессии, а в фоне нет.
Если запускать в фоне с вариантом то все ОК.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 20 2006, 14:00 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
а для чего запускать SWUL в пакетнике ?
это же для задания обработчиков в правилах
или в 4.0 это для удаления ЭПО ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 21 2006, 04:51 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
для удаления ЭПО в 4,0


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 24 2006, 07:02 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 15 2005, 11:00
Сообщения: 288
Вопрос закрыт
Проблема решилась через submit rswwwide ......


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

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


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

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


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

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