Добрый день.
Возникла такая проблемка. После создания отношении между ДП (транзакция BP, Отношения, FSB001), при сохранение проваливается в дамп. Притом проваливается в дамп не всегда. У некоторых создаёт нормально, у некоторых создается только с одной стороны (то есть если есть ДП № 1 и № 2. При создание отношения ДП № 1 к № 2 "является компаньоном" падает в дамп, а при создание отношения ДП № 2 к № 1 "имеет компаньона" создаётся. Хотя по сути это равносильные операции, т.е. в таблицы BUT050 при это должна появляться одна и таже запись.) Бывает что вообще не присваиваются отношения не в ту, не в другую сторону.
Информация из дампа (MESSAGE_TYPE_X):
Code:
Technical information about the message:
 Message class....... 00
 Number.............. 081
 Variable 1.......... "NESTED_PERFORM_ON_COMMIT"
 Variable 2.......... "caller: SAPLBUPA_BADI_CALL"
 Variable 3.......... "program: SAPLBUPA_BADI_CALL"
 Variable 4.......... "form: BADI_CALL"
Code:
   61     if sy-subrc ne 0.
   62       describe table imode_orders lines i_level.
   63       imode_orders_wa-prog = prog.
   64       imode_orders_wa-rout = rout.
   65       imode_orders_wa-i_level = i_level.
   66       imode_orders_wa-u_level = u_level.
   67       insert imode_orders_wa into imode_orders index sy-tabix.
   68       export imode_orders imode_rb_orders to memory id %_vbkey.
   69     endif.
   70   else.
   71     if sy-oncom = 'P'.
   72 *     already in PERFORM ON COMMIT
   73       call 'C_SAPGPARAM' id 'NAME'  field 'abap/allow_nested_poc'  "#EC CI_CCALL
   74                          id 'VALUE' field allow_nested_poc.
   75       if allow_nested_poc <> 'X'.
   76 *       nested PERFORM ON COMMIT not allowed
   77         call 'AB_GET_CALLER' id 'PROGRAM' field caller.  "#EC CI_CCALL
   78         if caller <> 'SAPMSSY0'.
   79           mpar1 = 'NESTED_PERFORM_ON_COMMIT'.
   80           concatenate 'caller:'  caller into mpar2 separated by ' '.
   81           concatenate 'program:' prog   into mpar3 separated by ' '.
   82           concatenate 'form:'    rout   into mpar4 separated by ' '.
   83 *         switch back kernel flag: just for sure.
   84           call 'SET_SWITCH_TXEND' id 'STATE' field ' '.  "#EC CI_CCALL
   85 *         issue short dump
>>>>>           message x081(00) with mpar1 mpar2 mpar3 mpar4.
   87         endif.
   88       endif.
   89     endif.
   90     read table orders
   91       into orders_wa
   92       with key prog = prog
   93                rout = rout
   94       binary search.
   95     if sy-subrc ne 0.
   96       describe table orders lines i_level.
   97       orders_wa-prog = prog.
   98       orders_wa-rout = rout.
   99       orders_wa-i_level = i_level.
  100       orders_wa-u_level = u_level.
  101       insert orders_wa into orders index sy-tabix.
  102     endif.
  103 *   for RTM test concerning POC during OS event handling
  104     if sy-oncom = 'E'.
  105       orders_wa-prog = prog.