Автор Тема: Замена контрольного счета кредитора в MIRO  (Прочитано 99506 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
И так немного лирики:
Цитировать
Любимая тема наших финансистов это, нам один контрольный счет кредитора не катит, хотим выбирать счет по собственному желанию. Иногда кажется что пора гнезду включать это дело в стандарт типа отраслевое решение для exUSSR, а то для какой-то Бразилии, где много диких обезьян есть решение, а для нас нет... можно подумать наши обезьяны хуже бразильских.

В общем делая это в... некоторый раз и опять мучительно вспоминая, а как же это было сделано ранее... решил сделать кратенькую справочку с картинками. Реализация идет для ECC 6.0, но в принципе с 4.6 должно работать без проблем, единственное что настройка самого замещения в 4.6 и 4.7 находится кажется немного по другому пути, но код транзакции остался старый, так что можно будет вызвать по коду, минуя настройку.

1. Для работы будет использоваться как расширение пользователя при вводе счетов логистики, транзакция MIRO, так и замещение FI. В отличии от схемы предложенной когда-то на sapforum.ru в теме "Альтернативные счета" (кому надо найдут), выбранный счет замещения у меня не передается ни через IMPORT/EXPORT ни через какие-то поля документа. Использую немного другой метод, как мне кажется более простой, читаю напрямую данные из собственного экрана 0400, который вставлен в экран счета логистики, ну да об этом ниже.

2. Для начала надо объяснить SAP-у, что можно выполнять замещение счета в FI. Стандартно система это не позволяет делать. Для этого можно или через отладчик выполнить редактирование записи в транзакции SE11, пример отредактированной записи на рисунке GB01.png, т.е. поле BEXCLUDE должно быть равно space. Или второй вариант воспользоваться ниже приведенной программкой, так как не факт, что у вас есть в продуктиве права на редактор  ;)
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& Report  YXXX_UPDATE_MIROGB01
*&
*&---------------------------------------------------------------------*
*& Программка для установки метки возможности замещения счета в докумен
*& тах FI (поле HKONT)
*&---------------------------------------------------------------------*
REPORT  yxxx_update_mirogb01.

UPDATE gb01 SET bexclude = space
WHERE boolclass = '009' AND
      classtype = 'S' AND
      bcltab = 'BSEG' AND
      bclfield = 'HKONT'.
IF sy-subrc = 0.
  WRITE: / 'Обновление успешно выполнено!'.
  COMMIT WORK.
ELSE.
  WRITE: / 'Ошибка обновления! =', sy-subrc.
ENDIF.

3. Далее создадим свою программу замещения, путем копирования уже существующей стандартной программы в свою. Перед этим правда желательно убедиться, что это не сделал кто-то другой. Для этого идем в настройку:
SPRO: Финансы - Специальные регистры - Основные параметры настройки - Программы пользователя - Ведение пользовательских программ, зависящих от манданта.
Пример на рисунке GBLS.png и там смотрим что за программа задана для записи GBLS. Если это RGGBS000, тогда значит никто до вас замещения не рисовал и вы первый. А если там стоит что-то типа как в примере на рисунке, значит вы должны будете вставить текст замещения в уже кем-то созданную Z-программку. Предполагаем, что там стоит стандартная программа RGGBS000, идем в редактор SE38, вводим имя этой программы и выбираем копирование Ctrl+F5, опции копирования рисунок RGGBS000.png. Как по мне то копировать ничего кроме основного текста не нужно и тем-более не нужно копировать INCLUDES, мало ли чего SAP решит сам потом добавить в эти инклуды. А так получим нормальное решение. После копирования возвращаемся в настройку и вставляем туда имя своей программы для строки с ключем GBLS.
Примечание: Если программа содержит ошибку, то вы не сможете ее указать в настройке и сохранить запись. Будет выдано сообщение об ошибке. Поэтому после копирования сразу же вставляем имя новой программы. А уже потом идем в добавление своего замещения.
Пример моей программы ниже. Это базовая версия программы в которую вставлено только замещение для контрольного счета. В любых других случаях нужно будет вставить свой придуманный номер и его реализацию по аналогии с примером замещения U777.
Код: You are not allowed to view links. Register or Login
PROGRAM yxxx_rggbs000 .
*&**********************************************************************
*& Comments    : Замещения для FI, копия программы RGGBS000, затем в
*&               SPRO - Настройка - Финансы - Специальные регистры -
*&               Основные параметры настройки - Пользовательские прог-
*&               раммы, зависимые от манданта, и для прикладной облсти
*&               GBLS заменили программу RGGBS000 на YXXX_RGGBS000
*&               GBLS - YXXX_RGGBS000 - Прв/Змщ: ПользПрогр замещения
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - U777 - Общая разработка замещения
*&**********************************************************************

*---------------------------------------------------------------------*
* Corrections/ repair
* wms092357 070703 Note 638886: template routines to be used for
*                  workaround to substitute bseg-bewar from bseg-xref1/2
*---------------------------------------------------------------------*
*                                                                     *
*   Substitutions: EXIT-Formpool for Uxxx-Exits                       *
*                                                                     *
*   This formpool is used by SAP for testing purposes only.           *
*                                                                     *
*   Note: If you define a new user exit, you have to enter your       *
*         user exit in the form routine GET_EXIT_TITLES.              *
*                                                                     *
*---------------------------------------------------------------------*
INCLUDE fgbbgd00.              "Standard data types


*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*
*    PLEASE INCLUDE THE FOLLOWING "TYPE-POOL"  AND "TABLES" COMMANDS  *
*        IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM         *
TYPE-POOLS: gb002. " TO BE INCLUDED IN                       "wms092357
TABLES: bkpf,      " ANY SYSTEM THAT                         "wms092357
        bseg,      " HAS 'FI' INSTALLED                      "wms092357
        cobl,                                               "wms092357
        csks,                                               "wms092357
        anlz,                                               "wms092357
        glu1.                                               "wms092357
*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*


