VB_CHANGE_BATCH_VALUATION

Автор Паганель, Жовтень 07, 2009, 03:10:00 ПП

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

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

Паганель

Нашел ту FM для изменения/создания видов оценки партии VB_CHANGE_BATCH_VALUATION, будет время - оформлю пример (кто бы напомнил через недельку)

Паганель

Кстати, будьте внимательны, не стоит вызывать даную FM в контексте других транзакций  (BADI), так как она вроде бы вызывает коммит
строка 809 
PERFORM insert_batches ON COMMIT.

Еще одно интересное место строка 229:

* Change of valuation type is only allowed if exit is not called within
* goods movement and imported valuation type was blank (Note 723294)
    IF no_change_of_bwtar IS INITIAL OR ymcha-bwtar IS INITIAL.
      ymcha-bwtar = loc_bwtar.
    ENDIF.

Как я понял, изменение Вида оценки возможно, если только функция вызывается без движения материала.

Note 723294 - EXIT_SAPLV01Z_013: Valuation type change at batch creation



Dmitriy

#2
Цитата: Паганель від Жовтень 10, 2009, 02:53:12 ПП
...так как она вроде бы вызывает коммит
строка 809  
PERFORM insert_batches ON COMMIT.
COMMIT WORK

Dmitriy

#3
Изучение BC414 - Programming Database Updates внесет ясность.  

Паганель

Мил человек, не расскажешь ли ты, простым, человечесским языком, весь сакральный смысл, описанного по ссылке http://www.sapdb.info/commit-abap-keyword-a-day/

Dmitriy

#5
Можешь воспользоваться online переводчиком: http://www.multitran.ru/, например.
ЦитатаBasic form
COMMIT WORK.
Addition
... AND WAIT

Effect
Executes a database commit and thus closes a logical processing unit or Logical Unit of Work ( LUW ) (see also Transaction processing ). This means that:

* calls the subroutines specified by PERFORM ... ON COMMIT ,

* executes asynchronously any update requests (see CALL FUNCTION ... IN UPDATE TASK) specified in these subroutines or started just before,

* processes the function modules specified in CALL FUNCTION ... IN BACKGROUND TASK

PERFORM insert_batches ON COMMIT.
Наличие в коде данной строки, конечно, с некоторой долей вероятности, вроде бы подразумевает конечный DB COMMIT внутри самой функции, но совсем не факт, что
Цитатаона вроде бы вызывает коммит
Примеры некоторых BAPI тому подтверждение.

P.S. Включи в отладчике опцию "отладка обновлений" и по стеку вызовов посмотри точно, где находится сама строка с командой COMMIT WORK.  

Паганель

Цитата: Dmitriy від Жовтень 11, 2009, 12:53:58 ПП
P.S. И строки 809 в исходном коде ф-ции нет, у меня их всего 382, т.е. если ты докопался где-то до чего-то, то указывай имя Include. Включи в отладчике опцию "отладка обновлений" и посмотри точно, где находится сама строка с командой COMMIT WORK.
Хм, извиняюсь, доабапился.... говорил о функции VB_CHANGE_BATCH_VALUATION, а смотрел код VB_CREATE_BATCH

Паганель

#7
Ок, продолжим после ознакомления с курсом BC414 (кхе, не скоро видно это будет).

Не хочется писать в локальный файл, а чтобы потом было легко найти, буду писать в созданный специально для этого раздел http://sapforum.biz/index.php/topic,845.0.html