Текущее время: Вс, июл 20 2025, 14:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: метод LINE_MODIFY.
СообщениеДобавлено: Чт, май 16 2013, 14:48 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 24 2010, 14:08
Сообщения: 94
Добрый день уважаемы коллеги.
У меня такая ситуация. когда пользователь в миго формирует документы 301 видом движения, надо в текст заголовка передать номер завода+номер склада+время ввода.

в LINE_MODIFY пишу следющий код.
* Данные
DATA: ls_gohead TYPE gohead.
DATA: ZBKTXT type mkpf-BKTXT.
DATA: zwerks type t001w-werks.
Data: zlgort type t001l-lgort.
FIELD-SYMBOLS: <fs_gohead> TYPE ANY.

* Код
ASSIGN ('(SAPLMIGO)GOHEAD') TO <fs_gohead>.

ls_gohead = <fs_gohead>.

UNASSIGN <fs_gohead>.

if cs_goitem-bwart = '301' and ls_gohead-BKTXT = ' '.

select single werks from t001w into zwerks
where werks = cs_goitem-werks.
select single lgort from t001l into zlgort
where lgort = cs_goitem-lgort.

CONCATENATE zwerks zlgort ls_gohead-CPUTM INTO ls_gohead-BKTXT.
ENDIF.


но у меня не получается. может передача данные не в LINE_MODIFY?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Чт, май 16 2013, 18:03 
Менеджер
Менеджер

Зарегистрирован:
Вт, июл 10 2007, 10:57
Сообщения: 516
Пол: Мужской
Спросите лучше в ABAP форуме.

На первый взгляд - проверяйте результат ASSIGN ( IF SY-SUBRC EQ 0 and <FS_GOHEAD> IS ASSIGNED ), также не делайте UNASSIGN до окончания всех изменения.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Пт, май 17 2013, 09:31 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Чт, май 19 2005, 12:34
Сообщения: 1941
Откуда: НК
Пол: Мужской
Перенесено из форума по ММ

_________________
Eritis sicut Deus, scientes bonum et malum...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Пт, май 17 2013, 12:24 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Не удивительно что не работает - меняется ведь только локальная переменная )
Надо как минимум убрать переменную ls_gohead, вместо нее везде использовать <fs_gohead>.
UNASSIGN <fs_gohead> перенести в конец или вообще убрать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Пн, май 20 2013, 06:55 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 24 2010, 14:08
Сообщения: 94
zsap написал:
Не удивительно что не работает - меняется ведь только локальная переменная )
Надо как минимум убрать переменную ls_gohead, вместо нее везде использовать <fs_gohead>.
UNASSIGN <fs_gohead> перенести в конец или вообще убрать.


UNASSIGN <fs_gohead> убрала. Теперь ls_gohead-BKTXT заполняется, в отладчике видела, но после сохранения не передается. Поле пустое становится.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Пн, май 20 2013, 10:26 
Ассистент
Ассистент

Зарегистрирован:
Чт, июл 08 2010, 07:35
Сообщения: 42
Пол: Мужской
Добрый день!
ls_gohead-BKTXT - локальная переменная, она очищается после выхода из метода.
Используйте вместо нее <fs_gohead>, как Вам советовали.
Объявите <fs_gohead> такого же типа, как GOHEAD. Сделайте
ASSIGN ('(SAPLMIGO)GOHEAD') TO <fs_gohead>.
IF sy-subrc = 0.
...
<fs_gohead>-bktxt = нужное значение
endif.
как-то так.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Пн, май 20 2013, 13:14 
Менеджер
Менеджер

Зарегистрирован:
Вт, июл 10 2007, 10:57
Сообщения: 516
Пол: Мужской
2 alex_sh80

думаю (как и выше указал) нужно ещё проверять и <FS_GOHEAD> IS ASSIGNED, одного sy-sbrc eq 0 не достаточно imho


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: метод LINE_MODIFY.
СообщениеДобавлено: Вт, май 21 2013, 08:50 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 24 2010, 14:08
Сообщения: 94
Спасибо большое всем. Получилось.
Скидываю код, может кому нибудь пригодится.

Данные
FIELD-SYMBOLS:<fs> TYPE ANY.
DATA: ZBKTXT type mkpf-BKTXT.
DATA: zwerks type t001w-werks.
Data: zlgort type t001l-lgort.
data: p_all type gohead-BKTXT.
data: ls_extdata type TY_T_EXTDATA.
data: p_len type p.

* Код
if cs_goitem-bwart = '301'.

data:
GR_KERNEL type ref to OBJECT,
l_gohead TYPE gohead.

ASSIGN ('(SAPLMIGO)LCL_MIGO_GLOBALS=>KERNEL') TO <fs>.

select single werks from t001w into zwerks
where werks = cs_goitem-werks.
select single lgort from t001l into zlgort
where lgort = cs_goitem-lgort.

gr_kernel = <fs>.

CALL METHOD gr_kernel->('HEADER_GET')
IMPORTING
e_gohead = l_gohead.

CONCATENATE zwerks zlgort l_gohead-OIB_BLTIME INTO l_gohead-BKTXT.

CALL METHOD gr_kernel->('HEADER_MODIFY')
EXPORTING
i_gohead = l_gohead.

endif.


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

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


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

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


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

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