Sapforum.Biz

Логистика => Управление материальными потоками (MM) => Тема начата: Паганель от Июль 07, 2009, 03:17:45 pm

Название: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 07, 2009, 03:17:45 pm
Провел расчет на той датой, вижу документ 5100322097, хотелось бы ее теперь корректно сторнировать....
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Uukrul от Июль 07, 2009, 03:19:34 pm
You are not allowed to view links. Register or Login
Провел расчет на той датой, вижу документ 5100322097, хотелось бы ее теперь корректно сторнировать....
А что этот документ просто сторнировать не дает? Обычная наверное FI-ная кредиторская создалась...
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 07, 2009, 03:20:55 pm
Цитата: Uukrul  link=topic=709.msg4436#msg4436 date=1246969174
А что этот документ просто сторнировать не дает? Обычная наверное FI-ная кредиторская создалась...

"Просто" это FB08?

Просто при сторнировании через FB08, пишет "Сторно документов в финансовой бухгалтерии невозможно № сообщения F5673" и не сторнирует....
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Uukrul от Июль 07, 2009, 03:24:12 pm
You are not allowed to view links. Register or Login
"Просто" это FB08?
Ну да... а что после этого грабли какие-то?
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 07, 2009, 03:25:40 pm
Цитата: Uukrul  link=topic=709.msg4438#msg4438 date=1246969452
Ну да... а что после этого грабли какие-то?

Просто не сторнируется.....
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 07, 2009, 04:16:47 pm
Как я понял, просто так сторнировать не получится (еще конечно поищу, но кажется точно - не сторнируется), можно провести сторно продажи, и повторно рассчитать (mrko), но в силу особенностей БП, этот вариант мне не подходит.
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: DEAD_MOROZ от Июль 08, 2009, 01:01:38 pm
Добрый день.
Сторнировать FI -документ не даст. Нужно сторнировать документ отпуска и произвести повторный расчет.
Поищи на форуме sapboard.ru, как-то обсуждалось, не помню только решили или нет.
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 08, 2009, 01:04:25 pm
You are not allowed to view links. Register or Login
Добрый день.
Сторнировать FI -документ не даст. Нужно сторнировать документ отпуска и произвести повторный расчет.
Поищи на форуме sapboard.ru, как-то обсуждалось, не помню только решили или нет.

Спасибо, я это как раз и написал:
You are not allowed to view links. Register or Login
Как я понял, просто так сторнировать не получится (еще конечно поищу, но кажется точно - не сторнируется), можно провести сторно продажи, и повторно рассчитать (mrko), но в силу особенностей БП, этот вариант мне не подходит.

можно провести сторно продажи, и повторно рассчитать (mrko), но в силу особенностей БП, этот вариант мне не подходит.

Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Uukrul от Июль 08, 2009, 09:51:33 pm
Ну в общем как обычно есть два вариант или все правильно или, как я это называю "грязный хак". Если все правильно, то похоже без сторно отпуска никак, но если очень хочется, то конечно можно. Прежде чем поехали прочтите ниже следующее предупреждение:

ВНИМАНИЕ: Все что написано ниже, никогда не будет одобрено официальными представителями SAP AG  ;), если дело дойдет до разборки кто умный, а кто красивый и будет обнаружено использование данного метода, то красивым и умным будет SAP AG, а у вас будет хороший шанс слететь с поддержки. Я правда за лет уже значительно больше 10, не помню  такого, чтобы кого-то за это расстреляли, но учтите, что вы всегда можете оказаться первыми  ::) так что как там звучит у мелкософта и других, все что вы сделаете по данному описанию, вы сделаете на свой страх и риск и никакие ссылки на меня (UUKRUL) не будут приняты ни мной, ни тем более SAP AG  ;D , хотя никакого криминала или проблем мной лично зафиксировано небыло. Если кто может это опровергнуть пишите будем смотреть.

А теперь поехали.

