SAPфорум.RU
https://www.sapboard.ru/forum/

Сбой в работе BATCH INPUT (транзакция FB01) после добавления полей в BSEG через CI_COBL.
https://www.sapboard.ru/forum/viewtopic.php?f=5&t=100389
Страница 1 из 1

Автор:  AlexU123 [ Сб, авг 26 2023, 01:24 ]
Заголовок сообщения:  Сбой в работе BATCH INPUT (транзакция FB01) после добавления полей в BSEG через CI_COBL.

В CI_COBL Структуру добавил в транзакции OXK3 пару полей которые добавилилсь в таблицу BSEG..
Теперь работает неправильно BATCH INPUT со старым входным файлом.
Причина - стандартный репорт считывает текст в старом формате и маппит в структуру BBSEG, в которой сгенериеиваны два новых поля.
Все сдвигается и сгенеренный Batch в транзакции SM35 отрабатывает некорректно .
Разбирать CI_COBL нереально. На базе новых полей за полгода наворочено сотню приложений.
Как выйти из ситуации? Делать кoпию стандартного отчета для генерации Batch без новых полей для считывния старого текстового файла,
или надо настраивать новый входной файл с новыми полями?

Автор:  Yozhhhhh [ Вт, авг 29 2023, 13:07 ]
Заголовок сообщения:  Re: Сбой в работе BATCH INPUT (транзакция FB01) после добавления полей в BSEG через CI_COBL.

Что за стандартый отчет в сапе, который использует батч да еще и работает с входящим файлом на загрузку? Можно его имя?

Автор:  AlexU123 [ Вт, авг 29 2023, 14:02 ]
Заголовок сообщения:  Re: Сбой в работе BATCH INPUT (транзакция FB01) после добавления полей в BSEG через CI_COBL.

Yozhhhhh написал:
Что за стандартый отчет в сапе, который использует батч да еще и работает с входящим файлом на загрузку? Можно его имя?

Система R/3. Вообще используется 4 стантартных отчета RFBIBL00, RFBIBL01 с INCLUDE RFBIBL02,rfbiblg0, rgle_ecs_direct_input_pp.
Есть Z-отчет который вызывает c SUBMIT RFBIBL00 а тот в свою очередь вызывает s SUBMIT rgle_ecs_direct_input_pp, rfbibl01, rfbiblg0, RFBIBL01.
т.е. отрабатывает Z-JOB.
Зaглавными символами я обозначил те модули которые я скопировал и переделал как Z* модули.
В дополнение, структуры BBSEG, BBSEG_DI, BSEG2 скопировал в соответствиющие Z-структуры, в которых везде удалил новые COBL поля.

Структура которая принимает построчно входной файл:

Code:
DATA:    BEGIN OF wa,
           char1(10000)  TYPE c,                        "N1847840
         END OF wa.


которая в свою очередь присваивается в форме в структуру BBSEG

Code:
FORM WA_DATEN_UEBERTRAGEN.
  CASE WA+1(1).
  WHEN 'B'.
    CASE WA+2(9).
      WHEN 'BSEG'.
        BBSEG = I_BBSEG.
        BBSEG = WA.
      WHEN 'WITH'.
        BWITH = I_BWITH.
        BWITH = WA.
      WHEN 'BTAX'.
        BBTAX = I_BBTAX.
        BBTAX = WA.
      WHEN 'SELK'.
        BSELK = I_BSELK.
        BSELK = WA.
      WHEN 'SELP'.
        BSELP = I_BSELP.
        BSELP = WA.
    ENDCASE.
  WHEN 'Z'.
    CASE WA+2(9).
    WHEN 'BSEG'.
      BBSEG = I_BBSEG.
      ZBSEG = WA.
      MOVE-CORRESPONDING ZBSEG TO BBSEG.
    ENDCASE.
  ENDCASE.
ENDFORM.

В упомянутой форме и везде в коде BBSEG заменяется на ZBBSEG
Если бы все былo сделано в духе "MOVE CORRESPONDING" то было бы все однозначно
Но не все можно в модулях заменить на Z*.
Eсть строки кода где я не могу заменить BBSEG на ZBBSEG, так как это входные данные:
Code:
IF wa+1(30) EQ 'BBSEG'.....

В первом приближении вроде бы выходной батч соответствует старому выходному.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/