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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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