Текущее время: Вс, июл 27 2025, 23:59

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Расширение ОЗМ на виды оценок через BAPI
СообщениеДобавлено: Чт, июн 30 2005, 14:17 
Гость
Необходимо добавить в ракурс Бухучёт данные по видам оценки. Необходимо сделать это через BAPI_MATERIAL_SAVEDATA. Делаем следующее:
1) Создаём материал и расширяем его на нужном нам заводе, добавляем данные по бухучёту без вида оценки (также, как и руками если создаём). Тип оценки проставляем такой, который позволяет расширять на виды оценок.
2) Пытаемся расширять на вид оценки. Заполняем данные в HEADDATA, CLIENTDATA и VALUATIONDATA (и ...Х конечно). Запускаем БАПИ, она работает, но в итоге расширение не проходит. Пишет что требуемых данных о материале на заводе нет. Под отладчиком нашёл это сообщение, выяснилось, что не подтягивается или не генерируется статус записи в MBEW, поле MBEW-PSTAT. Оно должно содержать значение "В", а остаётся пустым. Когда смотришь, как просто на заводе создаётся бухучёт, то там на втором шаге это значение проставляется автоматом, а тут никак. В чём дело понять не могу.
Короче вопрос, если кто уже подобным гемором занимался, и у него на виды оценки бухучёт расширяется, то подскажите как?
А то уже месяц бъюсь!


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 16:19 
Гость
Мы через LSMW расширяли. Попробуй, должно получиться


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 30 2005, 17:23 
Гость
Anonymous написал(а):
Мы через LSMW расширяли. Попробуй, должно получиться


А как ею пользоваться? Да и какое оно имеет отношение к BAPI_MATERIAL_SAVEDATA?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 05 2005, 09:32 
Гость
возможно headdata не правильно заполняете. (в том числе и при создании). все прекрасно работало, если мне память ни с кем не изменяет


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 21 2005, 08:19 
Гость
holocrоn написал(а):
возможно headdata не правильно заполняете. (в том числе и при создании). все прекрасно работало, если мне память ни с кем не изменяет


А можно пример выложить, где виды оценок создаются через БАПИ? Или мне на почту. Я вроде всё правильно делаю. Headdata заполняю всеми галочками, ракурсы которых ранее создавались, иначе ракурсы пропадают, ранее созданные. Кстати, это тоже глюк. Нафига ракурсы то пропадают?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 21 2005, 09:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Коллеги! В свое время я отказался от BAPI в пользу MATERIAL_MAINTAIN_DARK, потому что BAPI по-моему как раз и не могла расширить материал. Вот пример добавления вида оценки (работает уже пару лет):

Code:
FORM add_bwtar TABLES return STRUCTURE bapiret2
               USING value(p_matnr)
                     value(p_bwtar)
                     value(p_bklas).

  REFRESH: tmara_ueb,    tmakt_ueb,    tmarm_ueb,    tmean_ueb,
           tmarc_ueb,    tmard_ueb,    tmpop_ueb,    tmpgd_ueb,
           tsteu_ueb,    tstmm_ueb,    tmbew_ueb,    tmvke_ueb,
           tmlgn_ueb,    tmlgt_ueb,    tmfhm_ueb,    tmltx_ueb,
           tmfieldres,   tmerrdat,     h_tmerrdat.

  g_material_ctx-bklas = p_bklas.
  g_material_ctx-bwtar = p_bwtar.

  CLEAR tmara_ueb.

  tmara_ueb-tranc = 1.
  tmara_ueb-mandt = sy-mandt.
  tmara_ueb-matnr = p_matnr.
  tmara_ueb-tcode = 'MM01'.

  APPEND tmara_ueb.

  CLEAR tmbew_ueb.

  tmbew_ueb-tranc = tmara_ueb-tranc.
  tmbew_ueb-mandt = sy-mandt.
  tmbew_ueb-matnr = p_matnr.

  tmbew_ueb-bwkey = '1000'.
  tmbew_ueb-bwtar = p_bwtar.
  tmbew_ueb-bklas = p_bklas.
  tmbew_ueb-verpr = 1.
  tmbew_ueb-peinh = 1.

  APPEND tmbew_ueb.

  PERFORM call_material_maintain_dark
    TABLES return
    CHANGING p_matnr.
ENDFORM.

FORM call_material_maintain_dark TABLES p_return STRUCTURE bapiret2
                                 CHANGING p_matnr.