В общем системе конечно все равно, что сторнировать, опять же это чисто FI-кредторская создается. Но, разработчики внести в транзакцию сторнирования правило, если транзакция которая создан документ FI, начинается на MR*, то будет выдано сообщение "Сторно документов в финансовой бухгалтерии невозможно" № сообщения F5673. В транзакции сторно там все по тупому, есть вызов ФМ FI_REVERSE_POSTING_ALLOWED в котором есть вот такая вот проверочка:
Код: You are not allowed to view links. Register or Login
  if  not i_awtyp is initial
  and not i_awtyp eq 'FOTP '                                "<595518
  and not i_awtyp eq 'BKPF '
  and not i_awtyp eq 'BKPFF'       "FI Document from AC INterface
  and not i_awtyp eq 'EBKPF'       "External Co Code
  and not i_awtyp eq 'IBKPF'
  and not i_awtyp eq 'FEBEP'       "Doc created from el. bank statement
  and not i_awtyp eq 'FKKST'       "Doc from FI-CA application
  and not i_awtyp eq 'FMPSO'       "Doc from Public Sector
  and not i_awtyp eq 'JVAM '       "JV WIP to WIP transfers
  and not i_awtyp eq 'GLYEC'       "GL year end closing italy  n816757
  and not ( i_awtyp eq 'AMBU ' and "reversal of AA postings during
                                   " migration of new gl
           ( i_tcode eq 'ASKBND' or i_tcode eq 'ASKBN' ) )

  and not i_tcode eq 'FBVB'        "Doc from Parking Transactions
  and not ( i_awtyp eq 'IDOC' and  "IDOC innerhalb FI erzeugt
            i_tcode eq 'FB05' ).   "                    note 560553
* Exception: Documents from Treasury -----------------------
    if i_glvor ne 'RFBU' or
*- From 99A on, reversal via AC Interface or CALL DIALOG --------------
         (  ( i_awtyp ne 'TR-TM' or i_revdoc = space )
         and ( i_awtyp ne 'BEKI'  or i_revdoc = space )
         and ( i_awtyp ne 'LOANS' or i_revdoc = space )
         and i_awtyp ne 'REACC' ).
      rc = 4.
      select single * from ttypt where spras eq sy-langu
                                 and   awtyp eq i_awtyp.
    endif.

  elseif i_tcode(2) = 'MR'.
    rc = 4.
    otext = 'Rechnungsprüfung'(mr0).
  endif.
В общем вот это вот i_tcode(2) = 'MR', генерирует нам sy-subrc = 4 и невозможность сторно. Так что первый обход проблемы это обновление таблицы BKPF-TCODE = 'BKPF', для документа FI, т.е. типа маскируемся под обычную проводку FI. После этого документ сторнируется без проблем.

Теперь надо еще решить, что делать с расчетом, который висит MRKO, как обработанный, само собой это как то не хорошо (ну или может по вашему бизнес процессу это типа нормально, тогда дальше не идем)? Для этого делаем такой код:
Код: You are not allowed to view links. Register or Login
UPDATE rkwa SET: status = '0'
                 WHERE mblnr = <документ MM> AND
                       mjahr = <год документа ММ> AND
                       zeile = <позиция документа ММ>,
                 belnr = space
                 WHERE mblnr = <документ MM> AND
                       mjahr = <год документа ММ> AND
                       zeile = <позиция документа ММ>,
                 gjahr = space
                 WHERE mblnr = <документ MM> AND
                       mjahr = <год документа ММ> AND
                       zeile = <позиция документа ММ>,
                 buzei = space
                 WHERE mblnr = <документ MM> AND
                       mjahr = <год документа ММ> AND
                       zeile = <позиция документа ММ>,
COMMIT WORK.
Ну и все... типа можно делать новый расчет...
Название: Re: Как "правильно" сторнировать расчет консинации?
Отправлено: Паганель от Июль 08, 2009, 10:03:36 pm
Гениально !!! *BRAVO*....

Для меня точно подойдет (это у меня в тестовой системе, набивал тестовые данные, и ошибся датой)......

Спасибо, особенно за идею как это все искать, шо-то я ступил, даже не посмотрел (SE91) чего же ошибка то выскакивает  :-( ......

На поле status в rkwa смотрел (бл..н, перед этим, долго не мог понять, чего же у меня не 01, до проведения расчета, пока люди добрые не подсказали) ..... ну вот, все уже было в руках что бы решить проблему, а не додумался .......