Текущее время: Сб, ноя 08 2025, 06:19

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


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


ВНИМАНИЕ!

Вопросы по исходящим поставкам - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пт, апр 09 2010, 09:12 
Начинающий
Начинающий

Зарегистрирован:
Пт, апр 09 2010, 08:46
Сообщения: 2
Доброе время суток.

Может кто-нибудь сталкивался с подобной проблемой или есть желание побороться с железной машиной SAP.. :)

Есть задача ограничить срок действия скидки по дате создания заказа (т.е. не по дате цены как это работает стандартно) или по текущей дате во время создания заказа.
Мои попытки:
1. Добавил в прайсинг для этих скидок рутину (Requirement), где пытался получить "Valid to" рассматриваемой скидки из таблицы KONH через tkomv-knumv, но это не работает во время создания заказа, т.к. tkomv не заполнен. В итоге так и не нашел как при создании заказа добраться до KONH. После попытки 2 (см. ниже) понял, что KONH не поможет...
2. Добавил формулу (AltCBV) где пытался обнулить значение скидки. Получилось добраться до KONH через xkomv-KNUMH и даже обнулить скидку! Но в результате тестирования выяснилось, что KONH каким-то образом буферизирует значения дат: при изменении Valid to скидки (транзакцией VK12), KONH-DATBI не обновляется. Т.е. KONH в данном случае бесполезен. Код формулы привел в конце сообщения.

Как вариант можно было бы анализировать все Axxx таблицы из скидки, но это не очень то удобно, т.к. при добавлении новых ключей надо будет прописывать новые таблицы. :stol:

За сим прошу помощи всемогущего ALL :|

Код "почти работающей" формулы:
Code:
      data: w_vbfa_vbelv like vbfa-vbelv,
            w_vbak_erdat like vbak-erdat,
            zDATBI like konh-DATBI,
            zKNUMH like konh-KNUMH.

* get "valid to" date of the condition
      clear zKNUMH.

      zKNUMH = xkomv-KNUMH.

      check: not zKNUMH is initial.

        select single DATBI
          from konh
          into zDATBI
         where knumh eq zKNUMH.

* without sales order number - analyze current date
      if sy-tcode eq 'VA01' or komp-AUBEL eq '$TEMP'.
        if sy-DATUM > zDATBI.
           xkwert = 0.
        endif.
        exit.
      endif.
* else find the orders number and compare with it
* check document flow to get the sales order number
      select single vbelv
        from vbfa
        into w_vbfa_vbelv
       where vbeln   = komp-AUBEL
         and vbtyp_v = 'C'.

      if sy-subrc <> 0.
* check sales orders header table for the order
       select single vbeln
         from vbak
         into w_vbfa_vbelv
        where vbeln eq komp-AUBEL.

       if sy-subrc <> 0.
          message id 'SU' type 'S' number '899'
            with 'Document not found in VBFA and VBAK' komp-AUBEL.
          exit.
       endif.
      endif.

      select single erdat
        from vbak
        into w_vbak_erdat
       where vbeln   = w_vbfa_vbelv.

      if w_vbak_erdat > zDATBI.
           xkwert = 0.
       endif.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пт, апр 09 2010, 09:30 
Специалист
Специалист

Зарегистрирован:
Чт, янв 11 2007, 10:35
Сообщения: 129
Пол: Мужской
А может почитать стандарт и воспользоваться датой цены, а не датой создания заказа? Или в примеру копировать дату создания в дату цены, это не сложно.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа  Тема решена
СообщениеДобавлено: Пт, апр 09 2010, 09:51 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, мар 22 2010, 13:07
Сообщения: 54
Пол: Женский
а попробуйте-ка в настройке вида условия в Управляющих Данных 2 для Даты цены поставить значение Е - дата заказа (КОMK-AUDAT). не тестировала, но судя по хелпу, может помочь.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пт, апр 09 2010, 11:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
Исходя из вот этого в формуле:
Code:
select single erdat
        from vbak
        into w_vbak_erdat
       where vbeln   = w_vbfa_vbelv.

      if w_vbak_erdat > zDATBI.
           xkwert = 0.
       endif.
человеку скорее нужно не E, а D "Дата создания (KOMK-ERDAT)".


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пт, апр 09 2010, 11:52 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, мар 22 2010, 13:07
Сообщения: 54
Пол: Женский
VC написал(а):
ограничить срок действия скидки по дате создания заказа или по текущей дате во время создания заказа.

скорее всего, дата создания и дата заказа равны, так что неважно, какой индикатор Е или D, главное, чтоб помогло)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пт, апр 09 2010, 12:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
ИМХО, если в условии X = X всегда ясен результат, то в условии X = Y, полагаться на то, что это также равенство, потому что "скорее всего", крайне не осмотрительно. :) Дата документа может использоваться по назначению и тогда будут косяки, которые придётся долго разгребать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ограничение срабатывания скидки по дате создания заказа
СообщениеДобавлено: Пн, апр 12 2010, 09:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, апр 09 2010, 08:46
Сообщения: 2
Спасибо!
Остановились на D "Дата создания (KOMK-ERDAT)".


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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