7.117.2 SRVROUTINE の使用例

例 1 – レコードを戻す

例 2 – データのリストを戻す

例 3 – 応答レコードを戻す

例 1 – レコードを戻す

以下は、識別子を受け取って、レコードを表すフィールドのグループを返す簡単なルーチンです。

呼び出し元によって FETCH の成否が決定できるように、#IO$STS を戻す追加の出力マップがあることに注意してください。

Group_By Name(#Employee) Fields(#Empno #Surname #Givename #Address1 #Address2 #Address3 #Postcode #Phonehme #Phonebus #Deptment #Section #Salary #Startdte #Termdate)
Srvroutine Name(GetEmployee)
Field_Map For(*Input) Field(#Empno)
Group_Map For(*output) Group(#Employee)
Field_Map For(*output) Field(#io$sts) Parameter_Name(Status)
 
Fetch Fields(#Employee) From_File(pslmst) With_Key(#Empno)
 
Endroutine
 

例 2 – データのリストを戻す

以下は、ファイル内のすべてのレコードを含むリストを戻す簡単なルーチンです。

Def_List Name(#Employees) Fields(#Empno #Surname #Givename #Address1 #Address2 #Address3 #Postcode #Phonehme #Phonebus #Deptment #Section #Salary #Startdte #Termdate) Type(*working) Entrys(999)
 
Srvroutine Name(GetEmployees)
List_Map For(*Output) List(#Employees)
 
Select Fields(#Employees) From_File(pslmst)
Add_Entry To_List(#Employees)
Endselect
 
Endroutine
 

例 3 – 応答レコードを戻す

次はイメージをダウンロードする際の一般的なルーチンです。この例では、イメージはデータベース・テーブルから読み込まれます。そして、応答オブジェクトにイメージ・データが入れられ、ファイル名が設定されます。

Srvroutine Name(DownloadImage) Response(#Response)
Field_Map For(*Input) Field(#Empno)
Field_Map For(*output) Field(#io$sts) Parameter_Name(Status)
 
Fetch Fields(#GiveName #Surname) From_File(pslmst) With_Key(#empno)
 
If_Status Is(*okay)
 
Fetch Fields(#empimg) From_File(pslimg) With_Key(#empno)
 
If_Status Is(*okay)
 
#Response.ContentFile := #Empimg.Filename
#Response.AttachmentFileName := #Surname + #GiveName + #Empno
 
Endif
 
Endif
Endroutine