Текущее время: Пн, июл 21 2025, 23:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Проблемы при добавлении поля в таблицу!
СообщениеДобавлено: Чт, июл 12 2007, 13:13 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, окт 10 2006, 12:23
Сообщения: 679
Откуда: Санкт-Петербург
Пол: Мужской
Здравствуйте!
Такая проблема в отчёт COOIS надо добавить поле "Требуемая дата поставки" (вычислил что это VBAK-VDATU).
1. Расширил структуры: CI_IOCONF, CI_IOGMER, CI_IOGOMO, CI_IOHEADER, CI_IOITEM, CI_IOMAMO, CI_IOOPCOMP, CI_IOOPPORD, CI_IOOPPREQ, CI_IOOPPRT, CI_IOSEQUEN. (добавил VDATU).
2. Модифицировал include вызывающей программы COIS_DISP_SHOW.

В итоге столбец выводится но не заполняется данными.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 12 2007, 18:17 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
смею предположить, что в программе есть user-exit или *zz* include, в котором должна быть программка для заполнения этих полей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 12 2007, 19:07 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, окт 10 2006, 12:23
Сообщения: 679
Откуда: Санкт-Петербург
Пол: Мужской
юзер-экзит написал...
*{ INSERT TTDK901861 5

tables vbak.
data iii type i.
FIELD-SYMBOLS <fs1> type any.
FIELD-SYMBOLS <fs_comp1> type any.
FIELD-SYMBOLS <fs_comp21> type any.

*} INSERT
*{ INSERT TTDK901861 6

clear iii.
loop at IT_FIELDCAT_ALL .
if IT_FIELDCAT_ALL-FIELDNAME = 'VDATU'.
iii = iii + 1.
endif.
if IT_FIELDCAT_ALL-FIELDNAME = 'VBELN'.
iii = iii + 1.
endif.
endloop.
If iii = 2.
loop at it_data ASSIGNING <fs_comp1>.
assign component 'VBELN' of structure <fs_comp1> to <fs1>.
assign component 'VDATU' of structure <fs_comp1> to <fs_comp21>.
select single vdatu from vbak into <fs_comp21> where vbeln = <fs1>.
endloop.
endif.

*} INSERT


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 09:28 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Я бы посмотрел в отладчике, как заполнено поле VDATU в таблице it_data сразу же после выхода из экзита. Возможно алгоритм в экзите не совсем верный. :)

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблемы при добавлении поля в таблицу!
СообщениеДобавлено: Пн, фев 11 2013, 07:10 
Начинающий
Начинающий

Зарегистрирован:
Чт, янв 10 2013, 07:13
Сообщения: 1
Выкладываю свои шаги при добавлении поля в транзакции COOIS, COHV. Может, кому-нибудь пригодится.
Задача: В транзакции COOIS в alv-таблице добавить поле «Наименование материала клиента» (поле kdmat из таблицы VBAP).
Использовала SAP Note: 434123, 615206.
Шаги выполнения:
1. Изменение структуры IOHEADER: в структуре имелась вложенная структура ZPP_IOHEADER «пользовательские поля» (если бы таковой подструктуры не оказалось, то можно было бы использовать CI_IOHEADER): добавила поле KDMAT типа MATNR_KU.
2. Запускаем транзакцию SE38, открываем программу RCNT000, запускаем её. Устанавливаем параметры: «Имя группы полей» = IOHEADER; «Имя Include» = RCNHEAD. Для изменения возможно понадобится ключ доступа (информацию о том, как получить ключ можно посмотреть по ссылке http://sidadm.blogspot.ru/2011/10/sap-ii.html). Выбрать «Execute», затем выбрать «Generate».
3. Запускаем транзакцию SE38, открываем программу RCOTX000, запускаем её. Устанавливаем параметры: «Имя группы полей» = IOHEADER, нажимаем «Выполнить».
(После вышеизложенных шагов необходимое поле добавится в alv-таблице, но будет, конечно, пустым, т.к. не определен его источник).
4. Запускаем транзакцию SE18, «Имя BADi» = WORKORDER_INFOSYSTEM. Вносим изменения в метод TABLES_MODIFY_LAY (для того, чтобы определить какой именно метод отрабатывает при выводе alv-таблицы, устанавливаем точки останова в самих методах), по сути редактирование класса (SE24) ZCL_IM_PP_COIS_WO_EXP01:
"Добавление поля Номер материала клиента
DATA : BEGIN OF st_kdmat,
kdmat TYPE matnr_ku,
END OF st_kdmat.
DATA : st_header TYPE ioheader.
LOOP AT ct_ioheader INTO st_header.
IF NOT st_header IS INITIAL.
SELECT SINGLE kdmat
FROM vbap
INTO st_kdmat
WHERE vbeln = st_header-KDAUF_AUFK
and posnr = st_header-KDPOS_AUFK.
ENDIF.
st_header-kdmat = st_kdmat-kdmat.
MODIFY ct_ioheader FROM st_header.
ENDLOOP.

5. Сохраняем, активируем.


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

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


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

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


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

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