Текущее время: Чт, мар 28 2024, 12:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Создание объекта документа изменений
СообщениеДобавлено: Чт, июн 11 2020, 13:13 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Добрый день уважаемые ABAP-еры.

Пытаюсь сделать журналирование изменений группы СПП элементов. Создал объект документа изменений для таблички setleaf (там хранятся группы СПП элементов), сгенерировал ФМ. Т.к. изменение группы СПП элементов происходит с помощью пакетного ввода, при создании объекта документа изменений поставил галочку Внутренняя таблица. Получается одна таблица с СПП элементами до изменения, вторая после. При попытке вызова с генерированного ФМ
Code:
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 .

программа падает в дамп. Содержимое дампа следующее:
Code:
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.

Ни как не пойму что не так длиной внутренней таблицы передающейся в ФМ. Пытался добавлять как таблицу с заголовком так и таблицу без заголовка, всё одно. Внутренняя таблица идентична структуре физической таблицы, которую я указал при создании объекта документа изменений.

В Инете полно примеров как работать с одной записью, но не с внутренней таблицей. С генерировал другой ФМ на основе передачи одной записи, которая передаётся в структуру, так работает. Можно конечно добавить в цикл ФМ и через структуру передать все СПП элементы, но тогда создаётся много документов изменений, что как мне кажется засоряет БД. Может кто делал такое и подскажет что тут подкручивать надо, чтобы получилось передать внутреннюю таблицу в ФМ ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание объекта документа изменений
СообщениеДобавлено: Чт, июн 11 2020, 14:55 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Первоначальный вопрос про дамп снимается. Как ни странно не заметил, что в с генерированном ФМ сформировавшиеся таблички отличаются от таблички, которую я указал при создании объекта изменений на одно поле. Какое то поле KZ с одним символом добавилось в ФМ. Добавил это поле во внутренние таблички и присвоил их таблицам ФМ CALL FUNCTION 'ZCO_WBS_CHAN2_WRITE_DOCUMENT'. Дамп пропал, но появилась следующая проблема, при просмотре таблицы CDPOS созданного документа изменений не заполняются поля старое значение и новое значение, т.е. передаются как будто пустые внутренние таблицы, хотя в пакетнике при передачи их в ФМ ZCO_WBS_CHAN2_WRITE_DOCUMENT они заполнены.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание объекта документа изменений
СообщениеДобавлено: Пт, июн 12 2020, 16:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
А к чему эти ухищрения, если наборы (кажется, судя по упомянутым станд. объектам, речь идет именно о них) прекрасно ведут свои собственные документы изменений?

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание объекта документа изменений
СообщениеДобавлено: Пн, июн 15 2020, 07:47 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 778
Откуда: South Kazakhstan
Пол: Мужской
Кодер написал(а):
А к чему эти ухищрения, если наборы (кажется, судя по упомянутым станд. объектам, речь идет именно о них) прекрасно ведут свои собственные документы изменений?

Видите ли в чём загвоздка, в системе есть несколько групп, в которых есть огромное количество СПП элементов и изменяются они пару раз в месяц. Если включить стандартную настройку журналирования изменений наборов, то при изменении какого либо из них, создаётся огромное количество записей в документах изменений, я подумал зачем засорять базу таким количеством записей. К сожалению, насколько я знаю, настройку нельзя сделать конкретно для какой то одной группы СПП элементов, настройка применяется ко всем наборам. Вот я и пытаюсь z-ом сделать журнал изменений для одного конкретного набора. Буду весьма признателен если поделитесь своим опытом в этом деле.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание объекта документа изменений
СообщениеДобавлено: Пн, июн 15 2020, 09:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
По мне все-таки правильнее использовать стандарт (при накручивании своего решения вполне возможны ошибки в различных случаях, т.к. у вас отделены транзакции изменения собственно и записи чейнж дока, я уж не говорю, что новый человек на проекте будет очень удивлен наличию такого костыля).
Судя по описанию проблемы: просто поставьте точку прерывания и посмотрите, что вы отдаете в таблицы-параметры. Заполнены ли эти таблицы корректно: в первую очередь ключевые поля (по ним идет связь между старой-новой записью) вплоть до манданта.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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