*----------------------------------------------------------------------*
*       FORM GET_EXIT_TITLES                                           *
*----------------------------------------------------------------------*
*       returns name and title of all available standard-exits         *
*       every exit in this formpool has to be added to this form.      *
*       You have to specify a parameter type in order to enable the    *
*       code generation program to determine correctly how to          *
*       generate the user exit call, i.e. how many and what kind of    *
*       parameter(s) are used in the user exit.                        *
*       The following parameter types exist:                           *
*                                                                      *
*       TYPE                Description              Usage             *
*    ------------------------------------------------------------      *
*       C_EXIT_PARAM_NONE   Use no parameter         Subst. and Valid. *
*                           except B_RESULT                            *
*       C_EXIT_PARAM_FIELD  Use one field as param.  Only Substitution *
*       C_EXIT_PARAM_CLASS  Use a type as parameter  Subst. and Valid  *
*                                                                      *
*----------------------------------------------------------------------*
*  -->  EXIT_TAB  table with exit-name and exit-titles                 *
*                 structure: NAME(5), PARAM(1), TITEL(60)
*----------------------------------------------------------------------*
FORM get_exit_titles TABLES etab.

  DATA: BEGIN OF exits OCCURS 50,
          name(5)   TYPE c,
          param     LIKE c_exit_param_none,
          title(60) TYPE c,
        END OF exits.

  exits-name  = 'U100'.
  exits-param = c_exit_param_none.
  exits-title = text-100.             "Cost center from CSKS
  APPEND exits.

  exits-name  = 'U101'.
  exits-param = c_exit_param_field.
  exits-title = text-101.             "Cost center from CSKS
  APPEND exits.

* begin of insertion                                          "wms092357
  exits-name  = 'U200'.
  exits-param = c_exit_param_field.
  exits-title = text-200.             "Cons. transaction type
  APPEND exits.                       "from xref1/2
* end of insertion                                            "wms092357

*&**********************************************************************
*& Comments    : Описание замещения контрольного счета кредитора при
*&               проводке счетов из ММ (Счет логистики)
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения U777
*&**********************************************************************
  exits-name = 'U777'.
  exits-param = c_exit_param_none.
  exits-title = text-777.
  APPEND exits.
*&**********************************************************************
*& Конец замещения U777 - Контрольный счет кредитора для счетов ММ
*&**********************************************************************
*& Comment: Текстовый элемент TEXT-777 = Контрольный счет кредитора
*&**********************************************************************


************************************************************************
* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *
*        IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM:         *
*  EXITS-NAME  = 'U102'.
*  EXITS-PARAM = C_EXIT_PARAM_CLASS.
*  EXITS-TITLE = TEXT-102.             "Sum is used for the reference.
*  APPEND EXITS.


***********************************************************************
** EXIT EXAMPLES FROM PUBLIC SECTOR INDUSTRY SOLUTION
**
** PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINE
** TO ENABLE PUBLIC SECTOR EXAMPLE SUBSTITUTION EXITS
***********************************************************************
  INCLUDE rggbs_ps_titles.


  REFRESH etab.
  LOOP AT exits.
    etab = exits.
    APPEND etab.
  ENDLOOP.

ENDFORM.                    "GET_EXIT_TITLES

*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики)
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения U777
*&**********************************************************************
* eject
*&---------------------------------------------------------------------*
*&      MACRO for u177
*&---------------------------------------------------------------------*
*       Макросы
*----------------------------------------------------------------------*
DEFINE ext_to_int.
  call function 'CONVERSION_EXIT_ALPHA_INPUT'
    exporting
      input  = &1
    importing
      output = &2.
END-OF-DEFINITION.

*&---------------------------------------------------------------------*
*&      Form  u177
*&---------------------------------------------------------------------*
* Замещение контрольного счета кредитора, для операций из счтеов ММ
* Операция вызвается только если ссылочная операция BKPF-AWTYP = 'RMRP'
*----------------------------------------------------------------------*
FORM u777.
  DATA: l_hkont LIKE bseg-hkont.

* Обработка только позиции контрольного счета кредитора
  IF bseg-koart = 'K'.
    CASE bseg-shkzg.
      WHEN 'H'.
        IF bseg-rebzg <> space.
*         Операция сторно документа авизо
          SELECT SINGLE hkont INTO (l_hkont)
          FROM bseg WHERE bukrs = bseg-bukrs AND
                          belnr = bseg-rebzg AND
                          gjahr = bseg-rebzj AND
                          buzei = bseg-rebzz.
          IF sy-subrc = 0. bseg-hkont = l_hkont. ENDIF.
        ELSE.
*         Проводка из MIRO, счет замещения введен на экране
          PERFORM read_hkont_from_screen CHANGING l_hkont.
          IF l_hkont <> space. bseg-hkont = l_hkont. ENDIF.
        ENDIF.
      WHEN 'S'.
        IF bseg-rebzg <> space.
*         Операция сторно документа кредиторской
          SELECT SINGLE hkont INTO (l_hkont)
          FROM bseg WHERE bukrs = bseg-bukrs AND
                          belnr = bseg-rebzg AND
                          gjahr = bseg-rebzj AND
                          buzei = bseg-rebzz.
          IF sy-subrc = 0. bseg-hkont = l_hkont. ENDIF.
        ELSE.
*         Похоже диалоговое кредитование кредитора, счет на экране
          PERFORM read_hkont_from_screen CHANGING l_hkont.
          IF l_hkont <> space. bseg-hkont = l_hkont. ENDIF.
        ENDIF.
    ENDCASE.
  ENDIF.
ENDFORM.                                                    "u777

*&---------------------------------------------------------------------*
*&      Form  read_hkont_from_screen
*&---------------------------------------------------------------------*
*     Программа чтения номера счета с экрана при диалоговой проводке
*----------------------------------------------------------------------*
* <--> P_HKONT - Номер счета из поля GF_HKONT или space, если ничего нет
*----------------------------------------------------------------------*
FORM read_hkont_from_screen CHANGING p_hkont.
  DATA: lt_dynpfields LIKE dynpread OCCURS 1 WITH HEADER LINE.

  CLEAR: p_hkont.
