SAPфорум.RU
https://sapboard.ru/forum/

В документе не отражается замещение полей в 1025
https://sapboard.ru/forum/viewtopic.php?f=13&t=35942
Страница 1 из 1

Автор:  Werwolf [ Чт, апр 03 2008, 12:15 ]
Заголовок сообщения:  В документе не отражается замещение полей в 1025

Доброго всем дня!

Подскажите начинающему, в какую сторону (думаю, OpenFI) смотреть, если в 1025 делаю замещение полей, а в документе это не отражается.

Может, у кого доки какие есть по этой теме.

Автор:  Valeriy [ Чт, апр 03 2008, 13:52 ]
Заголовок сообщения: 

Описание проблемы после установки note 530655

Проводка документа(Окончат. Проверки завершены) 00001025_e
-----------------------------------------------------------------------------------------------
FUNCTION open_fi_perform_00001025_e.

*------------------ Save interface data --------------------------------
* MEMID+6 = '00001025E'. "start:note530655
* EXPORT T_AUSZ1 T_AUSZ2 T_AUSZ3 T_BKPF T_BKP1
* T_BSEC T_BSED T_BSEG T_BSET T_BSEU
* TO MEMORY ID MEMID.
После установки данной ноты, SAP перед вызовом OpenFi запоминает данные
-----------------------------------------------------------------------------------------------
l_ausz1[] = t_ausz1[].
l_ausz2[] = t_ausz2[].
l_ausz3[] = t_ausz3[].
l_bkpf[] = t_bkpf[].
l_bkp1[] = t_bkp1[].
l_bsec[] = t_bsec[].
l_bsed[] = t_bsed[].
l_bseg[] = t_bseg[].
l_bset[] = t_bset[].
l_bseu[] = t_bseu[]. "end:note530655
l_rsgtab[] = t_rsgtab[]. "note561898
l_renum[] = t_renum[]. "note561898
l_postab[] = t_postab[]. "note561898

*------------- Open FI Interface with local destination ----------------
Вызов OpenFI и здесь когда то срабатывали замещения
-----------------------------------------------------------------------------------------------
CALL FUNCTION fmtab-funct
EXPORTING
i_bkdf = i_bkdf
TABLES
t_ausz1 = t_ausz1
t_ausz2 = t_ausz2
t_ausz3 = t_ausz3
t_bkpf = t_bkpf
t_bkp1 = t_bkp1
t_bsec = t_bsec
t_bsed = t_bsed
t_bseg = t_bseg
t_bset = t_bset
t_bseu = t_bseu
t_rsgtab = t_rsgtab "note561898
t_renum = t_renum "note561898
t_postab = t_postab. "note561898

После отработки замещений мы получаем интересующий нас результат
-----------------------------------------------------------------------------------------------
* IMPORT T_AUSZ1 T_AUSZ2 T_AUSZ3 T_BKPF T_BKP1 "start:note530655
* T_BSEC T_BSED T_BSEG T_BSET T_BSEU
* FROM MEMORY ID MEMID.
Здесь SAP перетирает наши данные, ранее сохранёнными
--------------------------------------------------------------------------------------
t_ausz1[] = l_ausz1[].
t_ausz2[] = l_ausz2[].
t_ausz3[] = l_ausz3[].
t_bkpf[] = l_bkpf[].
t_bkp1[] = l_bkp1[].
t_bsec[] = l_bsec[].
t_bsed[] = l_bsed[].
t_bseg[] = l_bseg[].
t_bset[] = l_bset[].
t_bseu[] = l_bseu[]. "end:note530655
t_rsgtab[] = l_rsgtab[]. "note561898
t_renum[] = l_renum[]. "note561898
t_postab[] = l_postab[]. "note561898

Автор:  Aval [ Чт, апр 03 2008, 14:35 ]
Заголовок сообщения: 

