ユーザーによる動的な呼び出しを可能にして、スマート デバイス アプリケーションの柔軟性を向上させます。呼び出されるオブジェクトは、設計時または実行時に定義できます。
Call( {&var | ATT:att} [ {, parm} … ] )
&var または att の文字列の値は、<サポートされるタイプ>:<オブジェクト名> [ ?<パラメーター> [ {, parm} … ] ] の形式で表されます。
- sd (Dashboard、Work With for Smart Devices パターンインスタンス、Panel for Smart Devices)
- prc (REST プロシージャー)
- wbp (Web オブジェクト)
例:
&Object = "sd:WorkWithDevicesPerson.Person.Detail?"+&PersonId.ToString().Trim()
call(&object)
1) この例では、ユーザーがリストから人を選択すると、プロシージャーで実行するコントロールに応じて、ユーザーまたはプログラムフローをリダイレクトします。制御したいのは、選択したユーザーが、必要なデータをすべて持っていることです。
手順は次のとおりです: 人のリストを表示するスマートデバイス用の Work With を作成し、グリッドの既定のアクションを編集して、ユーザーがリスト内の人を選択するとアクションが実行されるようにします。
グリッドの選択イベント // MissingData は、選択された人の情報がすべて揃っているかどうかをチェックし、それに応じてユーザーを次の画面にリダイレクトするプロシージャーです。Event 'Select'
Composite
MissingData.Call(PersonId,&object)
call(&object,PersonId)
EndComposite
EndEvent MissingData プロシージャーのコード // このプロシージャーは、人の情報をチェックして、リダイレクト先のスマートデバイス用の Work With のパネルで使用される変数オブジェクトを返します。for each
where PersonId = &PersonId
&PersonAddress = PersonAddress
&PersonName = PersonName
&PersonPhone = PersonPhone
&PersonPhoto = PersonPhoto
endfor
do case
case &PersonAddress.IsEmpty()
&ok = false
case &PersonName.IsEmpty()
&ok = false
case &PersonPhone.IsEmpty()
&ok = False
case &PersonPhoto.IsEmpty()
&ok = false
otherwise
&ok = true
endcase
if &ok = false
&Object = "sd:WorkWithDevicesPerson.Person.Detail.Update"
else
&Object = "wbp:ViewPersonWeb"
endif 2) 固定パラメーターを持つディスパッチャーEvent 'ViewPerson'
Composite
&Object = GetPersonDetailLayout(PersonType)
call(&Object,PersonId)
EndComposite
EndEvent
procedure GetPersonDetailLayout
Parm(in:&PersonType,out:&Object);
if &PersonType = Type.Person
&Object = "sd:WorkWithDevicesPerson.Person.Detail"
else
&Object = "sd:WorkWithDevicesDean.Dean.Detail"
endif 3) 動的なパラメーターが割り当てられたディスパッチャーEvent 'ViewPerson'
Composite
&Object = GetPersonDetailLayout(PersonType,PersonId)
call(&Object)
EndComposite
EndEvent
procedure GetPersonDetailLayout
Parm(in:&PersonType,in:&PersonId,out:&Object);
if &PersonType = Type.Person
&Object = "sd:WorkWithDevicesPerson.Person.Detail?"+&PersonId.ToString().Trim()
else
&Object = "sd:WorkWithDevicesDean.Dean.Detail?"+&PersonId.ToString().Trim()+","+&SecurityLevelId.ToString().Trim()
endif
オブジェクトを呼び出す別の方法
1) Link 関数を使用
&Object = WorkWithDevicesPerson.Person.Detail.link(&PersonId.ToString().Trim())
call(&object)
2) 直接呼び出し (Call コマンドを参照)
WorkWithDevicesPerson.Person.Detail(&PersonId.ToString().Trim())
オブジェクト: スマートデバイスのプラットフォーム: Android、iOS
Call コマンド ネイティブ モバイル アプリケーションのイベントからの Work With のエレメントの呼び出し
|