Текущее время: Вс, дек 21 2025, 13:36

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


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

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


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

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