Вариантов несколько:
1.Воспользоваться событием 1120 и поменять в параметрах ФМ
t_bkpfsub и t_bsegsub - это честный способ.
Если поля отсутствуют, то на форуме обсуждалось и вроде можно эти структуры расширить(не пробовал).
А можно:
2. В 1025, если описанная нота не стоит - отправить ваши изменения в память - аналог предыдущего:
EXPORT T_AUSZ1 T_AUSZ2 T_AUSZ3 T_BKPF T_BKP1
T_BSEC T_BSED T_BSEG T_BSET T_BSEU T_RSGTAB T_RENUM T_POSTAB
TO MEMORY ID MEMID.
Потом они будут импортированы(см. ниже).
Если нота стоит, то при помощи глобальной адрессации получить доступ к внутр. таблицам: l_bkpf, l_bkp1... и изменить там. Это не честный способ. :)

Автор:  Werwolf [ Пт, апр 04 2008, 08:10 ]
Заголовок сообщения: 

Спасибо огромное буду копать!

Автор:  Werwolf [ Пт, апр 04 2008, 12:52 ]
Заголовок сообщения: 

Спасибо всем откликнувшимся оказалось FUNCTION open_fi_perform_00001025_e. сломали до меня ) туда и влез

Автор:  Natashik_RU [ Чт, июл 17 2008, 19:19 ]
Заголовок сообщения: 

А я создала аналогичный ФМ, но возникла ошибка

Internal Error: Entry in COKA-Buffer not found
Message № KC051

The system could not find the entry with the following key in the COKA float:
Object number = KS10001502G1
Cost element = 89721
Origin group =

Что-то еще надо замещать?

Автор:  Voffka [ Пт, июл 18 2008, 09:44 ]
Заголовок сообщения: 

Natashik_RU написал(а):
А я создала аналогичный ФМ, но возникла ошибка

Internal Error: Entry in COKA-Buffer not found
Message № KC051

The system could not find the entry with the following key in the COKA float:
Object number = KS10001502G1
Cost element = 89721
Origin group =

Что-то еще надо замещать?


Это не имеет отношения к самому замещению. Смотрите настройки.

Автор:  Consultator [ Чт, ноя 06 2008, 22:19 ]
Заголовок сообщения: 

Voffka написал:


Это не имеет отношения к самому замещению. Смотрите настройки.