* Проводка из MIRO, счет замещения введен на экране
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = 'SAPLXM08'
      dynumb               = '0400'
      request              = 'A'
    TABLES
      dynpfields           = lt_dynpfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10
      OTHERS               = 11.
  IF sy-subrc = 0.
    READ TABLE lt_dynpfields WITH KEY fieldname = 'GF_HKONT'.
    IF sy-subrc = 0 AND lt_dynpfields-fieldvalue <> space.
      ext_to_int: lt_dynpfields-fieldvalue p_hkont.
    ENDIF.
  ENDIF.
ENDFORM. "read_hkont_from_screen
*&**********************************************************************
*& Конец замещения U777 - Контрольный счет кредитора для счетов ММ
*&**********************************************************************


* eject
*---------------------------------------------------------------------*
*       FORM U100                                                     *
*---------------------------------------------------------------------*
*       Reads the cost-center from the CSKS table .                   *
*---------------------------------------------------------------------*
FORM u100.

*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *
*        IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM:         *
*  SELECT * FROM CSKS
*            WHERE KOSTL EQ COBL-KOSTL
*              AND KOKRS EQ COBL-KOKRS.
*    IF CSKS-DATBI >= SY-DATUM AND
*       CSKS-DATAB <= SY-DATUM.
*
*      MOVE CSKS-ABTEI TO COBL-KOSTL.
*
*    ENDIF.
*  ENDSELECT.

ENDFORM.                                                    "U100

* eject
*---------------------------------------------------------------------*
*       FORM U101                                                     *
*---------------------------------------------------------------------*
*       Reads the cost-center from the CSKS table for accounting      *
*       area '0001'.                                                  *
*       This exit uses a parameter for the cost_center so it can      *
*       be used irrespective of the table used in the callup point.   *
*---------------------------------------------------------------------*
FORM u101 USING cost_center.

*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *
*        IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM:         *
*  SELECT * FROM CSKS
*            WHERE KOSTL EQ COST_CENTER
*              AND KOKRS EQ '0001'.
*    IF CSKS-DATBI >= SY-DATUM AND
*       CSKS-DATAB <= SY-DATUM.
*
*      MOVE CSKS-ABTEI TO COST_CENTER .
*
*    ENDIF.
*  ENDSELECT.

ENDFORM.                                                    "U101

* eject
*---------------------------------------------------------------------*
*       FORM U102                                                     *
*---------------------------------------------------------------------*
*       Inserts the sum of the posting into the reference field.      *
*       This exit can be used in FI for the complete document.        *
*       The complete data is passed in one parameter.                 *
*---------------------------------------------------------------------*


*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *
*        IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM:         *
*FORM u102 USING bool_data TYPE gb002_015.
*DATA: SUM(10) TYPE C.
*
*    LOOP AT BOOL_DATA-BSEG INTO BSEG
*                    WHERE    SHKZG = 'S'.
*       BSEG-ZUONR = 'Test'.
*       MODIFY BOOL_DATA-BSEG FROM BSEG.
*       ADD BSEG-DMBTR TO SUM.
*    ENDLOOP.
*
*    BKPF-XBLNR = TEXT-001.
*    REPLACE '&' WITH SUM INTO BKPF-XBLNR.
*
*ENDFORM.


***********************************************************************
** EXIT EXAMPLES FROM PUBLIC SECTOR INDUSTRY SOLUTION
**
** PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINE
** TO ENABLE PUBLIC SECTOR EXAMPLE SUBSTITUTION EXITS
***********************************************************************
*INCLUDE rggbs_ps_forms.

*eject
* begin of insertion                                          "wms092357
*&---------------------------------------------------------------------*
*&      Form  u200
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM u200 USING e_rmvct TYPE bseg-bewar.
  PERFORM xref_to_rmvct USING bkpf bseg 1 CHANGING e_rmvct.
ENDFORM.                                                    "u200

*&---------------------------------------------------------------------*
*&      Form  xref_to_rmvct
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM xref_to_rmvct
     USING    is_bkpf         TYPE bkpf
              is_bseg         TYPE bseg
              i_xref_field    TYPE i
     CHANGING c_rmvct         TYPE rmvct.

  DATA l_msgv TYPE symsgv.
  STATICS st_rmvct TYPE HASHED TABLE OF rmvct WITH UNIQUE DEFAULT KEY.

* either bseg-xref1 or bseg-xref2 must be used as source...
  IF i_xref_field <> 1 AND i_xref_field <> 2.
    MESSAGE x000(gk) WITH 'UNEXPECTED VALUE I_XREF_FIELD ='
      i_xref_field '(MUST BE = 1 OR = 2)' ''.
  ENDIF.
  IF st_rmvct IS INITIAL.
    SELECT trtyp FROM t856 INTO TABLE st_rmvct.
  ENDIF.
  IF i_xref_field = 1.
    c_rmvct = is_bseg-xref1.
  ELSE.
    c_rmvct = is_bseg-xref2.
  ENDIF.
  IF c_rmvct IS INITIAL.
    WRITE i_xref_field TO l_msgv LEFT-JUSTIFIED.
    CONCATENATE text-m00 l_msgv INTO l_msgv SEPARATED BY space.
*   cons. transaction type is not specified => send an error message...
    MESSAGE e123(g3) WITH l_msgv.
*   Bitte geben Sie im Feld &1 eine Konsolidierungsbewegungsart an
  ENDIF.
* c_rmvct <> initial...
  READ TABLE st_rmvct TRANSPORTING NO FIELDS FROM c_rmvct.
  CHECK NOT sy-subrc IS INITIAL.
* cons. transaction type does not exist => send error message...
  WRITE i_xref_field TO l_msgv LEFT-JUSTIFIED.
  CONCATENATE text-m00 l_msgv INTO l_msgv SEPARATED BY space.
  MESSAGE e124(g3) WITH c_rmvct l_msgv.
