Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: themax от Июнь 11, 2020, 01:24:31 pm
-
Добрый день Всем.
Пытаюсь сделать журналирование изменений группы СПП элементов. Создал объект документа изменений для таблички setleaf (там хранятся группы СПП элементов), сгенерировал ФМ. Т.к. изменение группы СПП элементов происходит с помощью пакетного ввода, при создании объекта документа изменений поставил галочку Внутренняя таблица. Получается одна таблица с СПП элементами до изменения, вторая после. При попытке вызова с генерированного ФМ
CALL FUNCTION 'ZCO_WBS_CHAN2_WRITE_DOCUMENT'
EXPORTING
OBJECTID = 'Z187'
TCODE = 'CJSG'
UTIME = sy-uzeit
UDATE = sy-datum
USERNAME = sy-uname
* PLANNED_CHANGE_NUMBER = ' '
* OBJECT_CHANGE_INDICATOR = 'U'
* PLANNED_OR_REAL_CHANGES = ' '
* NO_CHANGE_POINTERS = ' '
* UPD_ICDTXT_ZCO_WBS_CHAN2 = ' '
UPD_SETLEAF = 'U'
TABLES
ICDTXT_ZCO_WBS_CHAN2 = it_cdtxt
XSETLEAF = setlnew
YSETLEAF = setlold .
программа падает в дамп. Содержимое дампа следующее:
An exception has occurred which is explained in more detail below. The
exception is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE' and was not
caught in procedure
"BATCH_INPUT" "(FORM)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated this
exception, the current program was terminated.
The reason for the exception is:
The call to function module "ZCO_WBS_CHAN2_WRITE_DOCUMENT" is incorrect:
In the function module interface, it was stipulated that only fields of
a specific type and length can be specified under "XSETLEAF". The currently
specified field )"SETLNEW") has the right type, but its length is incorrect.
Ни как не пойму что не так длиной внутренней таблицы передающейся в ФМ. Пытался добавлять как таблицу с заголовком так и таблицу без заголовка, всё одно. Внутренняя таблица идентична структуре физической таблицы, которую я указал при создании объекта документа изменений.
В Инете полно примеров как работать с одной записью, но не с внутренней таблицей. С генерировал другой ФМ на основе передачи одной записи, которая передаётся в структуру, так работает. Можно конечно добавить в цикл ФМ и через структуру передать все СПП элементы, но тогда создаётся много документов изменений, что как мне кажется засоряет БД. Может кто делал такое и подскажет что тут подкручивать надо, чтобы получилось передать внутреннюю таблицу в ФМ ?
-
Первоначальный вопрос про дамп снимается. Как ни странно не заметил, что в с генерированном ФМ сформировавшиеся таблички отличаются от таблички, которую я указал при создании объекта изменений на одно поле. Какое то поле KZ с одним символом добавилось в ФМ. Добавил это поле во внутренние таблички и присвоил их таблицам ФМ CALL FUNCTION 'ZCO_WBS_CHAN2_WRITE_DOCUMENT'. Дамп пропал, но появилась следующая проблема, при просмотре таблицы CDPOS созданного документа изменений не заполняются поля Имя поля, Старое значение и Новое значение, т.е. передаются как будто пустые внутренние таблицы, хотя в пакетнике при передачи их в ФМ ZCO_WBS_CHAN2_WRITE_DOCUMENT они заполнены.
-
Может кто делал такое и подскажет что тут подкручивать надо, чтобы получилось передать внутреннюю таблицу в ФМ ?
Тоже делал только когда передается одна запись. С передачей внутренней таблицы не доводилось работать.
-
Тоже делал только когда передается одна запись. С передачей внутренней таблицы не доводилось работать.
Добрый день Олег.
Что характерно с одной записью всё работает и записывается, но вот с внутренней таблицей так и не понял что не так?! Есть вариант использовать стандартную настройку, которая применяются ко всем группам СПП элементов, но там столько записей будет создаваться в документах изменений в БД вот я и подумал обойтись z-ом, но что то пока не въеду как передавать внутреннюю табличку.