Текущее время: Ср, май 07 2025, 23:04

Часовой пояс: 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 часа


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

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


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

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