Текущее время: Пт, июл 25 2025, 19:09

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


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

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


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

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