* KonsBewegungsart &1 ist ungültig (bitte Eingabe im Feld &2 korrigieren
ENDFORM.                    "xref_to_rmvct
* end of insertion                                            "wms092357

4. Затем идем в настройку замещения:
SPRO: Финансы - Бухгалтерия дебиторов и кредиторов - Бизнес-операции - Проводка по альтернативному контрольному счету - Прочие операции особой главной книги - Выполнение и проверка настройки для документа - Замещение в бухгалтерских документах,  ну или прямой вызов транзакции OBBH (так как для версий младше 6.0 путь кажется немного другой).
Там или уже есть запись для вашей балансовой единицы с моментом времени 2 или нет, тогда надо вставить запись по аналогии с рисунком OBBH.png (Имя замещения может быть любым, не обязательно BLOCK).
После этого или сразу попадаем, если мы вставили запись или по двойному клику мышью, если запись есть, в настройку замещения. Создаем для нашего замещения BLOCK (из примера) свой шаг (при этом если там уже есть какие-то шаги, то не трогаем их, не вы их туда ставили, не вам их трогать). Ну в общем после вставки своего шага, должна быть картинка как на рисунке STEP-1.png, т.е. если вид операции BKPF-AWTYP = 'RMRP' (проводка счета/документа логистики) вызвать нашу подпрограмму U177. Если голова есть, то как получить такую картинку думаю дойдет, если нет... считайте что это тест, который вы провалили и дальше можно не читать  ;) это не ваша тема...

5. Теперь переходим к добавлению своего поля на подэкран сета логистики. Делается это достаточно просто, используя расширение LMR1M001, которое добавляем с свой проект через транзакцию CMOD, рисунок LMR1M001.png. В этом расширении создаем подэкран 0400, пример на рисунке 0400.png, обратите внимание на позиции элементов и имя поля ввода альтернативного счета, ну если хотите получить рабочий пример путем copy+paste. Ниже тексты программ по реализации логики и объявления переменных.

Глобальные переменные для экзита:
Код: You are not allowed to view links. Register or Login
*----------------------------------------------------------------------*
***INCLUDE ZXM08TOP .
*----------------------------------------------------------------------*
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики). Общие данные
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения
*&**********************************************************************
data:  gf_hkont like bseg-hkont.  "Счет ГК

field-symbols: <fs_aktiv> type any.

Логика экрана 0400:
Код: You are not allowed to view links. Register or Login
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики) экран 0400
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка
*&**********************************************************************
process before output.
  module status_0400.

*
process after input.
  module user_command_0400.

*
process on value-request.
  field gf_hkont module help_hkont.

Текст модуля STATUS_0400:
Код: You are not allowed to view links. Register or Login
*----------------------------------------------------------------------*
***INCLUDE ZXM08O01_PBO .
*----------------------------------------------------------------------*
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики).
*&               PBO - логика экранов
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения
*&**********************************************************************
*&---------------------------------------------------------------------*
*&      Module  STATUS_0400  OUTPUT
*&---------------------------------------------------------------------*
*       Обработка для экрана 0400
*----------------------------------------------------------------------*
module status_0400 output.
  assign ('(SAPLMR1M)AKT_TYP') to <fs_aktiv>.
  check sy-subrc = 0.

  loop at screen.
    case <fs_aktiv>.
*     Режим просмотра документа, поле не доступно для редактирвоания
      when 'A'.
        if screen-name = 'GF_HKONT'.
          screen-input = 0.
          modify screen.
        endif.
    endcase.
  endloop.
  unassign <fs_aktiv>.
endmodule.                 " STATUS_0400  OUTPUT

Текст модуля user_command_0400 (ну тут пусто, так что так задел на будущее):
Код: You are not allowed to view links. Register or Login
*----------------------------------------------------------------------*
***INCLUDE ZXM08I01_PAI .
*----------------------------------------------------------------------*
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики).
*&               PAI - логика экранов
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения
*&**********************************************************************
*&---------------------------------------------------------------------*
*&      Module  user_command_0400  INPUT
*&---------------------------------------------------------------------*
*       Обработка для экрана 0400
*----------------------------------------------------------------------*
module user_command_0400 input.

endmodule.                 " user_command_0400  INPUT

Текст модуля help_hkont (Справка по значению ввода), в принципе тут сделано по простому, для выбора предлагаются только контрольные счета кредиторов. Но если у вас есть своя логика обработки, то можете вставить ее сюда и предлагать счета кредитров по своим правилам:
Код: You are not allowed to view links. Register or Login
*----------------------------------------------------------------------*
***INCLUDE ZXM08I01_HVR .
*----------------------------------------------------------------------*
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики).
*&               Вызовы справки к собственным полям экрана
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения
*&**********************************************************************
*&---------------------------------------------------------------------*
*&      Module  help_hkont  INPUT
*&---------------------------------------------------------------------*
*   Справка по выбору контрольного счета кредитора для экрана 0400
*----------------------------------------------------------------------*
module help_hkont input.
  data: l_bukrs like bkpf-bukrs,
        l_fieldname(30) type c value '(SAPLMR1M)RBKPV-BUKRS'.
  field-symbols: <fs>.

  assign: (l_fieldname) to <fs>.
  l_bukrs = <fs>.

  call function 'FI_F4_AKONT'
    exporting
      i_bukrs        = l_bukrs
      i_mitkz        = 'K'
      i_akont        = gf_hkont
    importing
      e_akont        = gf_hkont
    exceptions
      invalid_call   = 1
      nothing_found  = 2
      internal_error = 3
      others         = 4.
  if sy-subrc <> 0.
  endif.
  unassign <fs>.
endmodule.                 " help_hkont  INPUT

Ну и текст самого экзита LFDCB001, ФМ:EXIT_SAPLFDCB_001, Include: ZXM08U31
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&  Include           ZXM08U31
*&---------------------------------------------------------------------*
*&**********************************************************************
*& Comments    : Замещение контрольного счета кредитора при проводке
*&               счетов из ММ (Счет логистики). Общие данные
*& Platform    : SAP R/3 ver ECC 6.00
*& Autor       : Uukrul
*& Date create : 28.09.2007
*& Date change : 28.09.2007
*&**********************************************************************
*& Date change : 28.09.2007 - Общая разработка программы замещения
*&**********************************************************************
data: lt_documents like acc_doc occurs 1 with header line.
data: l_belnr like bkpf-belnr,
      l_awref type acchd-awref,
      l_aworg type acchd-aworg,
      l_hkont like bseg-hkont,
      l_akont like lfb1-akont.

* Режим обработки документа
assign ('(SAPLMR1M)AKT_TYP') to <fs_aktiv>.
check sy-subrc = 0.

