Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема розпочата: Martha від Серпень 20, 2009, 03:16:37 ПП
подскажите пожалуйста функцию, чтобы вытащить цену из сбытовой поставки (итоговую) и по каждому условию
спасибо.
Типа это: http://sapforum.biz/index.php/topic,602.0.html правда Паганель считает что главное имя модуля, а примеры типа кому надо разберутся...
Сразу и точно не скажу, но посмотрите группу функций V61A (se38,модуль SAPLV61A)
думаю там найдете (в инклудах)
Цитата: Паганель від Серпень 20, 2009, 03:25:33 ПП
Сразу и точно не скажу, но посмотрите группу функций V61A (se38,модуль SAPLV61A)
думаю там найдете (в инклудах)
Там найти то просто, но вот использование этого ФМ, короче надо посидеть и посидеть ::)
Цитата: Uukrul link=topic=765.msg4751#msg4751 date=1250770993
Типа это: http://sapforum.biz/index.php/topic,602.0.html правда Паганель считает что главное имя модуля, а примеры типа кому надо разберутся...
ага, я только завтраками кормлю, все обещаю ..... ладно.... если Леди не разберется - сделаю пример, ежели разберется, может сама выложит примерчик
Сейчас сделаю Вам примерчик (попробую, на скорую руку), тестировать буду на сбытовом заказе, у меня в системе нету исходящих поставок с схемами калькуляции ....
Или у Вас получилось?
Вот такой простой примерчик, его можно дополнительно расширять, выбранные значения можно просмотреть в отладчике :), я не стал заморачиватся с выводом этого всего на экран.
*&---------------------------------------------------------------------*
*& Report ZSD_TEST_PRICING
*& Тестирования BAPI PRICING
*&---------------------------------------------------------------------*
*& Автор Паганель
*&---------------------------------------------------------------------*
REPORT zsd_test_pricing.
TABLES: komk, komp, vbak, komv.
DATA: ls_comm_head_i TYPE komk. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_item_i TYPE komp. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_head_e TYPE komk. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_item_e TYPE komp. "OCCURS 1 WITH HEADER LINE.
DATA: gt_tkomv TYPE komv OCCURS 100 WITH HEADER LINE.
PARAMETERS: pa_belnr TYPE komk-belnr OBLIGATORY.
AT SELECTION-SCREEN.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_comm_head_i FROM vbak
WHERE vbeln = pa_belnr.
" Для простоты делаю выбор только по 1позици,
" но не смотря на это в gt_tkomv
" выводятся записи условий для всех позиций
SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_comm_item_i FROM vbap
WHERE vbeln = pa_belnr AND posnr ='1'.
CALL FUNCTION 'PRICING'
EXPORTING
comm_head_i = ls_comm_head_i
comm_item_i = ls_comm_item_i
IMPORTING
comm_head_e = ls_comm_head_e
comm_item_e = ls_comm_item_e
TABLES
tkomv = gt_tkomv .
WRITE /. " что бы поставить точку останова :-)
Дополню пример, добавив PRICING_AMOUNT_DETERMINATION для получения итоговой суммы,
сумма в поле KBETR, кроме этого не заполняю структуру ls_comm_item_i
*&---------------------------------------------------------------------*
*& Report ZSD_TEST_PRICING
*& Тестирования BAPI PRICING
*&---------------------------------------------------------------------*
*& Автор Паганель
*&---------------------------------------------------------------------*
REPORT zsd_test_pricing.
TABLES: komk, komp, vbak, komv.
DATA: ls_comm_head_i TYPE komk. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_item_i TYPE komp. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_head_e TYPE komk. "OCCURS 1 WITH HEADER LINE.
DATA: ls_comm_item_e TYPE komp. "OCCURS 1 WITH HEADER LINE.
DATA: gt_tkomv TYPE komv OCCURS 100 WITH HEADER LINE.
DATA: ls_tkomv LIKE komv.
DATA: ls_tkomv_e LIKE komv.
PARAMETERS: pa_belnr TYPE komk-belnr OBLIGATORY.
AT SELECTION-SCREEN.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_comm_head_i FROM vbak
WHERE vbeln = pa_belnr.
" Для простоты делаю выбор только по 1позици,
" но не смотря на это в gt_tkomv
" выводятся записи условий для всех позиций
"SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_comm_item_i FROM vbap
" WHERE vbeln = pa_belnr AND posnr ='1'.
CALL FUNCTION 'PRICING'
EXPORTING
comm_head_i = ls_comm_head_i
comm_item_i = ls_comm_item_i
IMPORTING
comm_head_e = ls_comm_head_e
comm_item_e = ls_comm_item_e
TABLES
tkomv = gt_tkomv .
WRITE /. " что бы поставить точку останова :-)
READ TABLE gt_tkomv INTO ls_tkomv INDEX 1.
CALL FUNCTION 'PRICING_AMOUNT_DETERMINATION'
EXPORTING
komk_i = ls_comm_head_i
komp_i = ls_comm_item_i
komv_i = ls_tkomv
IMPORTING
komv_e = ls_tkomv_e.
WRITE /. " что бы поставить точку останова :-)