Несколько слов о соединении вида 027 - Has a prebooking for
В этой заметке я хочу накидать несколько слов о соединении вида 027 - Has a prebooking for, и поделиться своим опытом работы с ним, и исследования его же.
В функциональности SAP LSO при предварительной регистрации работника (объект P) на тип курса (объект D) формируется соединение 027 - "Has a prebooking for" между этими объектами. Таким образом, в системе регистрируется информация о предварительно зарегистрированном на тип курса работнике.
Предварительную регистрацию на тип курса можно выполнить посредством транзакций LSO_PSV1 или PV02
В результате предварительной регистрации сформируется соединение 027 - "Has a prebooking for" в инфо-типе 1001 - "Relationships"
Затем вы создаете курс (объект E), и регистрируете на него работника, который был предварительно зарегистрирован на тип курсов, относящийся к создаваемому курсу
А дальше начинается самое интересное. Довелось мне поработать с не очень "свежей", по уровню последних обновлений системой, в которой, при регистрации работника на курс, соединение 027 удаляется сразу после успешного сохранения регистрации. Соединение 025 - "Is participated in by" между объектами P и E по-прежнему создавалось по факту регистрации работника на курс.
Сначала я допустил, что это есть нормальное поведение системы. Но потом нашел такую же по древности, как и система, в которой я столкнулся с такой ситуацией, SAP Note # 1670696 - Prebooking record gets deleted и устои мои пошатнулись
Вот соответствующий этой ноте кусок кода
Давайте расшифруем, что делает данное "новшество", преподнесенное вендором аж в 2012 году.
Соединение вида 027 между объектами D и P удаляется только при условии, что этого же работника регистрируют на курс, дата начала которого находится позже сформированной записи о предварительной регистрации.
Дата предварительной регистрации 01.05.2017 (соединение 027 между объектами P и D создано с даты 01.05.2017)
Курс создан с даты 28.05.2017
Регистрируем работника на курс. Как результат, соединение 027 удалено, создано соединение 025
Теперь рассмотрим второй случай, когда соединение 027 не удаляется при последующей регистрации на курс
Дата предварительной регистрации 30.05.2017 (соединение 027 между объектами P и D создано с даты 30.05.2017)
Курс создан с даты 28.05.2017
Регистрируем работника. Как результат, соединение 027 не удалено + создано соединение 025
Более сказать по обозначенному выше вопросу мне нечего.