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/ |