7.85.2 LIST_MAP の使用例

次の簡単なルーチンでは、1 つのフィールドを受信して、ヘッダー・レコードと子レコードを含むリストのグループを返します。

Group_By Name(#GRP_Empl) Fields(#Empno #Surname #Givename #Address1 #Address2 #Address3 #Postcode #Phonehme #Phonebus #Deptment #Section #Salary #Startdte #Termdate)
Srvroutine Name(GetEmployee)
Field_Map For(*Input) Field(#Empno) Parameter_Name(ID)
Group_Map For(*output) Group(#GRP_Empl) Parameter_Name(Employee)
List_Map For(*output) List(#LstSkills) Parameter_Name(Skills)
Field_Map For(*output) Field(#io$sts) Parameter_Name(Status)
 
Fetch Fields(#Employee) From_File(pslmst) With_Key(#Empno)
 
If_Status is(*Okay)
 
   Selectlist Named(#LstSkills) from_file(PSLSKL) With_key(#EMPNO)
      Add_entry to_list(#LstSkills)
   Endselect
 
Endif
 
Endroutine
 

より分かりやすい名前にするための、PARAMETER_NAME の使い方に注目してください。このルーチンが実行されると、次のようにコーディングすることができます。

Define_Com Class(#Server.GetEmployee) Name(#GetEmployee)
 
#GetEmployee.ExecuteAsync ID(#Xxx) Employee(#Yyy) Skills(#Zzz)