case <fs_aktiv>.
* Просмотр документа
  when 'A'.
    move: i_invfo-belnr to l_awref,
          i_invfo-gjahr to l_aworg.
    refresh: lt_documents.
    call function 'AC_DOCUMENT_RECORD'
      exporting
        i_awtyp      = 'RMRP'
        i_awref      = l_awref
        i_aworg      = l_aworg
        i_awtyp_incl = 'BKPF'
        i_bukrs      = i_invfo-bukrs
        x_dialog     = space
      tables
        t_documents  = lt_documents
      exceptions
        no_reference = 1
        no_document  = 2
        others       = 3.
    read table lt_documents with key bukrs = i_invfo-bukrs.
    if sy-subrc = 0.
      l_belnr = lt_documents-docnr.
      select single hkont into l_hkont
      from bseg where bukrs = lt_documents-bukrs and
                      belnr = l_belnr and
                      gjahr = lt_documents-ac_gjahr and
                      koart = i_invfo-koart.
*     Если документ не найден, значит была предварительная регистрация
      if sy-subrc <> 0.
        select single hkont into l_hkont
        from vbsegk where ausbk = i_invfo-bukrs and
                          belnr = l_belnr and
                          gjahr = i_invfo-gjahr and
                          lifnr = i_invfo-lifnr.
      endif.
*     Счет кредитора из основной записи кредиторов
      select single akont into (l_akont)
      from lfb1 where lifnr = i_invfo-lifnr and
                      bukrs = i_invfo-bukrs.
*     Если счета не совпадают, то было замещение
      if l_akont <> l_hkont. gf_hkont = l_hkont. endif.
    endif.
endcase.

unassign <fs_aktiv>.

В общем система простая, если счет замещения пустой, тогда работа по счету из основной записи кредитора, если заполнено, тогда работа по новому контролному счету. Операции сторно, авизо и допдебетование/кредитование вроде как ловятся в замещении корректно.

Если кто обнаружил грабли, пишите будем править, согласно открывшимся обстоятельствам.
« Последнее редактирование: Сентябрь 28, 2007, 05:09:32 pm от Uukrul »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #1 : Октябрь 19, 2007, 06:30:57 pm »
Мда, не прошло и полгода... как пришлось воспользоваться, в общем на 4.6C тоже работает! Едиственное что экран для ввода замещения находится как в расширении LFDCB001 так и в LMR1M001, но экран один и тот же, так что  вроде как все равно какое из расширений использовать для определения 400 экрана.
« Последнее редактирование: Октябрь 19, 2007, 06:35:43 pm от Uukrul »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #2 : Ноябрь 15, 2007, 08:15:15 pm »
Обнаружилась одна проблема, выражающаяся в следующем, если после ввода счета замещения уйти с закладки "Подробно", где выполняется ввод счета, то замещение не отрабатывает. В общем нужно слегка откорректировать подпрограмму READ_HKONT_FROM_SCREEN в программе замещения YXXX_RGGBS000.
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*&      Form  read_hkont_from_screen
*&---------------------------------------------------------------------*
*   Программа получения номера счета с экрана если проводка в диалоге
*----------------------------------------------------------------------*
* <--> P_HKONT - номер счета из поля GF_HKONT или space, если ничего нет
*----------------------------------------------------------------------*
FORM read_hkont_from_screen CHANGING p_hkont.
  FIELD-SYMBOLS: <fs_hkont> TYPE ANY.
  DATA: lt_dynpfields LIKE dynpread OCCURS 1 WITH HEADER LINE.

  CLEAR: p_hkont.
* Проводка из MIRO. счет замещения введен на экране
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            dyname               = 'SAPLXM08'
            dynumb               = '0400'
            request              = 'A'
       TABLES
            dynpfields           = lt_dynpfields
       EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            invalid_parameter    = 7
            undefind_error       = 8
            double_conversion    = 9
            stepl_not_found      = 10
            OTHERS               = 11.
  IF sy-subrc = 0.
    READ TABLE lt_dynpfields WITH KEY fieldname = 'GF_HKONT'.
    IF sy-subrc = 0 AND lt_dynpfields-fieldvalue <> space.
      ext_to_int: lt_dynpfields-fieldvalue p_hkont.
    ENDIF.
  ELSE.
*   Возможно была смена экрана, но данные уже были введены
    ASSIGN ('(SAPLXM08)GF_HKONT') TO <fs_hkont>.
    IF sy-subrc = 0.
      ext_to_int: <fs_hkont> p_hkont.
    ENDIF.
    UNASSIGN <fs_hkont>.
  ENDIF.
ENDFORM. "read_hkont_from_screen

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

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #3 : Апрель 10, 2008, 07:46:01 pm »
В общем для тех кто не справился с домашним заданием как прописать замещение в транзакции OBBH, справочка в вордовском документике  ;)

ilu

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #4 : Май 20, 2008, 08:57:28 am »
Коллеги а это в ERP 6.0 работает - там же поменялся механизм обновления итоговых регистров ГК

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #5 : Май 20, 2008, 09:24:24 am »
You are not allowed to view links. Register or Login
Коллеги а это в ERP 6.0 работает - там же поменялся механизм обновления итоговых регистров ГК
Вообще-то это проверялось на 6.0, но без активации новой главной книги... как будет работать если новая ГК активна пока не знаю, так как не попадалась еще такая системка. А так, если у кого есть возможность это проверить, было бы неплохо.

ilu

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #6 : Май 20, 2008, 09:34:53 am »
Sorry Прочитал сначала, что сделано для ECC 6.0. Кстати а не поскажете как вы разбираетесь с платежами кредиторам у которых заменен контрольный счет ? делаете с транзитного общего или тоже замещаете ?  

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #7 : Май 20, 2008, 09:37:39 am »
You are not allowed to view links. Register or Login
Sorry Прочитал сначала, что сделано для ECC 6.0. Кстати а не поскажете как вы разбираетесь с платежами кредиторам у которых заменен контрольный счет ? делаете с транзитного общего или тоже замещаете ? 
Вот это если честно, не подскажу, так как это уже область FI, мое дело было кредиторскую выставить и если что, то отсторнировать ее красиво назад, а что дальше финансы с ней делают не интересовался.