* Создание материала и партий к нему
* через стандартный ФМ
  SET UPDATE TASK LOCAL.

  CALL FUNCTION 'MATERIAL_MAINTAIN_DARK'
       EXPORTING
            flag_muss_pruefen = 'X'
            sperrmodus        = 'E'
            max_errors        = 0
            p_kz_no_warn      = 'X'
            kz_prf            = 'E'
            kz_verw           = 'X'
            kz_aend           = space
            kz_dispo          = space
            call_mode         = 'RMD'
            user              = sy-uname
            flg_mass          = space
       IMPORTING
            matnr_last        = p_matnr
       TABLES
            amara_ueb         = tmara_ueb
            amakt_ueb         = tmakt_ueb
            amarc_ueb         = tmarc_ueb
            amard_ueb         = tmard_ueb
            amfhm_ueb         = tmfhm_ueb
            amarm_ueb         = tmarm_ueb
            amea1_ueb         = tmean_ueb
            ambew_ueb         = tmbew_ueb
            asteu_ueb         = tsteu_ueb
            astmm_ueb         = tstmm_ueb
            amlgn_ueb         = tmlgn_ueb
            amlgt_ueb         = tmlgt_ueb
            ampgd_ueb         = tmpgd_ueb
            ampop_ueb         = tmpop_ueb
            amvke_ueb         = tmvke_ueb
            altx1_ueb         = tmltx_ueb
            amfieldres        = tmfieldres
            amerrdat          = tmerrdat
       EXCEPTIONS
            kstatus_empty     = 1
            tkstatus_empty    = 2
            t130m_error       = 3
            internal_error    = 4
            too_many_errors   = 5
            update_error      = 6
            error_message     = 8
            OTHERS            = 7.

  IF sy-subrc = 0.
    COMMIT WORK.
  else.
*   PBEREZIN - контроль ошибок внутри ФМ
    MESSAGE ID sy-msgid
            TYPE sy-msgty
            NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2
                 sy-msgv3 sy-msgv4
            INTO g_msg.

    PERFORM msg_to_bapiret TABLES p_return.
    CALL METHOD g_log->add_message.
  ENDIF.

  IF g_material_ctx-matnr IS INITIAL.
    g_material_ctx-matnr = p_matnr.
  ENDIF.

  CHECK NOT g_log IS INITIAL.

  LOOP AT tmerrdat.

    IF tmerrdat-msgty NA 'SIWEAX'.
      tmerrdat-msgty = 'S'.
    ENDIF.

    MESSAGE ID tmerrdat-msgid
            TYPE tmerrdat-msgty
            NUMBER tmerrdat-msgno
            WITH tmerrdat-msgv1 tmerrdat-msgv2
                 tmerrdat-msgv3 tmerrdat-msgv4
            INTO g_msg.

    PERFORM msg_to_bapiret TABLES p_return.
    CALL METHOD g_log->add_message.
  ENDLOOP.

ENDFORM.                    " call_material_maintain_dark

Кстати, MATERIAL_MAINTAIN_DARK хорошо документирована.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 21 2005, 17:31 
Гость
Сергей Королев написал:
Коллеги! В свое время я отказался от BAPI в пользу MATERIAL_MAINTAIN_DARK, потому что BAPI по-моему как раз и не могла расширить материал. Вот пример добавления вида оценки (работает уже пару лет):


А ещё такой вопрос. У вас я так понимаю материал вместе с партией создаётся с нуля? Т.е. не так, что сначала создаётся материал, потом расширяется на заводе, а потом уже к нему расширяется на вид оценки?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 22 2005, 09:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Сначала материал создавался или изменялся, потом расширялся. Беда в том, что MATERIAL_MAINTAIN_DARK (и BAPI, которая на самом деле вызывается DARK) не может расширить материала сразу больше чем на один завод (или вид оценки) за одну транзакцию.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 22 2005, 11:42 
Гость
Сергей Королев написал:
Сначала материал создавался или изменялся, потом расширялся. Беда в том, что MATERIAL_MAINTAIN_DARK (и BAPI, которая на самом деле вызывается DARK) не может расширить материала сразу больше чем на один завод (или вид оценки) за одну транзакцию.


