FM либо BAPI для создания новго вида оценки партии

Автор Паганель, Жовтень 04, 2009, 01:24:38 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Паганель

Никто не подскажет, есть ли FM для создания нового вида оценки для партии?
Есть FM для создания новой партии, VB_CREATE_BATCH, вызываю в MB_DOCUMENT_BADI - MB_DOCUMENT_BEFORE_UPDATE, там даже есть параметр no_change_of_bwtar (не менять вид оценки), который если пусто должен судя по всему создавать новый вид оценки.... но не срабатывает.

Никто не копал в этом направлении? Для ОЗМ Вид оценки стоит 'X' - раздельная.


vahtang

Попробуйте для создания вида оценки материала ФМ BAPI_MATERIAL_SAVEDATA, указав в HEADDATA-ACCOUNT_VIEW = 'X' и заполнив необходимые параметры VALUATIONDATA и VALUATIONDATAX.

Паганель

о, спасибо большое, попробую, не позже чем через час (кофе, курить) и за прогу

Uukrul

Цитата: Паганель від Жовтень 05, 2009, 09:08:20 ДП
о, спасибо большое, попробую, не позже чем через час (кофе, курить) и за прогу
Попробовать то можно, вот только тебе понадобиться скорее всего вызвать COMMIT WORK, что при вызове ФМ в бади очень не желательно... ::)

Паганель

Чего? Кстати не можешь примерчик набросать? Как с помощю этой ФМ создать не только вид оценки?

Uukrul

Цитата: Паганель від Жовтень 05, 2009, 10:07:01 ДП
Чего? Кстати не можешь примерчик набросать? Как с помощю этой ФМ создать не только вид оценки?
Чего кстати что, это раз? А примерчик, если есть где-то под рукой посмотрю, но я ее кажется не использовал...

Паганель

Цитата: Uukrul  від Жовтень 05, 2009, 10:10:05 ДП
Чего кстати что, это раз? А примерчик, если есть где-то под рукой посмотрю, но я ее кажется не использовал...
Чего прийдется вызывать коммит ворк?

Uukrul

Цитата: Паганель від Жовтень 05, 2009, 10:11:22 ДП
Чего прийдется вызывать коммит ворк?
Ну потому что это ОЗМ и ее может быть не видно в контексте транзакции проводки документа материала, хотя можешь конечно попробовать, но мне чегой-то подсказывает нет, это раз.. а примерчик как бы есть, но надо его корректно теперь выдрать из контекста программы.

Uukrul

Ну где-то так (вызов не отформатирован и не подготовлен как тест, выдрал по быстрому из программы, создавал не складируемый материал вида DIEN):

* FOR w_mathead
  w_mathead-material = tmatnr-matnr.
  if n_mtart is initial.
    w_mathead-ind_sector = 'M'.
    w_mathead-matl_type = 'DIEN'.
    move: 'X' to w_mathead-basic_view,
          'X' to w_mathead-sales_view,
          'X' to w_mathead-purchase_view,
          'X' to w_mathead-account_view.
* FOR w_bapimara
    w_bapimara-matl_group = tmatnr-matkl.
    w_bapimara-base_uom = tmatnr-meins.
    w_bapimara-item_cat = 'NORM'.
* FOR w_bapimarax
    move: 'X' to w_bapimarax-matl_group,
          'X' to w_bapimarax-base_uom,
          'X' to w_bapimarax-item_cat.
* FOR w_bapimarc
    w_bapimarc-plant = 'XXXX'.
* FOR w_bapimarcx
    w_bapimarcx-plant = 'XXXX'.
* FOR w_bapimbew
    w_bapimbew-val_area = 'XXXX'.
    w_bapimbew-price_ctrl = 'V'.
    w_bapimbew-val_class = '3200'.
* FOR w_bapimbewx
    w_bapimbewx-val_area = 'XXXX'.
    move: 'X' to w_bapimbewx-price_ctrl,
          'X' to w_bapimbewx-val_class.
* FOR marm
    marm-alt_unit = tmatnr-meins.
    marm-gross_wt = 1.
    marm-volume = 1.
    marm-volumeunit = 'M3'.
    append marm.
* FOR marmx
    marmx-alt_unit = tmatnr-meins.
    move: 'X' to marmx-gross_wt,
          'X' to marmx-volume,
          'X' to marmx-volumeunit.
    append marmx.
  endif.
* FOR material
  material-langu = sy-langu.
  material-matl_desc = tmatnr-maktx.
  append material.
* FOR mlongtext
  mlongtext-applobject = 'MATERIAL'.
  mlongtext-text_name = tmatnr-matnr.
  mlongtext-text_id = 'GRUN'.
  mlongtext-langu = sy-langu.
  i = strlen( tmatnr-mtext ).
  if i =< 70.
    mlongtext-format_col = '*'.
    mlongtext-text_line = tmatnr-mtext.
    append mlongtext.
  endif.


    call function 'BAPI_MATERIAL_SAVEDATA'
               exporting
                    headdata            = w_mathead
                    clientdata          = w_bapimara
                    clientdatax         = w_bapimarax
                    plantdata           = w_bapimarc
                    plantdatax          = w_bapimarcx
                    valuationdata       = w_bapimbew
                    valuationdatax      = w_bapimbewx
               importing
                    return              = w_bapireturn
               tables
                    materialdescription = material
                    unitsofmeasure      = marm
                    unitsofmeasurex     = marmx
                    materiallongtext    = mlongtext
               exceptions
                    others =  1.


Паганель

Странно что VB_CREATE_BATCH сама не создает Вид оценки, если это нормальная бапишка для создания партий, то чего она не создает сама иды оценки?

Uukrul

Цитата: Паганель від Жовтень 05, 2009, 10:58:37 ДП
Странно что VB_CREATE_BATCH сама не создает Вид оценки, если это нормальная бапишка для создания партий, то чего она не создает сама иды оценки?
А не странно что при создании завода не создаются склады на этом заводе? Мне нет, так как оценка это данные учета материала с финансовой точки зрения, а партия с точки зрения логистики.

Паганель

Ну вопрос то спорный, если включена раздельная оценка партий ('X') то по идее вид оценки должен сам создаватся, когда создается партия

Uukrul

Цитата: Паганель від Жовтень 05, 2009, 11:49:39 ДП
Ну вопрос то спорный, если включена раздельная оценка партий ('X') то по идее вид оценки должен сам создаватся, когда создается партия
Друг, раздельная оценка и партии не имеют теоретически никакой корреляции, в практической реализации конечно есть небольшие пересечения... так что вопрос не спорный, точнее спорный на том же уровне что и про завод-склад, потому что если завод сделан, то как бы уж склад должен вроде как тоже быть, ан нет, иногда есть заводы и без складов.