Текущее время: Вс, авг 03 2025, 23:19

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Расчет цены в контракте SD
СообщениеДобавлено: Ср, авг 27 2008, 10:27 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 12 2005, 12:55
Сообщения: 17
Для планирования платежей нужно посчитать полные суммы в позициях существующих контрактов. Пытаюсь разобраться как это можно сделать. Кто скажет, что не так в следующем коде? Вопреки моим ожиданиям, он не расчитывает цену по условиям.
Code:
CALL FUNCTION 'SD_SALES_DOCUMENT_READ'
  EXPORTING
    document_number                  = p_vbeln
*   PROCESSING_MODIFICATION          = ' '
*   PROCESSING_BUFFERREAD            = ' '
*   RESULTS_INSERT                   = ' '
*   SUPPRESS_AVAILIBILITY_DIA        = 'X'
*   SUPPRESS_TEXT_POPUP              = 'X'
*   I_BLOCK                          = 'X'
*   STATUS_BUFFER_REFRESH            = 'X'
*   REQUISITION_BUFFER_REFRESH       = 'X'
*   CALL_ACTIVE                      = ' '
*   I_NO_AUTHORITY_CHECK             = ' '
*   I_CALL_BAPI                      = ' '
*   I_CRM_LOCK_MODE                  = ' '
* IMPORTING
*   EKUAGV                           =
*   EKURGV                           =
*   EKUWEV                           =
*   EVBAK                            =
*   EVBAKKOM                         =
*   EVBKD                            =
*   ETVAK                            =
          .
CALL FUNCTION 'SD_SALES_DOCUMENT_READ_POS'
  EXPORTING
    document_number                 = p_vbeln
    document_posnr                  = p_posnr
*   SUPPRESS_AVAILIBILITY_DIA       = 'X'
*   SUPPRESS_TEXT_POPUP             = 'X'
*   STATUS_BUFFER_REFRESH           = 'X'
*   CALL_ACTIVE                     = ' '
* IMPORTING
*   EVBAK                           =
*   EVBAKKOM                        =
*   MATNR_POS                       =
  TABLES
    fxavbbd                         = lt_fxavbbd
          .
CALL FUNCTION 'SD_SALES_PRICING_INFORMATION'
  EXPORTING
    i_posnr          = p_posnr
*    I_READ_DOC       = 'X'
    i_vbeln          = p_vbeln
  IMPORTING
    e_komk           = ls_komk
    e_komp           = ls_komp
  TABLES
*    FXKONV           =
    ftkomv           = lt_komv
*    FTKOMK           =
          .
WRITE: / ls_komp-netpr.
CALL FUNCTION 'PRICING'
EXPORTING
  calculation_type        = 'C'
  comm_head_i             = ls_komk
  comm_item_i             = ls_komp
*      PRELIMINARY             = ' '
*      NO_CALCULATION          = ' '
IMPORTING
  comm_head_e             = ls_komk2
  comm_item_e             = ls_komp2
TABLES
  tkomv                   = lt_komv
*      SVBAP                   =
*    CHANGING
*      REBATE_DETERMINED       = ' '
        .
WRITE: / ls_komp2-netpr.

_________________
Машина должна не думать, а ездить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 27 2008, 18:15 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Нафига вам надо заново рассчитывать цены по уже cуществующим контрактам? :? Вся эта информация уже должна храниться в таблице VBAP (NETWR, KZWI1, etc.). В крайнем случае значения всех условий также хранятся в таблице KONV.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 27 2008, 19:51 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 12 2005, 12:55
Сообщения: 17
2 Jelena
Во-первых, я Вам очень признателен за доброжелательное предложение использовать стоимость нетто вместо полной стоимости. К сожалению, мой заказчик упрям как осел, и мне вряд ли удастся склонить его к столь простому и изящному решению.
Во-вторых, из Ваших слов я умозаключаю, что Вам неизвестно, как правильно пользоваться функцией PRICING, что и составляло суть моего вопроса.
В-третьих, не специализируясь на модуле SD, я вряд ли смогу внятно ответить на ваши вопросы. Направление, куда копать, интуитивно сложилось у меня из поиска по различным форумам.
В четвертых, в каких таблицах что хранится - мне известно, спасибо. К сожалению, в каком затейливом виде хранится - тоже известно.
Еще раз спасибо за Ваши добрые намерения.

_________________
Машина должна не думать, а ездить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 18:51 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Papon написал(а):
Во-первых, я Вам очень признателен за доброжелательное предложение использовать стоимость нетто вместо полной стоимости.


Я совершенно не предлагала этого делать. Названия полей были приведены исключительно для примера, в каком направлении нужно искать информацию. В своем посте вы как-то запамятивали дать точное определение "полной стоимости" (возможно оно существует где-нибудь в законах о бухгалтерии, но это, знаете ли, ABAP форум), поэтому нам остается только гадать о сути вашей задачи.

Мне "посчастливилось" поработать с SD несколько лет, поэтому желание пользоваться цепочкой ФМ вместо того, чтобы прочитать уже готовые данные из базы, у меня вызвало определенное недоумение. Во-первых, это просто нерационально. Во-вторых, результат, который вы получите, может отличаться от тех данных, которые были записаны в базу в момент сохранения документa. Bаш заказчик готов мириться с такими неувязочками?

Papon написал(а):
К сожалению, в каком затейливом виде хранится - тоже известно.


Они хранятся в не более затейливом виде, чем вам придется использовать, если вы таки продолжите настаивать на использовании ФМ.

На SDN вы найдете массу примеров использования ФМ PRICING, но обратите внимание, что никто его не использует для pricing уже созданного документа. Обычно этот ФМ используется для симуляции подсчета цены:
https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/4841

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 22:11 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 12 2005, 12:55
Сообщения: 17
2 Jelena
Во-первых, я извиняюсь. Мой сарказм был совершенно неуместен. На самом деле, после Вашего поста я плюнул на благородный путь размышления и по-обезьяньи поискал в реальных примерах нужную мне цифру, и, в самом деле, обнаружил ее, в поле CMPRE. Спасибо, честное благородное спасибо.
Во-вторых, мне, все-таки, хотелось бы "обуздать" функцию PRICING, причем, именно с подготовкой параметров при помощи ФМ. Слабость, знаете ли, испытываю к благородным путям.
В-третьих, теперь аналогичная задача стоит в отношении контракта и заказа MM. (поиск, по предыдущей аналогии, "подходящих полей" успехами не порадовал, теперь уж точно на PRICING настраиваюсь)
...
И, наконец, в-пятых... А почему, все-таки, мой код-то не работает?..

_________________
Машина должна не думать, а ездить.


Последний раз редактировалось Papon Ср, сен 10 2008, 09:53, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 29 2008, 18:06 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Papon написал(а):
А почему, все-таки, мой код-то не работает?..


Что конкретно "не работает" в вашем коде? :? Собственно для существующих документов можно было обойтись вызовом SD_SALES_PRICING_INFORMATION, остальное там ни к чему. Последующий вызов PRICING ничего не изменит, если только после создания документа не поменялись condition records или еще что-то в ценообразовании.

Если вы не получили ожидаемую цифру в ls_komp2-netpr, это всего лишь означает, что данные хранятся совсем не в том виде, в каком вы ожидали. Рекомендую при случае заглянуть в конфигурацию pricing procedure (поле VBAK-KALSM), возможно это кое-что прояснит: SPRO -> Sales and Distribution -> Basic Functions -> Pricing -> Pricing Control -> Define and Assign Pricing Procedures.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

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


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

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