У меня ваша программа не заработала почему-то. Опять та же проблема со статусами. Там в грубине MATERIAL_MAINTAIN_DARK определяется ACTVSTATUS, так вот, если материал уже расширен на заводе без партии, а потом дорасширяем на партию (вид оценки), то почему-то статус становиться пустым, и по проверке снимается с ошибкой, что с данным статусом ведение невозможно. Не понимаю я в чём тут глюк. Решил сделать модификацию одной формы в MATERIAL_UPDATE_ALL, а потом уже в САП напишу, пусть пояснения вышлют, что не так.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 22 2005, 11:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Прежде чем решаться на модификацию, вы бы проконсультировались с хорошим ММ-щиком, может быть этого нельзя делать - на одном заводе партионный, на другом - без партий. Поломаете, потом не нахлебаетесь разборок с материалистами и бухгалтерами. Это ведь может не сразу сказаться, и только через некоторое время кто-нибудь заметит кривые документы. Может быть очень "весело".

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 22 2005, 12:26 
Гость
Согласен. Но гдеж его взять то, такого толкового ММ-щика, который разбирается в тонкостях работы BAPI_MATERIAL_SAVEDATA или майнтайн_дарк?!
Да и модификации можно делать по-разному, я буду писать кучу условий, при которых данная модификация будет работать. Мне просто в переменную надо значение статуса проставить, я под отладчиком проставлял, вид оценки нормально создаётся. На отображение или изменение данных это вроде не влияет. В любом случае будем тестировать в тестовой системе. Да и потом, надеюсь из САПа ответят что-то толковое, может нота какая есть (всё перерыл, но не нащёл), может чего-то в настройках не хватает.
Смотрел как виды оценок в ручную создаются, там не через MATERIAL_MAINTAIN_DARK, и некоторые параметры другие в вызовах функций, но через БАПИ не прокатывает, а надо чтобы работало. Так что пока вижу временный выход в модификации.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Расширение ОЗМ на виды оценок через BAPI
СообщениеДобавлено: Чт, дек 24 2009, 21:19 
Начинающий
Начинающий

Зарегистрирован:
Сб, дек 19 2009, 22:51
Сообщения: 3
Здравствуйте.

Используя код Сергея Королева (ФМ-ка MATERIAL_MAINTAIN_DARK) для расширения на заводы и виды оценок, пытаюсь запустить данную ФМ-ку для нескольких материалов. Но нормально отрабатывает только для первого материала из sel.-option. Т.е. получается, что ФМ-ка нормально отрабатывает только первый материал в текущей транзакции, а остальные как будто и не передаются в модуль.
Коллеги, есть у кого-нибудь мысли по этому поводу? Заранее благодарен за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Пт, дек 25 2009, 13:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Читайте ветку внимательнее:
Сергей Королев написал:
Сначала материал создавался или изменялся, потом расширялся. Беда в том, что MATERIAL_MAINTAIN_DARK (и BAPI, которая на самом деле вызывается DARK) не может расширить материала сразу больше чем на один завод (или вид оценки) за одну транзакцию.

Нужно сделать транзакцию для своей программы, которая расширяет один материал на один завод, затем запускать ее в основной программе для каждого сочетания материал-завод. :!:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Re:
СообщениеДобавлено: Пт, дек 25 2009, 19:36 
Начинающий
Начинающий

Зарегистрирован:
Сб, дек 19 2009, 22:51
Сообщения: 3
Удав написал(а):
Читайте ветку внимательнее:
Сергей Королев написал:
Сначала материал создавался или изменялся, потом расширялся. Беда в том, что MATERIAL_MAINTAIN_DARK (и BAPI, которая на самом деле вызывается DARK) не может расширить материала сразу больше чем на один завод (или вид оценки) за одну транзакцию.

Нужно сделать транзакцию для своей программы, которая расширяет один материал на один завод, затем запускать ее в основной программе для каждого сочетания материал-завод. :!:


Я так и сделал, но тормоза безбожные. Для 10 материалов на 2 завода отрабатывает около 40 секунд.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Расширение ОЗМ на виды оценок через BAPI
СообщениеДобавлено: Пн, авг 30 2010, 12:26 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июн 26 2007, 09:23
Сообщения: 76
Откуда: Белгород/Москва
Пол: Мужской
Indiana написал(а):
Необходимо добавить в ракурс Бухучёт данные по видам оценки. Необходимо сделать это через BAPI_MATERIAL_SAVEDATA.
....
Заполняем данные в HEADDATA, CLIENTDATA и VALUATIONDATA (и ...Х конечно).
....
Короче вопрос, если кто уже подобным гемором занимался, и у него на виды оценки бухучёт расширяется, то подскажите как?
А то уже месяц бъюсь!


Возможно в VALUATIONDATAX для
области оценки ставите VAL_AREA = 'X', а надо VAL_AREA = 'ОБЛАСТЬ_ОЦЕНКИ'
или
вида оценки ставите VAL_TYPE = 'X', а надо VAL_TYPE = 'ВИД_ОЦЕНКИ'.

По идее, этом случае должно быть сообщение об ошибке MG160.

_________________
Бойцовый кот нигде не пропадёт!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB