Текущее время: Сб, май 10 2025, 12:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Отследить статус заказов
СообщениеДобавлено: Пн, фев 08 2010, 15:35 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
Здравствуйте.

Нужно отследить статус заказов: открытые(не создана исходящая поставка), частично исполнены( VBUK-FKSTK=A), отгруженные (VBUK-FKSTK=C).
Пытаюсь реализовать в Query, не получасется отследить открытые заказы. Помогите подобрать критерии.
Может есть еще какие-либо идеи?

Спасибо заранее. Ольга


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Если вы анализируете статус заказа относительно поставки (цепочка "заказ - поставка - фактура"), то вам нужно поле LFSTK. Если вы анализируете статус заказа относительно фактуры (цепочка заказ - фактура), то вам нужно поле FKSAK.
А вообще, вполне вероятно, вам нужно поле GBSTK - обработана ли позиция в принципе (не важно, поставкой, фактурой или след.заказом).


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
VBUK-FKSTK - это статус стоит смотреть только для документов, релевантных для фактурирования. Если у вас фактурируется поставка, а "статус отгрузки" смотрите для заказе, то он будет пустым (не релевантно).

В вашем случае, как я понимаю, именно такой вариант и есть. Поэтому нужно смотреть поток на самом деле.
Мы у себя делали ФМ, который возвращал "статус" документа примерно так (статус = result):
Code:
    SELECT SINGLE * FROM vbuk WHERE vbeln EQ vbeln.
    IF sy-subrc EQ 0.
      IF vbuk-fkstk IS INITIAL.   "не релевантен для фактур
        IF vbuk-lfgsk IS INITIAL. "не релевантен для поставок
          result = vbuk-fksak.      "тогда результат из статуса фактуры по заказу
        ELSEIF vbuk-lfgsk NE 'C'. "не полностью поставлен
          result = vbuk-lfgsk.       "тогда результат из статуса поставки
        ELSE.                              "если полностью поставлен
          SELECT * FROM vbfa WHERE vbelv EQ vbeln
                               AND ( vbtyp_n EQ 'T' OR vbtyp_n EQ 'J' )
                               AND stufe = 0.         "ищем все поставки по документу
            SELECT SINGLE * FROM vbuk WHERE vbeln EQ  vbfa-vbeln.
            IF sy-subrc EQ 0.
              IF ( vbuk-fkstk EQ 'C' ) OR ( vbuk-fkstk EQ '' ).     "если поставка полностью отфактурирована или не релевантна
                result = 'C'.   "тогда документ отфактурирован тоже
              ELSE.
                result = 'Z'.    "иначе результат = "промежуточные документы обработаны не полностью"
                EXIT.
              ENDIF.
            ENDIF.
          ENDSELECT.
        ENDIF.
      ELSE.
        result = vbuk-fkstk.  "если документ сам релевантен для фактуры
                          "(скорее всего документ - это поставка), то вот и результат
      ENDIF.
    ELSE.
      result = 'X'.                "документа нет
    ENDIF.


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

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
Вопрос: Данный код добавляю в инфонабор как дополнительное поле?


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

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
Выводи мне следущее сообщение об ошибке: Field "VBELN" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement . У меня в инфо-наборе две таблицы VBUK и VBFA.
Формат задавала через Like-ссылка: VBUK-VBELN -система определила как С.


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
Как вам будет угодно. Доп. кодировку или доп. поле с кодировкой. Понятное дело, что надо адаптировать, но в целом, думаю, идея ясна.


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
kaol написал(а):
Выводи мне следущее сообщение об ошибке: Field "VBELN" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement . У меня в инфо-наборе две таблицы VBUK и VBFA.
Формат задавала через Like-ссылка: VBUK-VBELN -система определила как С.
VBELN - это то, что вы используете в качестве номера сбытового заказа. А там уж сами смотрите.


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

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
вот меня и удивляет почему он не находит это поле в таблицах, тк оно везде там присутствует.


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
kaol написал(а):
вот меня и удивляет почему он не находит это поле в таблицах, тк оно везде там присутствует.
kaol, без обид. А это ваш первый опыт в написании query, в целом, и в применении ABAP в нём, в частности? Если да, то в рамках форума тяжело объяснить, что там к чему. Сорри.


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
У вас базовая таблица какая? VBFA? Попробуйте тогда вместо VBELN использовать VBFA-VBELV. Должно прокатить.


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

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
Написание Query - нет. Применение APAP - да.
Базовая таблица VBUK


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
Тогда объявляйте доп. поле result как LIKE-ссылка на VBUK-FKSTK (или любое другое поле статуса из vbuk). А кодировка для этого поля должна выглядеть вот так (комментарии можете убрать):
Code:
      IF vbuk-fkstk IS INITIAL.   "не релевантен для фактур
        IF vbuk-lfgsk IS INITIAL. "не релевантен для поставок
          result = vbuk-fksak.      "тогда результат из статуса фактуры по заказу
        ELSEIF vbuk-lfgsk NE 'C'. "не полностью поставлен
          result = vbuk-lfgsk.       "тогда результат из статуса поставки
        ELSE.                              "если полностью поставлен
          SELECT * FROM vbfa WHERE vbelv EQ vbeln
                               AND ( vbtyp_n EQ 'T' OR vbtyp_n EQ 'J' )
                               AND stufe = 0.         "ищем все поставки по документу
            SELECT SINGLE * FROM vbuk WHERE vbeln EQ  vbfa-vbeln.
            IF sy-subrc EQ 0.
              IF ( vbuk-fkstk EQ 'C' ) OR ( vbuk-fkstk EQ '' ).     "если поставка полностью отфактурирована или не релевантна
                result = 'C'.   "тогда документ отфактурирован тоже
              ELSE.
                result = 'Z'.    "иначе результат = "промежуточные документы обработаны не полностью"
                EXIT.
              ENDIF.
            ENDIF.
          ENDSELECT.
        ENDIF.
      ELSE.
        result = vbuk-fkstk.  "если документ сам релевантен для фактуры
                          "(скорее всего документ - это поставка), то вот и результат
      ENDIF.


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

Зарегистрирован:
Чт, сен 03 2009, 18:20
Сообщения: 77
ругается : "RESULT" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.

Может нужно определить тип этого поля?


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

Зарегистрирован:
Пт, апр 13 2007, 16:52
Сообщения: 381
Пол: Мужской
Точно на RESULT ругается? Только что сделал у себя - всё ок.
Кроме
Code:
          SELECT * FROM vbfa WHERE vbelv EQ vbeln
                               AND ( vbtyp_n EQ 'T' OR vbtyp_n EQ 'J' )
                               AND stufe = 0.         

Поправьте здесь vbeln на vbuk-vbeln.


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

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
kaol написал(а):
ругается : "RESULT" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.
Может нужно определить тип этого поля?

Вам дали только фрагмент кода, в котором отсутствует (как минимум) определение переменных. Вам нужно добавить вот это для того, чтобы пройти syntax check:
Code:
tables: vbuk, vbfa.
data: result type c,
      vbeln type vbeln.


Ну и, естественно, даже после этого еще нужно "дорабатывать напильником". :)

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

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


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

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


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

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