ilu

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #8 : Май 28, 2008, 10:37:46 am »
Сделал все как по написанному :) Смутило то что некоторые инклдуды называются по другому,но проблема не в этом. При активации экрана получаю ошибку

*
process on value-request.
  field gf_hkont module help_hkont.
 
- переменнная gf_hkot не определена. Определение этой переменной в ZXM08TOP как написанно сделал и его активировал. Если нажимаю создать переменную - она создается действительно в этом инклуде, но потом при активации экрана все равно получаю тк же ошибку. Не подскажете что делать ?

ilu

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #9 : Май 28, 2008, 03:05:54 pm »
Все сделал по инструкции, но я не вижу этого подкрана на закладке Подробно :( Что может быть не так ?

ilu

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #10 : Май 29, 2008, 05:58:16 pm »
Разобрались. Использовали другой экзит. Спасибо за решение

Оффлайн Hugs

  • Newbie
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #11 : Сентябрь 23, 2008, 07:15:56 am »
Uukrul, большое спасибо за решение! Настроил, всё получилось

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #12 : Сентябрь 23, 2008, 09:24:34 am »
You are not allowed to view links. Register or Login
Uukrul, большое спасибо за решение! Настроил, всё получилось
Да нема за що  ;D заходите еще...

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #13 : Ноябрь 05, 2008, 05:09:34 pm »
You are not allowed to view links. Register or Login
Едиственное что экран для ввода замещения находится как в расширении LFDCB001 так и в LMR1M001, но экран один и тот же, так что  вроде как все равно какое из расширений использовать для определения 400 экрана.
Так сказать еще раз не прошло и полгода, как оказалось, что на некторых системах, чтобы поле ввода счета с экрана "0400" таки появилось на экране ввода счета логистики, надо включить в проект оба расширения как LMR1M001 так и LFDCB001. Уж не знаю почему, но при ключении только LMR1M001 на одной из систем ECC 6.0, подэкран ну никак не появлялся, пока не включил и второе расширение LFDCB001, короче фиг их поймешь этих индусов.

Константин

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #14 : Декабрь 08, 2008, 03:23:08 pm »
Добрый день!
  А где можно увидеть рисунки, на которые есть ссылки в тексте поста, например GB01.png?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #15 : Декабрь 08, 2008, 03:28:48 pm »
You are not allowed to view links. Register or Login
Добрый день!
  А где можно увидеть рисунки, на которые есть ссылки в тексте поста, например GB01.png?
Так тут же сразу и видно рисунки... внизу под тестом сообщения... сейчас проверил лежат... может у вас запрещено администраторами прокси-сервера загрузка рисунков, вот оно их и рубит? Потому как вроде никто другой не обращался еще, что рисунков нет.

Кстати, а что у вас говорит когда вы на эту GB01.png мышью нажимаете?

Константин

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #16 : Декабрь 08, 2008, 04:11:02 pm »
В том то и проблема, что внизу текста сообщения вообе не видно никаких ссылок на файлы с рисунками :(
Ну да ладно, в целом и без них все понятно..

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #17 : Декабрь 08, 2008, 04:19:39 pm »
You are not allowed to view links. Register or Login
В том то и проблема, что внизу текста сообщения вообе не видно никаких ссылок на файлы с рисунками :(
Ну да ладно, в целом и без них все понятно..
Ну значит у вас к сожалению отключена возможность просмотра файлов PNG, JPG и т.д... тут или через другого провайдера надо смотреть, ну если кому в целом не понятно будет или к админам интернета... ???

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #18 : Декабрь 17, 2008, 03:20:39 pm »
You are not allowed to view links. Register or Login
А где можно увидеть рисунки, на которые есть ссылки в тексте поста, например GB01.png?
Однако если кто не видит картинок, однако не знаю почему, но картинку показываются только зарегистрированным пользователям ???, то ли это фишка такая у форума, то ли это мы чего не докрутили, но как говорится мы саповоды а не веб-разработчики и перлов всяких не очень знаем.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #19 : Декабрь 27, 2008, 02:06:59 am »
И еще один довесок к замещениям контрольного счета в частности и вообще как замещениям в целом. В общем когда мы добавляем замещение, а уж тем  более, когда мы сами добавили в таблицу замещаемое поле, в нашем случае HKONT, следует выполнить программу RGUGBR00 - Генерация ABAP-кодировки для проверок/замещений/правил, я глубоко не в давался во всякие подробности, должна ли программа вызваться главное автоматически после импорта запроса с замещениями или ее все таки надо генерировать в ручном режиме, но ее лучше явно вызвать для нашей области, после переноса всех настроек. Если это не сделать, то замещение отказывается работать (Кстати, не всегда, так как возможно, что кто-то другой за вас запустил эту программу и для вас получилось типа как все само собой рабочее). Для данного замещения пример вызова программы на рисунке ниже. В общем виде генерируется набор программ в пуле модулей GBTLEFI0, которые создаются по настроечным таблицам данных замещений. В каждой из программ будет в заголовке стоять что-то типа:
Код: You are not allowed to view links. Register or Login
*---------------------------------------------------------------------*
*       Згенеров.пул модулів для виведення заміщення                  *
*       Згенеровано звітом RGUGBR00                                   *
*       Згенерований код, використаний перевірками                    *
*       Заміщення та правила                                          *
*        !! Не змінювати або не переносити вручну !!                  *
*       При проблемах з повідомленнями та пошуком для нотаток         *
*       використовуйте тематичну область                              *
*       ---->   FI-SL VSR     <------                                 *
*---------------------------------------------------------------------*

*---------------------------------------------------------------------*
*       Дата генер.:        27.12.08  01:45:55  XXXXXXXX              *
*---------------------------------------------------------------------*

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Замена контрольного счета кредитора в MIRO
« Ответ #20 : Январь 13, 2009, 10:25:23 pm »
ссори, это надо делать в продуктиве ? Перегенерацию ?
А то столкнулся с проблемами переноса формул VOFMa
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #21 : Январь 13, 2009, 10:29:44 pm »
You are not allowed to view links. Register or Login
ссори, это надо делать в продуктиве ? Перегенерацию ?
А то столкнулся с проблемами переноса формул VOFMa
Ну теоретически я так понял оно при транспорте должно вызваться, но у меня как-то не вызвалось и у некоторых других людей тоже похоже не вызвалось, так что в продуктиве ручками запускать надо, так ничего особо криминального нет!

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #22 : Январь 13, 2009, 10:41:27 pm »
Ааа, жесть, каменты на мове, я плакалЪ. Надо будет также сделать))).
Удалите... ;D ;D ;D

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #23 : Январь 13, 2009, 10:44:33 pm »
You are not allowed to view links. Register or Login
Ааа, жесть, каменты на мове, я плакалЪ. Надо будет также сделать))).
Удалите... ;D ;D ;D
Забей, да и удалять не буду... я как захожу на украинском, так по надцать минут иногда пытаюсь понять чтобы это значило... часто не помогает и приходится грузиться на русском, потому как переводчики местами ну очень постарались внести ясность  ::) хотя конечно оно дело привычки.

