Автор Тема: BAPI_ALM_ORDERHEAD_GET_LIST - Список заказов ТОРО (по мотивам Тр. IW39)  (Прочитано 9541 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
В общем потребовалось тут выбрать список заказов ТОРО в программе для обработки, можно конечно и селектами все это дело выгрести из таблиц, однако в критериях статусов были заданы такие вещи как статусы заказов и прочие радости, которые автоматом втягивали в выборку кучу таблиц. Да и сами заказы ТОРО размазаны по куче таблиц, в общем оказалось быстрее всего это сделать используя стандартный ФМ BAPI_ALM_ORDERHEAD_GET_LIST. Пример вызова использования на картинке ниже.
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& Report  YZZZ_TEST                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Comments    : Тестовая программа ФМ BAPI_ALM_ORDERHEAD_GET_LIST
*& Platform    : SAP R/3 V4.6C or later
*& Autor       : Uukrul
*& Date create : 08.10.2007
*& Date change : 08-10-2007
*&**********************************************************************
REPORT  yzzz_test.

CONSTANTS: true(1) TYPE c VALUE 'X',
           false(1) TYPE c VALUE space.

DATA: l_display_parameters LIKE bapi_alm_list_navigation_in,
      l_navigation_data LIKE bapi_alm_list_navigation_ret,
      lt_ranges LIKE bapi_alm_order_listhead_ranges
                    OCCURS 10 WITH HEADER LINE,
      lt_result LIKE bapi_alm_order_listhead_result
                    OCCURS 10 WITH HEADER LINE,
      lt_return LIKE bapiret2
                    OCCURS 10 WITH HEADER LINE.

* Выбрать заказы ТОРО
REFRESH: lt_ranges, lt_return, lt_result.

* Выбрать данные по максимуму
l_display_parameters-pagelength = '99999'.
l_display_parameters-show_page_number = '0'.
l_display_parameters-force_refresh = true.

* Открытые документы заказов ТОРО
lt_ranges-field_name = 'SHOW_OPEN_DOCUMENTS'.
lt_ranges-low_value = true.
APPEND lt_ranges.
* Документы заказов ТОРО в работе
lt_ranges-field_name = 'SHOW_DOCUMENTS_IN_PROCESS'.
lt_ranges-low_value = true.
APPEND lt_ranges.

* Включить статус заказа ОТКР
lt_ranges-field_name = 'OPTIONS_FOR_STATUS_INCLUSIVE'.
lt_ranges-sign = 'I'.
lt_ranges-option = 'EQ'.
lt_ranges-low_value = 'ОТКР'.
APPEND lt_ranges.
* Исключить статусы БЛОК
lt_ranges-field_name = 'OPTIONS_FOR_STATUS_EXCLUSIVE'.
lt_ranges-sign = 'I'.
lt_ranges-option = 'EQ'.
lt_ranges-low_value = 'БЛОК'.
APPEND lt_ranges.
* Выбрать данные относящиеся к заданному заводу = GLOBAL_WERKS
lt_ranges-field_name = 'OPTIONS_FOR_PLANPLANT'.
lt_ranges-sign = 'I'.
lt_ranges-option = 'EQ'.
lt_ranges-low_value = '1000'.
APPEND lt_ranges.


CALL FUNCTION 'BAPI_ALM_ORDERHEAD_GET_LIST'
  EXPORTING
    display_parameters = l_display_parameters
  IMPORTING
    navigation_data    = l_navigation_data
  TABLES
    it_ranges          = lt_ranges
    et_result          = lt_result
    return             = lt_return.


* Обшие ограничения выбора

DISPLAY_PARAMETERS:
--------------------
PAGELENGTH      - Максимальное количество записей для выбора
SHOW_PAGE_NUMBER   - Показывать с данной позиции
FORCE_REFRESH      - Определить данные, если условия выбора не изменены

Ну если хотим выбрать очень много, то максимум тут можно задать в поле PAGELENGTH = 99 999, если нужно больше, то система к сожалению не позволит вам это сделать. Можете считать это ограничением данного ФМ, но мне как бы хватило этих значений.


* Собственно критерии выбора
IT_RANGES
--------------------
FIELD_NAME      - Имя компоненат для ограничения выбора
SIGN         - Знак
OPTION         - Опция сравнения
LOW_VALUE      - Значение 1
HIGH_VALUE      - Значение 2

В общем-то данная структура фактически дополненная структура RANGES, с указанием по каком полую выбиать. Критерии выбора и специальные парамтеры такие же как и для RANGES, т.е. SIGN = I/E, а OPTION содержит знаки сравнения типа EQ/GE/BT и т.д. Откуда и какие значения ставить для FIELD_NAME, ну в общем-то для этого стоит запустить этот ФМ в тестовом режиме с минимальными ограничениями и в таблице ET_TEMPLATE, получите список возможных критериев по которым можно выполнять выборку данных. Для 4.7 в таблице будет 97 записей. Для полей которые начинаются с имени SHOW* можно заполнить только значение LOW_VALUE, как в примере, где выбираются открытые заказы. Для полей начинающихся с OPTIONS* используются правила заполнения типа RANGES.

В переменные задаем или маску для сравнения или конкретные значения для выбора. В данном примере выбираются все открытые документы и документы которые в процессе работы, при этом статус заказа должен быть ОТКР, не БЛОК - блокирован. Выборка выполняется для завода 1000.

В общем-то список выдаваемых полей для обработки ниже, по именам полей думаю без проблем понять что они обозначают и для чего используются. Если кому совсем сложно, запустите отчет IW39 и методами научного тыка думаю определите, что за что отвечает.
                                                                                                                               
Код: You are not allowed to view links. Register or Login
FIELD_NAME                     S OP LOW_VALUE                                     HIGH_VALUE                                   
                                                                                                                               
SHOW_OPEN_DOCUMENTS                 ?                                                                                         
SHOW_DOCUMENTS_IN_PROCESS           ?                                                                                         
SHOW_COMPLETED_DOCUMENTS            ?                                                                                         
SHOW_HISTORICAL_DOCUMENTS           ?                                                                                         
USE_SELECTION_ID                    ?                                                                                         
SHOW_DOCS_WITH_PARTN_ROLE           ?                                                                                         
SHOW_DOCS_WITH_PARTNER              ?                                                                                         
SHOW_DOCS_WITH_CURRENCY             ?                                                                                         
SEARCH_IN_OBJECT_LIST_ENTRIES       ?                                                                                         
SHOW_DOCS_WITH_ACC_ASSIGNM_CAT      ?                                                                                         
SHOW_DOCS_WITH_FROM_DATE            ?                                                                                         
SHOW_DOCS_WITH_TO_DATE              ?                                                                                         
OPTIONS_FOR_ORDERID            ? ?  ?                                             ?                                           
OPTIONS_FOR_DOC_TYPE           ? ?  ?                                             ?                                           
OPTIONS_FOR_FUNCLOC            ? ?  ?                                             ?                                           
OPTIONS_FOR_EQUIPMENT          ? ?  ?                                             ?                                           
OPTIONS_FOR_MATERIAL           ? ?  ?                                             ?                                           
OPTIONS_FOR_SERIALNO           ? ?  ?                                             ?                                           
OPTIONS_FOR_ADD_DEVICE_DATA    ? ?  ?                                             ?                                           
OPTIONS_FOR_NOTIF_NO           ? ?  ?                                             ?                                           
OPTIONS_FOR_MAIN_WORKCENTER    ? ?  ?                                             ?                                           
OPTIONS_FOR_MAIN_WORKCTR_PLANT ? ?  ?                                             ?                                           
OPTIONS_FOR_LEADING_ORDER      ? ?  ?                                             ?                                           
OPTIONS_FOR_SUPERIOR_ORDER     ? ?  ?                                             ?                                           
OPTIONS_FOR_PLANPLANT          ? ?  ?                                             ?                                           
OPTIONS_FOR_PRIORITY           ? ?  ?                                             ?                                           
OPTIONS_FOR_ENTERED_BY         ? ?  ?                                             ?                                           
OPTIONS_FOR_ENTER_DATE         ? ?  ?                                             ?                                           
OPTIONS_FOR_STATUS_INCLUSIVE   ? ?  ?                                             ?                                           
OPTIONS_FOR_STATUS_EXCLUSIVE   ? ?  ?                                             ?                                           
OPTIONS_FOR_SHORT_TEXT         ? ?  ?                                             ?                                           
OPTIONS_FOR_CHANGED_BY         ? ?  ?                                             ?                                           
OPTIONS_FOR_CHANGE_DATE        ? ?  ?                                             ?                                           
OPTIONS_FOR_AVAILABLE_TO_DATE  ? ?  ?                                             ?                                           
OPTIONS_FOR_START_DATE         ? ?  ?                                             ?                                           
OPTIONS_FOR_FINISH_DATE        ? ?  ?                                             ?                                           
OPTIONS_FOR_MAINTPLAN          ? ?  ?                                             ?                                           
OPTIONS_FOR_MAINTITEM          ? ?  ?                                             ?                                           
OPTIONS_FOR_REVISION           ? ?  ?                                             ?                                           
OPTIONS_FOR_WBS_ELEMENT_HEADER ? ?  ?                                             ?                                           
OPTIONS_FOR_SCHED_FINISH_DATE  ? ?  ?                                             ?                                           
OPTIONS_FOR_ACTUAL_RELEAS_DATE ? ?  ?                                             ?                                           
OPTIONS_FOR_ACTUAL_FINISH_DATE ? ?  ?                                             ?                                           
OPTIONS_FOR_ACTUAL_START_DATE  ? ?  ?                                             ?                                           
OPTIONS_FOR_SCHEDLD_START_DATE ? ?  ?                                             ?                                           
OPTIONS_FOR_SYST_AVAILABLEFROM ? ?  ?                                             ?                                           
OPTIONS_FOR_TASK_LIST_GROUP    ? ?  ?                                             ?                                           
OPTIONS_FOR_GROUP_COUNTER      ? ?  ?                                             ?                                           
OPTIONS_FOR_PLANNING_INDICATOR ? ?  ?                                             ?                                           
OPTIONS_FOR_ASSEMBLY           ? ?  ?                                             ?                                           
OPTIONS_FOR_LOC_MAINTPLANT     ? ?  ?                                             ?                                           
OPTIONS_FOR_MAINT_ACTIVITYTYPE ? ?  ?                                             ?                                           
OPTIONS_FOR_LOC_WORKCENTER     ? ?  ?                                             ?                                           
OPTIONS_FOR_COSTCENTER         ? ?  ?                                             ?                                           
OPTIONS_FOR_LOC_WBS_ELEMENT    ? ?  ?                                             ?                                           
OPTIONS_FOR_SUPERIOR_NETWORK   ? ?  ?                                             ?                                           
OPTIONS_FOR_SUPERIOR_ACTIVITY  ? ?  ?                                             ?                                           
OPTIONS_FOR_SALES_ORD          ? ?  ?                                             ?                                           
OPTIONS_FOR_S_ORD_ITEM         ? ?  ?                                             ?                                           
OPTIONS_FOR_SALESORG           ? ?  ?                                             ?                                           
OPTIONS_FOR_DISTR_CHAN         ? ?  ?                                             ?                                           
OPTIONS_FOR_DIVISION           ? ?  ?                                             ?                                           
OPTIONS_FOR_BUS_AREA           ? ?  ?                                             ?                                           
OPTIONS_FOR_COMP_CODE          ? ?  ?                                             ?                                           
OPTIONS_FOR_ASSET_NO           ? ?  ?                                             ?                                           
OPTIONS_FOR_PLSECTN            ? ?  ?                                             ?                                           
OPTIONS_FOR_MAINTLOC           ? ?  ?                                             ?                                           
OPTIONS_FOR_SORTFIELD          ? ?  ?                                             ?                                           
OPTIONS_FOR_ABCINDIC           ? ?  ?                                             ?                                           
OPTIONS_FOR_PLANGROUP          ? ?  ?                                             ?                                           
OPTIONS_FOR_MAINTROOM          ? ?  ?                                             ?                                           
OPTIONS_FOR_OPERATION_TASKLIST ? ?  ?                                             ?                                           
OPTIONS_FOR_RESP_PLANNER_GROUP ? ?  ?                                             ?                                           
OPTIONS_FOR_CUSTOMER           ? ?  ?                                             ?                                           
OPTIONS_FOR_PERMIT             ? ?  ?                                             ?                                           
OPTIONS_FOR_PROFIT_CENTER      ? ?  ?                                             ?                                           
OPTIONS_FOR_PAGING_STATUS      ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_COST_CENTER  ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_ORDERID      ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_COSTOBJECT   ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_WBS_ELEMENT  ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_NETWORK      ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_SALES_ORD    ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_S_ORD_ID     ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_GL_ACCOUNT   ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_BUS_AREA     ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_ASSET_NO     ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_SUB_NUMBER   ? ?  ?                                             ?                                           
OPTIONS_FOR_RECVG_MATERIAL     ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_MISCELLANEOUS  ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_MATERIAL       ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_PLANT          ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_DOCUMENT_NO    ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_DOCUMENT_TYPE  ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_DOCUMENT_PART  ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_DOCUMENT_VERSN ? ?  ?                                             ?                                           
OPTIONS_FOR_PRT_EQUIPMENT      ? ?  ?                                             ?                                           

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
В общем-то хочется обратить внимание на следующее, по умолчанию эта бапишка всегда отрабатывает по заказам созданным в текущем месяце, т.е. к примеру если вы задали показать все заказы с базисной датой начала, ну например 1 квартал 2009 года, то туда попадут только заказы ТОРО у которых фактическое время ввода в систему текущий месяц вызова функции. Для исправления такой ситуации перед вызовом ставьте что-то типа:

Код: You are not allowed to view links. Register or Login
* Документы выбираются от истоков 1990 года
  lt_ranges-field_name = 'SHOW_DOCS_WITH_FROM_DATE'.
  lt_ranges-low_value = '19990101'.
  APPEND lt_ranges.
* До царя Гороха :) но думаю все помрут раньше
  lt_ranges-field_name = 'SHOW_DOCS_WITH_TO_DATE'.
  lt_ranges-low_value = '99991231'.
  APPEND lt_ranges.