Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: Martha от Август 20, 2009, 03:16:37 pm

Название: цена в документах sd
Отправлено: Martha от Август 20, 2009, 03:16:37 pm
подскажите пожалуйста функцию, чтобы вытащить цену из сбытовой поставки (итоговую) и по каждому условию

спасибо.

Название: Re: цена в документах sd
Отправлено: Uukrul от Август 20, 2009, 03:23:13 pm
Типа это: http://sapforum.biz/index.php/topic,602.0.html правда Паганель считает что главное имя модуля, а примеры типа кому надо разберутся...
Название: Re: цена в документах sd
Отправлено: Паганель от Август 20, 2009, 03:25:33 pm
Сразу и точно не скажу, но посмотрите группу функций V61A (se38,модуль SAPLV61A)
думаю там найдете (в инклудах)
Название: Re: цена в документах sd
Отправлено: Uukrul от Август 20, 2009, 03:26:48 pm
You are not allowed to view links. Register or Login
Сразу и точно не скажу, но посмотрите группу функций V61A (se38,модуль SAPLV61A)
думаю там найдете (в инклудах)
Там найти то просто, но вот использование этого ФМ, короче надо посидеть и посидеть  ::)
Название: Re: цена в документах sd
Отправлено: Паганель от Август 20, 2009, 03:27:58 pm
Цитата: Uukrul  link=topic=765.msg4751#msg4751 date=1250770993
Типа это: http://sapforum.biz/index.php/topic,602.0.html правда Паганель считает что главное имя модуля, а примеры типа кому надо разберутся...

ага, я только завтраками кормлю, все обещаю ..... ладно.... если Леди не разберется - сделаю пример, ежели разберется, может сама выложит примерчик
Название: Re: цена в документах sd
Отправлено: Паганель от Август 21, 2009, 12:47:30 pm
Сейчас сделаю Вам примерчик (попробую, на скорую руку), тестировать буду на сбытовом заказе, у меня в системе нету исходящих поставок с схемами калькуляции ....


Или у Вас получилось?
Название: Re: цена в документах sd
Отправлено: Паганель от Август 21, 2009, 01:23:49 pm
Вот такой простой примерчик, его можно дополнительно расширять, выбранные значения можно просмотреть в отладчике  :), я не стал заморачиватся с выводом этого всего на экран.

Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& 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 /.  " что бы поставить точку останова :-)
Название: Re: цена в документах sd
Отправлено: Паганель от Август 21, 2009, 01:44:09 pm
Дополню пример, добавив PRICING_AMOUNT_DETERMINATION для получения итоговой суммы,
сумма в поле KBETR, кроме этого не заполняю структуру ls_comm_item_i

Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& 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 /.  " что бы поставить точку останова :-)