PS: Кстати, тут очень даже прилично написано и без извратов...  ;)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Замена контрольного счета кредитора в MIRO
« Ответ #24 : Январь 13, 2009, 10:55:47 pm »
ну прикольно конечно, когда заходиш на Украинском, но напрягает, даже если перевод нормальный

А чего не поставиш язык входа по умолчанию Русский ? (su01  :) )
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #25 : Январь 13, 2009, 10:58:40 pm »
You are not allowed to view links. Register or Login
А чего не поставиш язык входа по умолчанию Русский ? (su01  :) )
Ну в разные системы так сказать хожу... и SU01 не всегда дадено  :D, не мы конечно могем при абапе то... но оно нам просто не надо.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #26 : Февраль 12, 2009, 10:37:10 am »
В свое время реализовал подобную задачу без создания доп. экрана в MIRO. В п/п замещения в FI динамическим ASSIGN считываем данные с-ф ММ из управляющей программы SAPLMR1M. Затем формируем список контрольных счетов (постановщик предложил некий алгоритм) и вызываем его запуском ФМ 'F4IF_INT_TABLE_VALUE_REQUEST' (получается некий аналог доп. экрана). Зацикливаем вызов ф-ции до момента получения выходного значения счета bseg-hkont.

P.S. Предпосылки для замещения - виды FI документов (с-ф MM-)>FI), и еще, по-моему, в коде замещения была сделана проверка на bseg-koart = 'K' (кода под рукой нет).

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #27 : Февраль 27, 2009, 12:18:09 pm »
По поводу вообще замещений FI, можно почитать тут: You are not allowed to view links. Register or Login

porter

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #28 : Сентябрь 01, 2010, 10:01:02 am »
Добрый день.
Сделал замещение для замены контрольного счета в MIRO, вроде все как написано по ссылке. Замещение отказывается работать и все тут (активация и генерация в т.ч. с пом. RGUGBR00 эффекта не дают). Ни при проводке, ни при моделировании в него попасть не могу. Посмотрел использование своего замещения - выскакивает сообщение о том что оно нигде не используется. У кого замещения работают нормально журнал использования тоже выдает что нигде не используется?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #29 : Сентябрь 01, 2010, 10:45:46 am »
А поставить в коде оператор BREAK-POINT?

porter

  • Гость
Re: Замена контрольного счета кредитора в MIRO
« Ответ #30 : Сентябрь 01, 2010, 11:03:50 am »
Конечно поставил. Аж 3: break-point, break на себя и еще динамический в SE80. Никакой реакции. Вываливается конечно в отладчик когда я моделирование в OBBH запускаю. Такое впечатление как-будто из-за того что нигде не используется. Может его использование нужно где-ниб. еще прописывать? У меня версия ECC 6.0 EHP4.

Оффлайн porter

  • Newbie
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #31 : Сентябрь 01, 2010, 11:15:15 am »
Да, еще дополню.
В OPENFI при моделировании и при сохранеии проводки в MIRO падает в точку прерывания в отладчик - значит OPENFI используется. Но там как ни меняй HKONT, все равно после отработки данные переписываются на "старые" (что были до вызова OPENFI) (в GB01 по инструкции пробел выставвил). Замещение, я так понял, как раз эту проблему и устраняет.

Оффлайн porter

  • Newbie
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #32 : Сентябрь 01, 2010, 12:41:01 pm »
Еще одна версия в продолжение проблемы.
В ответе №19 был упомянут пул модулей GBTLEFI0, к-рый должен был сгенериться по запуску программы RGUGBR00. Посмотрел в системе - его нет. Может из-за этого замещение не работает? Люди у кого работает, гляньте, пожалуйста, есть этот пул в наличии?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #33 : Сентябрь 01, 2010, 08:21:19 pm »
Код: You are not allowed to view links. Register or Login
*---------------------------------------------------------------------*
*                                                                     *
*       Generated by report RGUGBR01                                  *
*       Generated code used by validations                            *
*       Substitutions and rules                                       *
*        !! Do not manually change or transport !!                    *
*       For problems with messages and search for notes               *
*       use the subject area                                          *
*       ---->   FI-SL VSR     <------                                 *
*---------------------------------------------------------------------*

*---------------------------------------------------------------------*
*       Generated on:       01.05.02  10:10:00  DDIC                  *
*---------------------------------------------------------------------*

include gbtlefiz.                      " Data

include fgbb100r.                      " General routines

*---------------------------------------------------------------------*
*       Do not change         Do NOT modify comment                   *
*       END OF MAIN HEADER                                            *
*---------------------------------------------------------------------*

include gbtlefia.                      " Rules
include gbtlefib.                      " Substitutions
include gbtlefic.                      " Substitution prequisites
include gbtlefid.                      " Validations
include gbtlefie.                      " Validation prerequisites
include gbtlefif.                      " Validation checks
include gbtlefii.                      " Application rules
include gbtlefij.                      " Subst. export routines
include gbtlefis.                      " Subst. import routines

*---------------------------------------------------------------------*
Ну таки у меня вот есть... код приблизительно такой вот...

