Текущее время: Сб, июл 26 2025, 11:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Пакетный ввод: вопросов воз и маленькая тележка :)
СообщениеДобавлено: Вт, окт 10 2006, 13:24 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Помогите, плз. Читала курс BC420 (где написано про пакетный ввод), но полезного мало что нашла. :(
Вопрос первый: Таблица bdc заполняется программой (самописной, не мной правда). Захожу в SM35, выполняю свой пакетник, он его целиком проходит, данные вводит (я не партизан, поэтому код транзакции PA40) и останавливается на первом окне транзакции с сообщением "Данные пакетного ввода для экрана SAPMP50A 2200 отсутствуют." И действительно, всё же уже заполнено, куда дальше... Выхожу через кнопку BACK, возвращаюсь в обзор сеансов и вижу, что мой пакетник выполнился с ошибкой. Проверяю данные в PA20 - все зашибись сохранилось. :shock: Так вот собственно вопрос: как избавиться от этого последнего вызова транзакции PA40?
Код заполнения таблицы:
Code:
    PERFORM open_group.
    REFRESH bdcdata[].
    LOOP AT res_itab.
******     Заполнение таблицы для пакетного ввода      *****
*      REFRESH bdcdata[].
* Обработка 2200 экрана программы SAPMP50A
      PERFORM bdc_dynpro USING 'SAPMP50A' '2200'.
      PERFORM bdc_field  USING 'BDC_CURSOR' 'T529T-MNTXT'.
*      PERFORM bdc_field  USING 'RP50G-SELEC(06)' 'X'.
      PERFORM bdc_field  USING 'RP50G-PERNR' res_itab-pernr.
      PERFORM bdc_field  USING 'BDC_OKCODE' '=PICK'.
* Обработка 2000 экрана программы MP000000
      PERFORM bdc_dynpro USING 'MP000000' '2000'.
      PERFORM bdc_field  USING 'BDC_CURSOR' 'P0000-BEGDA'.
      PERFORM bdc_field  USING 'BDC_OKCODE' '=UPD'.
      CLEAR zztxt1.
      LOOP AT z0014_itab WHERE pernr = res_itab-pernr.
        WRITE z0014_itab-zznorth_date TO zztxt1 DD/MM/YYYY.
        PERFORM bdc_field  USING 'P0000-BEGDA' zztxt1.
        PERFORM bdc_field  USING 'P0000-MASSN' 'G4'.
* Обработка 2000 экрана программы MP001400
        PERFORM bdc_dynpro USING 'MP001400' '2000'.
        PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.
      ENDLOOP.
      LOOP AT n0014_itab WHERE pernr = res_itab-pernr.
        zzkol = n0014_itab-anzhl.
        zzp = zzkol.
        zztxt1 = zzp.
        SHIFT zztxt1 LEFT DELETING LEADING ' '.
        PERFORM bdc_field  USING 'P0014-ANZHL' zztxt1.
        CLEAR zztxt1.
        WRITE n0014_itab-zznorth_date TO zztxt1 DD/MM/YYYY.
        PERFORM bdc_field  USING 'P0014-ZZNORTH_DATE' zztxt1.
      ENDLOOP.
      PERFORM bdc_field  USING 'BDC_OKCODE' '=UPD'.
* Обработка 2000 экрана программы MP029800
      PERFORM bdc_dynpro USING 'MP029800' '2000'.
      PERFORM bdc_field  USING 'BDC_CURSOR' 'P0298-ORDDT'.
      PERFORM bdc_field  USING 'P0298-ORDNU' res_itab-ordnu.
      CLEAR zztxt1.
      WRITE res_itab-orddt TO zztxt1 DD/MM/YYYY.
      PERFORM bdc_field  USING 'P0298-ORDDT' zztxt1.
      PERFORM bdc_field  USING 'BDC_OKCODE' '=UPD'.
* Обработка 2200 экрана программы SAPMP50A
      PERFORM bdc_dynpro USING 'SAPMP50A' '2200'.
      PERFORM bdc_field  USING 'BDC_OKCODE' '=EBCK'.
    ENDLOOP.
**** Эти строчки вставила в надежде на то, что сработает кнопка BACK, а нифига
    PERFORM bdc_dynpro USING 'SAPMP50A' '2200'.
    PERFORM bdc_field  USING 'BDC_OKCODE' '=EBCK'.
****
    PERFORM bdc_transaction USING 'PA40'.
    PERFORM close_group.



Вопрос второй: при прочтении других тем на эту тему (в поиске что-то пыталась найти) я находила строчки: "Сформируйте пакетник и посмотрите как туда SAP пишет". Это как? :?

_________________
Отсюда мораль: Что-то не соображу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 10 2006, 13:33 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
тр-я shdb

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 10 2006, 14:08 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Надо в обработке 2000 экрана попробовать выйти с сохранением. Наиболее вероятный код клавиши должен быть '/11'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пакетный ввод: вопросов воз и маленькая тележка :)
СообщениеДобавлено: Вт, окт 10 2006, 17:23 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
AnnaEremenko написала:
Вопрос второй: при прочтении других тем на эту тему (в поиске что-то пыталась найти) я находила строчки: "Сформируйте пакетник и посмотрите как туда SAP пишет". Это как? :?


