Определение внутренних процедур сервисного интерфейса
После создания файла сервисного интерфейса вы должны определить внутренние процедуры, которые сопоставляются с общедоступными методами бизнес-сущности.
Когда вы определяете или изменяете общедоступные методы для класса бизнес-сущности, вам необходимо определить или изменить соответствующие внутренние процедуры для его сервисного интерфейса.
Количество и типы параметров для внутренней процедуры сервисной службы должны совпадать с параметрами общедоступного метода класса бизнес-сущности, с которым они сопоставляются, за исключением дескриптора набора данных, который возвращается клиенту.
Когда вы определяете выходной параметр, представляющий набор данных в процедуре сервисного интерфейса, вы должны явно указать, что этот параметр является набором данных. Это связано с тем, что вы должны передать данные с сервера клиенту, а не дескриптор или ссылку на набор данных.
Предположим, что определение выходного параметра для набора данных, возвращаемого методом GetData() бизнес-сущности, выглядит следующим образом:
output phds as handle
В этом случае в процедуре сервисного интерфейса необходимо определить выходной параметр следующим образом:
define output parameter dataset-handle phdsCustomerBE.
Рекомендуется использовать префикса «SI_» для имени процедуры. Это даст понять в клиентском коде, что вызывается процедура сервисного интерфейса.
Пример сервисного интерфейса для GetData
Рассмотрим пример определения внутренней процедуры, которая сопоставляется с общедоступным методом GetData () класса бизнес-сущности CustomerBE. Обратите внимание на то, что входные и выходные параметры, определённые для этой процедуры, соответствуют типам и количеству параметров для метода GetData () класса CustomerBE, за исключением дескриптора набора данных. Обратите также внимание, что в качестве типа параметра мы указываем дескриптор набора данных, а не просто дескриптор.
procedure SI_GetData: define input parameter pFilter as character no-undo. define output parameter dataset-handle phdsCustomerBE. /* код для вызова метода бизнес-сущности CustomerBE */ return. end procedure.