Оффлайн porter

  • Newbie
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #34 : Сентябрь 02, 2010, 06:29:35 am »
Все, решилось!
Попал в подпрограмму замещения, изменив правило в предпосылке на вид документа RE. Текст подпрограммы не менял (использовал копи-паст), отрабатывает четко! Огромная благодарность Uukrul за доступно изложенный материал!!!
Пул модулей так и не сгенерился у меня))

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #35 : Сентябрь 02, 2010, 08:30:14 am »
You are not allowed to view links. Register or Login
Попал в подпрограмму замещения, изменив правило в предпосылке на вид документа RE.
Ну у меня была мысль что предпосылка не срабатывает, но потом подумал что вряд ли... в этом проблема.

Оффлайн Ifan

  • Newbie
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #36 : Май 30, 2011, 03:52:03 pm »
"FORM u777.
  DATA: l_hkont LIKE bseg-hkont.

* Обработка только позиции контрольного счета кредитора
  IF bseg-koart = 'K'.
    CASE bseg-shkzg.
      WHEN 'H'.
          ....
      WHEN 'S'.
          ...
"
Добрый день.

Код после WHEN 'H' и WHEN 'S' одинаковый. Какой скрытый смысл в его разделении?



Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #37 : Май 30, 2011, 06:24:03 pm »
You are not allowed to view links. Register or Login
Код после WHEN 'H' и WHEN 'S' одинаковый. Какой скрытый смысл в его разделении?
Ну изначально хотелка была, что при дебете и кредите будет чуть разная логика, потом от нее отказались, ну а разделение я просто не убрал. Так что глубокого смысла там конечно нет.

Оффлайн Ifan

  • Newbie
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #38 : Май 31, 2011, 08:13:49 am »
Понятно :-)
Спасибо за решение. Помогло.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #39 : Июль 20, 2012, 07:47:01 pm »
Ну что SAP думал, думал и сказал что решение для замещения контрольного счета кредитора будет входить в стандартный пакет начиная с EHP5. Эх только бы как обычно не через одно место сделали бы...

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
В общем счастливым обладателям EHP 6 посвящается:
You are not allowed to view links. Register or Login
Ну что SAP думал, думал и сказал что решение для замещения контрольного счета кредитора будет входить в стандартный пакет начиная с EHP5. Эх только бы как обычно не через одно место сделали бы...
В общем решение вошло не в 5 а в 6 пакет расширения. Так что у кого есть 6 пакет можете проверить как оно работает. У меня пока под руками только Ehp 5.



11.6.2 MM-IV-LIV Logistics Invoice Verification
11.6.2.1 FIN_LOC_CI_14: Posting to Alternative G/L Accounts (Enhanced)


Use
EffectsAs of SAP enhancement package 6 for SAP ERP 6.0 (SAP_APPL 606), business function FI, LO, Localization Topics for Russia 2 (FIN_LOC_CI_14), you can use alternative reconciliation accounts when you enter or park invoices in Logistics Invoice Verification (MM-IV-LIV). You can use this enhanced function in the following transactions:

- Enter Invoice (MIRO)
- Park Invoice (MIR7)
- Enter Invoices for Invoice Verification in the Background (MIRA)
- Display Invoice Document (MIR4)

These transactions are available on the SAP Easy Access screen under Logistics -> Materials Management -> Logistics Invoice Verification. on Existing Data On the Details tab page of the screens for the four previously-mentioned MM-IV-LIV transactions, the G/L field has been updated as follows:

-  The field is open for manual input, which allows you to enter alternative reconciliation accounts as required.
-  The input help of the field contains only those accounts for which posting to alternative reconciliation accounts is enabled. To ensure that this function works, you have to make the reconciliation account ready for input when you maintain the G/L account master data. To do so, on the SAP Easy Access screen, choose Accounting -> Financial Accounting -> General Ledger -> Master Records -> G/L Accounts -> Individual Processing -> Centrally, and on the Create/bank/interest tab page, select the Recon. acct ready for input checkbox.

Effects on Customizing

You make the Customizing settings for this function in Customizing for Materials Management (MM), under Logistics Invoice Verification -> Incoming Invoice -> Activate Direct Posting to Alternative G/L Accounts.

In addition, using the standard Customizing activity, you have to define alternative reconciliation accounts in Customizing for Financial Accounting (New), under Accounts Receivable and Accounts Payable -> Business Transactions -> Postings with Alternative Reconciliation Account -> Define Alternative Reconciliation Accounts.

See also

SAP Library for SAP ERP under SAP ERP Central Component -> Logistics -> Materials Management -> Logistics Invoice Verification (MM-IV) -> Logistics Invoice Verification (MM-IV-LIV)


Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #41 : Июль 07, 2014, 12:30:47 am »
И так, появился пакет расширений 6 и время чтобы написать как это строить. Как обычно не все так просто, есть кое какие тонкости, о который особо в справке никто не заморачивается. И так описание настройки замещения контрольных счетов кредиторов: You are not allowed to view links. Register or Login

PS: Ну а тема с замещениями тоже сама по себе актуальности не теряем наверное.

Оффлайн NN

  • Newbie
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Замена контрольного счета кредитора в MIRO
« Ответ #42 : Январь 20, 2015, 07:26:31 pm »
Огромное спасибо за размещенный материал. Замещение работает уже несколько лет.
Но все же нашелся "талантливый" пользователь, который случайно в поле "Альтернативный счет" поставил не кредиторский, а дебиторский счет и документ сохранился. Возможно, проверка счета не помешает в данной разработке.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #43 : Январь 21, 2015, 11:05:15 am »
You are not allowed to view links. Register or Login
Но все же нашелся "талантливый" пользователь, который случайно в поле "Альтернативный счет" поставил не
Ну это же ABAP, там можно все навесить. Единственное что с EHP6 это уже можно сделать стандартом, что и рекомендуется собственно говоря делать.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Замена контрольного счета кредитора в MIRO
« Ответ #44 : Декабрь 15, 2015, 02:24:34 am »
Собственно описание настройки: You are not allowed to view links. Register or Login, а то чего-то некоторые не находят из этой темы и все абапят.

Sapforum.Biz

Re: Замена контрольного счета кредитора в MIRO
« Ответ #44 : Декабрь 15, 2015, 02:24:34 am »