Это имеет самое непосредственное отношение к замещению. Ошибка возникла из-за того, что признаки с СО до и после замещения разные. И вызвано это как раз замещением.
В связи с этим вопрос:
существует ли ФМ/Бади/Замещенеи/Опен ФИ событие из которого видно все строки COBL или все строки BSEG и по одной строке COBL? Или на крайняк что-то чем можно провести замещение до срабатывания деривации СО.
Из известных мне только расширение СОРА0005 но оно срабатывает после проверки СОКА буфера :-(

Автор:  ROKO [ Пт, ноя 07 2008, 08:50 ]
Заголовок сообщения: 

Consultator написал(а):
существует ли ФМ/Бади/Замещенеи/Опен ФИ событие из которого видно все строки COBL или все строки BSEG и по одной строке COBL? Или на крайняк что-то чем можно провести замещение до срабатывания деривации СО.
Из известных мне только расширение СОРА0005 но оно срабатывает после проверки СОКА буфера :-(


Посмотрите вот этот user-exit :
COPA0001 Расширение деривации в учете результатов (СО-РА)
А вообще-то вот здесь есть программа, которая по коду транзакции показывает user-exit'ы и BADI, используемые в ней.

Автор:  Consultator [ Пт, ноя 07 2008, 13:10 ]
Заголовок сообщения: 

ROKO написал:

Посмотрите вот этот user-exit :
COPA0001 Расширение деривации в учете результатов (СО-РА)
А вообще-то вот здесь есть программа, которая по коду транзакции показывает user-exit'ы и BADI, используемые в ней.



Добрый день!
Благодарю, что откликнулись. Расширение не совсем подходит. в кратце объясню суть проблемы: в одну из позиций документа проставляется бизнес-сфера. Дальше через OpenFI эта бизнес-сфера проставляется во все другие позиции (изначально исходим из того, что на один документ будет одна бизнес-сфера по определению). Так вот, бизнес-сфера является также признаком в СО-РА. Работает это все крайне странно: сначала срабатывает деривация СО, от того, что введено на экране, затем срабатывает OpenFI, а затем снова деривация. После этого вылетает ошибка, которая и обсуждалась в этой ветке (СОКА буфер). Т.е. будущий контролинговый документ сначала как бы кэшируется, а потом, после OpenFI ключ записи меняется, и соответсвенно она не может быть найдена в буфере.

Как один из вариантов решения проблемы предполагаю либо вы COBL выполнить процедуру, аналогичную выполняемой в OpenFI (из одной позиции проставит бизнес-сферу во все остальные) либо перебить бизнес-сферу из позиции BSEG в позицию СОВL. Для первого нужно в одном месте видеть все позиции COBL, для второго - видеть одновременно позицию COBL ив весь BSEG (или одну позицию, если оно срабатывает после OpenFI но до чтения СОКА буфера).
COPA0001 перебирает позиции COBL по одной. По этому, к сожалению, тим воспользоваться не получится.... :-(

Автор:  grizlik [ Ср, май 29 2013, 19:10 ]
Заголовок сообщения:  Re: open fi 1025

Господа, кому-то удалось решить проблему?

Цитата:
Расширение не совсем подходит. в кратце объясню суть проблемы: в одну из позиций документа проставляется бизнес-сфера. Дальше через OpenFI эта бизнес-сфера проставляется во все другие позиции (изначально исходим из того, что на один документ будет одна бизнес-сфера по определению). Так вот, бизнес-сфера является также признаком в СО-РА. Работает это все крайне странно: сначала срабатывает деривация СО, от того, что введено на экране, затем срабатывает OpenFI, а затем снова деривация. После этого вылетает ошибка, которая и обсуждалась в этой ветке (СОКА буфер). Т.е. будущий контролинговый документ сначала как бы кэшируется, а потом, после OpenFI ключ записи меняется, и соответсвенно она не может быть найдена в буфере.

Автор:  dump [ Пн, июн 03 2013, 16:32 ]
Заголовок сообщения:  Re: open fi 1025

проблема решается контроллинговым замещением

Автор:  AirNeO [ Чт, дек 03 2020, 06:39 ]
Заголовок сообщения:  Re:

Aval написал:
Вариантов несколько:
1.Воспользоваться событием 1120 и поменять в параметрах ФМ
t_bkpfsub и t_bsegsub - это честный способ.
Если поля отсутствуют, то на форуме обсуждалось и вроде можно эти структуры расширить(не пробовал).
А можно:
2. В 1025, если описанная нота не стоит - отправить ваши изменения в память - аналог предыдущего:
EXPORT T_AUSZ1 T_AUSZ2 T_AUSZ3 T_BKPF T_BKP1
T_BSEC T_BSED T_BSEG T_BSET T_BSEU T_RSGTAB T_RENUM T_POSTAB
TO MEMORY ID MEMID.
Потом они будут импортированы(см. ниже).
Если нота стоит, то при помощи глобальной адрессации получить доступ к внутр. таблицам: l_bkpf, l_bkp1... и изменить там. Это не честный способ. :)


А можно на примере показать как можно получить доступ l_bseg ?, получить доступ к переменным в главной программе не проблема а вот в даннном случае когда все вызывается через фм я не представляю как это сделать .

Автор:  AirNeO [ Чт, дек 03 2020, 06:39 ]
Заголовок сообщения:  Re:

Aval написал:
Вариантов несколько:
1.Воспользоваться событием 1120 и поменять в параметрах ФМ
t_bkpfsub и t_bsegsub - это честный способ.
Если поля отсутствуют, то на форуме обсуждалось и вроде можно эти структуры расширить(не пробовал).
А можно:
2. В 1025, если описанная нота не стоит - отправить ваши изменения в память - аналог предыдущего:
EXPORT T_AUSZ1 T_AUSZ2 T_AUSZ3 T_BKPF T_BKP1
T_BSEC T_BSED T_BSEG T_BSET T_BSEU T_RSGTAB T_RENUM T_POSTAB
TO MEMORY ID MEMID.
Потом они будут импортированы(см. ниже).
Если нота стоит, то при помощи глобальной адресации получить доступ к внутр. таблицам: l_bkpf, l_bkp1... и изменить там. Это нечестный способ. :)


А можно на примере показать, как можно получить доступ к l_bseg? Получить доступ к переменным в главной программе не проблема, а вот в данном случае, когда все вызывается через ФМ, я не представляю, как это сделать.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/