SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Дополнительные поля в MIRO


Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Wed Aug 27, 2008 4:15 pm    Post subject: Reply with quote

Извините никогда не сталкивался с подобным, можно поподробнее описать что именно делать.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Aug 27, 2008 4:49 pm    Post subject: Reply with quote

Общая идея использования апдейтных модулей такая, что они выполняются не сразу, а встают в очередь и начинают последовательно выполняться сразу после commit work.

Вам нужно создать подпограмму или ФМ, внутри которого будет содержаться команда update rbkp для обновления поля zztest. Номер документа вам известен в BADI INVOICE_UPDATE.
Поскольку эта badi вызывается до того, как фактура создана, то нужно, что бы ваш апдейтный модуль отработал после создания документа. Поэтому если создание фактуры запущено как V1 процесс, ваш модуль нужно запустить как V2 процесс.

Почитайте хелп по ключевым словам
CALL FUNCTION ... IN UPDATE TASK или
PERFORM ... ON COMMIT

или курс BC414, на сайте есть.
Back to top
View user's profile Send private message Blog Visit poster's website
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Thu Aug 28, 2008 11:49 am    Post subject: Reply with quote

Хорошо попробую, о результатах сообщу Smile
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Thu Aug 28, 2008 12:19 pm    Post subject: Reply with quote

Хочу дополнить, даже в случае варианта с использованием пользовательской таблицы для хранения дополнительных полей, вам бы пришлось использовать апдейтные модули из-за необходимости соблюдать целостность данных, потому что в момент вызова BADI INVOICE_UPDATE документ еще не создан. Если в процессе его создания произойдет ошибка, то вашей пользовательской таблице тоже не должно быть записи.
Back to top
View user's profile Send private message Blog Visit poster's website
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Thu Aug 28, 2008 4:11 pm    Post subject: Reply with quote

Да вы правы, об этом я как то не подумал. Rolling Eyes

Сейчас выяснил что в INVOICE_UPDATE поле BELNR ещё не заполнено заполнен только год Sad придётся искать дальше...
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Thu Aug 28, 2008 9:22 pm    Post subject: Reply with quote

DofD wrote:
Сейчас выяснил что в INVOICE_UPDATE поле BELNR ещё не заполнено заполнен только год Sad придётся искать дальше...


Хм, странно, у меня почему то отложилось, когда отлаживал, что номер инвойса уже был в s_rbkp.
Back to top
View user's profile Send private message Blog Visit poster's website
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Fri Aug 29, 2008 8:40 am    Post subject: Reply with quote

Странно сейчас посмотрю, может я в конце дня напутал чего. Только у меня нет просто s_rbkp есть s_rbkp_new и s_rbkp_old

PS: Нет все верно все поля заполнены кроме belnr
PPS: Всеже нашёл в чем я не прав я использую CHANGE_AT_SAVE там номера ещё нет а в CHANGE_BEFORE_UPDATE уже заполнен
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Aug 29, 2008 5:29 pm    Post subject: Reply with quote

Ну да, я про CHANGE_BEFORE_UPDATE и говорил.
Back to top
View user's profile Send private message Blog Visit poster's website
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Tue Sep 02, 2008 4:04 pm    Post subject: Reply with quote

Огромное спасибо всем кто отозвался всё получилось!!!
Back to top
View user's profile Send private message
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Wed Sep 03, 2008 9:23 am    Post subject: Reply with quote

Появилось время решил описать в кратце как сделал вдруг кому нибудь пригодится.

1. Расширил доп структурой таблицу RBKP
2. Расширил доп структурой INVFO
3. Создал группу функций с экраном где разместил доп поля
4. В BADI BADI_FDCB_SUBBAS04 сделал настройку, своего экрана с MIRO импорт и экспорт полей, также в ней делаю экспорт в ячейку памяти, своих полей.
5. Создал функцию обновления
6. в BADI INVOICE_UPDATE делаю импорт из памяти своих полей, и передаю их в функцию.
Back to top
View user's profile Send private message
Ashi
Участник
Участник



Joined: 22 Jun 2009
Posts: 2

PostPosted: Mon Jun 22, 2009 4:39 pm    Post subject: Reply with quote

Огромное спасибо за информацию по BADI.
Не могли бы вы поподробнее объяснить как организовать интерфейс с MIRO. В своем экране у меня поле называется INVFO-ZHKONT но на методе GET_DATA_FROM_SCREEN_OBJECT поле me->if_ex_badi_fdcb_subbas04~invfo-ZHKONT пустое. Заранее благодарю
Back to top
View user's profile Send private message
DofD
Участник
Участник



Joined: 11 Jan 2008
Posts: 44

PostPosted: Tue Jun 23, 2009 8:47 am    Post subject: Reply with quote

в методе GET_DATA_FROM_SCREEN_OBJECT делаю следующее
Code:
 ex_invfo-ztest  = me->if_ex_badi_fdcb_subbas04~invfo-ztest


в PAI экрана
Code:
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

  CALL METHOD o_badi_fdcb_subbas04->put_data_to_screen_object
    EXPORTING
      im_invfo  = invfo.


в PBO экрана
Code:
   IF o_badi_fdcb_subbas04 IS INITIAL.

    CALL METHOD cl_exithandler=>get_instance_for_subscreens
      CHANGING
        instance                      = o_badi_fdcb_subbas04
      EXCEPTIONS
        no_reference                  = 1
        no_interface_reference        = 2
        no_exit_interface             = 3
        data_incons_in_exit_managem   = 4
        class_not_implement_interface = 5
        OTHERS                        = 6.
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDIF.

* object created  ?
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

* get data from main screen

  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo = invfo.


Вроде не чего не забыл Smile
Back to top
View user's profile Send private message
Ashi
Участник
Участник



Joined: 22 Jun 2009
Posts: 2

PostPosted: Tue Jun 23, 2009 11:48 am    Post subject: Reply with quote

Большое спасибо
Back to top
View user's profile Send private message
SDюк
Участник
Участник



Joined: 12 Aug 2011
Posts: 2

PostPosted: Tue Aug 23, 2011 1:51 pm    Post subject: Reply with quote

DofD wrote:
Появилось время решил описать в кратце как сделал вдруг кому нибудь пригодится.

1. Расширил доп структурой таблицу RBKP
2. Расширил доп структурой INVFO
3. Создал группу функций с экраном где разместил доп поля
4. В BADI BADI_FDCB_SUBBAS04 сделал настройку, своего экрана с MIRO импорт и экспорт полей, также в ней делаю экспорт в ячейку памяти, своих полей.
5. Создал функцию обновления
6. в BADI INVOICE_UPDATE делаю импорт из памяти своих полей, и передаю их в функцию.


Пробовал сделать так же. пункт 6 не работает
В ST13 смотрел там пусто после вызова ФM IN UPDATE TASK.
Что может быть?

Подозреваю что нужно запускать в виде PERFORM <UPDATE> ON COMMIT.

Не понял где FORM <UPDATE> создать чтобы его в методе видно было.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Wed Aug 24, 2011 8:18 am    Post subject: Reply with quote

SDюк wrote:
Пробовал сделать так же. пункт 6 не работает
В ST13 смотрел там пусто после вызова ФM IN UPDATE TASK.
Что может быть?

Приведите код BADI INVOICE_UPDATE

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.