Создание эвристики с использованием собственного алгоритма
Можно запрограммировать эвристические алгоритмы самостоятельно, связать их с системой SAP APO и определить эвристику. Это позволяет конкретно адресовать требования планирования.

Собственная эвристика является расширением процессов планирования SAP. Обратите внимание на то, что даже незначительные изменения или расширения в процессах планирования могут привести к неожиданным результатам. Любые изменения или расширения вносятся под ответственность пользователя. SAP не несет ответственность за дефекты или неисправности, возникшие в результате изменений или расширений программного обеспечения.
В интегрированной системной среде с системой R/3 следует обратить особое внимание на поддержку изменений в данных планирования и заказах интерфейсом CIF и системой R/3. Например, изменение контрольных партий в SAP APO по умолчанию невозможно. Изменение, создание или удаление контрольных партий с использованием собственной эвристики невозможно, поскольку SAP не поддерживает перенос этих изменений из SAP APO в систему R/3.

Для некоторых типов стандартной эвристики SAP обеспечивает BAdI (например, для эвристики планирования заготовки). Перед программированием собственной эвристики проверьте, возможно ли использование BAdI. Для получения дополнительной информации см. руководство по внедрению для производственного и точного планирования (PP/DS), раздел Business Add-In для PP/DS.
1. Скопируйте группу функций /SAPAPO/RRP_HEUR_TEMPLATE под новым именем. Она используется в качестве основной программы для подэкрана, на котором выполняется ведение параметров настройки для эвристики. Появится диалоговое окно со списком функциональных модулей, которые требуется скопировать. Скопируйте и переименуйте следующие функциональные модули:
o Функциональный модуль для алгоритма /SAPAPO/HEU_TEMPLATE
o Функциональный модуль получения /SAPAPO/HEU_TEMPLATE_DATAGET.
Этот функциональный модуль используется для чтения структуры вывода на экране.
o Функциональный модуль настройки /SAPAPO/HEU_TEMPLATE_DATASET.
Этот функциональный модуль используется для ввода в структуру вывода экрана.
2. Создайте структуру вывода для подэкрана в ABAP-словаре. Структуру /SAPAPO/HEU_TEMPLATE_D1000_STR можно использовать в качестве шаблона.
3. Замените имя структуры вывода шаблона на собственное имя структуры вывода везде, где оно встречается в группе функций, в т.ч.:
o В Top include
o В функциональном модуле настройки
o В функциональном модуле получения
o На подэкране 1000
4. Подэкран 1000 используется для ведения параметров настройки эвристики.
5. Структура /SAPAPO/HEUR_SETTINGS содержит таблицы, в которых параметры настройки для эвристики сохраняются в базе данных. Используйте одну из существующих таблиц или создайте собственную структуру INCLUDE в структуре таблицы /SAPAPO/HEURCUST.
6. Измените функциональные модули, чтобы обеспечить, что соответствующие параметры настройки, сохраненные в структуре /SAPAPO/HEUR_SETTINGS, скопированы в соответствующие поля структуры вывода для подэкрана.
7. Измените функциональный модуль получения, чтобы обеспечить копирование полей структуры вывода в соответствующие поля структуры /SAPAPO/HEUR_SETTINGS.
8. Запрограммируйте функциональный модуль алгоритма.
Интерфейс содержит параметры импорта и экспорта.
Параметры импорта включают следующее:
o Релевантные параметры настройки /SAPAPO/HEUR_SETTINGS
o Плановая версия: необходимо убедиться в том, что данные перенесены в SAP liveCache.
o Версия моделирования: необходимо убедиться в том, что данные перенесены в SAP liveCache.
o Структура /SAPAPO/HEUR_OBJECT_KEYS. Эта структура содержит таблицы с объектами планирования (ресурсы, сети линий, продукты, заказы и операции).
o Параметры экспорта включают следующее:
o (E_CHANGED_OBJECTS). Это необходимо для обновления объектов в основной программе.
o (E_OBJECT_KEYS). Этот параметр используется во время фонового планирования для переноса объектов из одного шага обработки в другой.

Примером программирования алгоритмов является алгоритм для стандартной эвристики SAP001 Стандартная эвристика расчета размера партии.
9. Для интеграции эвристики в систему SAP APO введите в таблицу /SAPAPO/HEURFUNC следующие объекты:
o Функциональный модуль для алгоритма планирования
o Группа функций
o Подэкран
o Функциональный модуль настройки
o Функциональный модуль получения
В таблице /SAPAPO/HEURFUNC также необходимо определить следующее:
o Место выполнения эвристики – например, в прогоне производственного планирования или в календарном графике точного планирования
o Объекты, для которых можно выполнить эвристику – например, для продуктов или ресурсов
o Является ли данная эвристика эвристикой планирования заготовки, которую можно указать в основной записи продукта местоположения в качестве эвристики продуктов
Это можно определить в поле PROD_HEUR. После прогона планирования с использованием эвристики метка файла ППМ для продукта сбрасывается только в том случае, если эвристика отмечена в таблице как эвристика продуктов.
10. Создайте эвристику в пользовательской настройке производственного и точного планирования на основе заданного алгоритма. Для получения дополнительной информации об определении эвристики см. руководство по внедрению (IMG) для производственного и точного планирования (PP/DS).

Можно создать и подключить системную документацию для алгоритма.
● Для создания документации создайте текст диалога с использованием транзакции SE61. Создайте и активируйте текст.
● Для подключения документации с алгоритмом выполните действия, указанные в SAP-ноте 613189.
● Для вызова системной документации в пользовательской настройке производственного и точного планирования (PP/DS) в разделе Ведение эвристики щелкните по пиктограмме Информация для этой эвристики.