В транзакции SHDB вы создаете запись транзакции - то есть проходите по транзакции и выполняете те действия, которые потом будет делать программа (заносите, например, данные в поля, жмете кнопочку сохранения или что в конце вам надо). Потом выйдете типо в таблицу, где написано, какие поля вы заполняли, какие ок-коды вводили и позицию курсора (я никогда курсор не использовала). Сохраняете.

Выходите потом на первый экран SHDB - жмете кнопочку Programm - сформируется как раз тот код.

BDCDATA заполняют поэкранно - экран, ок-код, список поле-значение(вводимые данные), следующий экран и т.д.


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

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Да вроде как поэкранно все и заполняется...
Попробую с сохранением. :roll:

_________________
Отсюда мораль: Что-то не соображу.


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

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Еще один вопрос: почему при выполнении в режиме онлайн постоянно идет ручное подтверждение о присвоении OKCODE того значения, которое я записала в таблицу? Где-нибудь можно поставить галочку, что-то типа "Да для всех"? А то задолбало на ENTER жать постоянно. Как будто пользователь будет думать "А может другой код присвоить этому параметру?"

_________________
Отсюда мораль: Что-то не соображу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 11 2006, 06:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
AnnaEremenko написала:
Еще один вопрос: почему при выполнении в режиме онлайн постоянно идет ручное подтверждение о присвоении OKCODE того значения, которое я записала в таблицу? Где-нибудь можно поставить галочку, что-то типа "Да для всех"? А то задолбало на ENTER жать постоянно. Как будто пользователь будет думать "А может другой код присвоить этому параметру?"
Для пользователя пакетный ввод надо выполнять либо в режиме 'N' или 'E'. А онлайн режим примерно для случая "А может другой код присвоить этому параметру?" и предназначен.

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Да, да спасибо :) я и сама уже это поняла... поставила галочку для "ПросмотрТолькоОшибок" и все прошло гладенько :)
И сразу возник вопрос: а пользователь тоже будет всегда эти радиобаттоны сам заполнять или это можно как-то по-умолчанию настроить?

_________________
Отсюда мораль: Что-то не соображу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 11 2006, 09:16 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Для пользователя можно использовать call transaction. Это позволит выполнить транзакцию сразу без создания сессий и их выполнения в SM35. Сессии имеет смысл делать, если call transaction закончился с ошибкой. Вот тогда режим A в SM35 позволит пользователю понять, что случилось.


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

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
А не хотите call transaction использовать?
И анализировать выполнение можно, и вообще меньше мороки типо ограничения на количество транзакций в батче (я обычно делаю на сел скрине параметром). И конечно же можно поставить режим "показывать все экраны", "показывать только ошибки" или вообще ничего не показывать.

Или через джобы батч запускать - там вроде можно указать мод.


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

Зарегистрирован:
Пн, апр 18 2005, 08:24
Сообщения: 94
Откуда: Санкт-Петербург
Пол: Женский
Если не создавать сессий - это получается уже прямой ввод (так у меня в ТЗ написано и так сделано в программе)...
два радиобаттона: "Прямой ввод" и "Пакетный ввод".
при прямом вводе - сделан
Code:
CALL TRANSACTION 'PA40'
        USING bdcdata
        MODE 'E'
        MESSAGES INTO messtab.

при пакетном вводе - код в первом ссобщении.
Отличие как раз в вызовах транзакции.
Я так думаю, что пакетный ввод сделали для запуска в фоновом режиме.
Поговорю с консультантом - чего он конкретно хотел от пакетного ввода и почему из разделил (с прямым).

_________________
Отсюда мораль: Что-то не соображу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 11 2006, 12:45 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Это обычное требование - чтобы и колтранзакшн и бач были. Фон тут не при чем.
А за пользователей не волнуйтесь - кому надо, галочку "показывать только ошибки" поставят.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 14:29 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Добрый день всем!!
Еще вопросик про пакетный ввод: хочется сделать пакетный ввод для транзакции CJIC... в ней есть экран 500 на котором выведен ALV Grid.. так вот, далее выполняется функция которая работает только если строки в Grid выделены.
Вопрос: Существует ли возможность каким то образом отметить строку грида при при выполнении пакетного ввода???? Если скществует подскажите пожалуйста как реализовать?? :oops:

Спасибо за ранее!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 15:05 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Ну или хотя бы скажите что нельзя с ALV работать в режиме паетного ввода... Что нибудь скажите??? :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 10 2008, 16:56 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
klabukov написал(а):
Ну или хотя бы скажите что нельзя с ALV работать в режиме паетного ввода...
Нельзя работать с ALV и т.п. элементами в режиме паетного ввода

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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