[ |../../index.htm#lansa/lansa048_5060.htm]
Visual LANSA フレームワーク ガイド > アドバンスド・トピック > Visual LANSAフレームワークのオブジェクトに関するクエリーの記述 > 例 > UF_TRVRS - VLFオブジェクトのシグナル送信
UF_TRVRS - VLFオブジェクトのシグナル送信
*============================================================================= * * コンポーネント :UF_TRVRS * タイプ :再利用可能コンポーネント * 祖先 :PRIM_OBJT * * 注意事項: この UF_ (ユーザー・フレームワーク) コンポーネントは、フレームワーク提供のバージョンです。 * 修正することも可能ですが、その場合はこのコンポーネントのソースコードを自分のコンポーネントにコピーし、 * そのコピーを変更するようにしてください。 * そうすることで、Visual LANSA フレームワークをアッップグレードした場合に、自分が加えた変更が * 意に反して失われてしまうことを防げます。 * このコンポーネントの独自のバージョンを作成する際の詳細は、このコンポーネントの最後の部分を * 参照してください。 * * 以下はサンプル・コードです。 - 明示的にも暗示的にも保証されません。 * このプログラムやこの派生物のいずれも、実稼働やエンドユーザーの環境で使用することは一切できません。 * * * ============================================================================= * * この再利用可能パーツを利用して、VLF オブジェクトに信号送信できます。 - UF_QRY01, 02 03 を参照 * ============================================================================= FUNCTION OPTIONS(*DIRECT) Begin_Com Role(*EXTENDS #PRIM_OBJT) Define_Com Class(#VF_SY001) Name(#USYSTEM) Reference(*dynamic) scope(*Application) Define_Com Class(#VF_FP001) Name(#UFRAMEWORK) Reference(*dynamic) scope(*Application) Define_Com #VF_AC009 #TempVF_AC009 Reference(*Dynamic) Define_Com #VF_FP001 #TempVF_FP001 Reference(*Dynamic) Define_Com #VF_FP002 #TempVF_FP002 Reference(*Dynamic) Define_Com #VF_FP003 #TempVF_FP003 Reference(*Dynamic) Define_Com #VF_FPM09 #TempVF_FPM09 Reference(*Dynamic) Define_Com #VF_FPM10 #TempVF_FPM10 Reference(*Dynamic) Define_Com #VF_FPM14 #TempVF_FPM14 Reference(*Dynamic) Define_Com #VF_FP025 #TempVF_FP025 Reference(*Dynamic) Define_Com #VF_FP026 #TempVF_FP026 Reference(*Dynamic) Define_Com #VF_FPM27 #TempVF_FPM27 Reference(*Dynamic) Define_Com #VF_FPM28 #TempVF_FPM28 Reference(*Dynamic) Define_Com #VF_FPM29 #TempVF_FPM29 Reference(*Dynamic) Define_Com #VF_FPM30 #TempVF_FPM30 Reference(*Dynamic) * ======================================================================= * 別タイプのオブジェクトが見つかる度にユーザー・アプリケーションに信号を送り返すイベント * ======================================================================= Define_evt Framework define_map *input #VF_FP001 #Reference Pass(*By_Reference) Define_evt Application define_map *input #VF_FP002 #Reference Pass(*By_Reference) define_map *input #VF_FP001 #VisParent1 Pass(*By_Reference) Define_evt BusinessObject define_map *input #VF_FP003 #Reference Pass(*By_Reference) define_map *input #VF_FP001 #VisParent1 Pass(*By_Reference) define_map *input #VF_FP002 #VisParent2 Pass(*By_Reference) Define_evt CommandDefinition define_map *input #VF_FPM09 #Reference Pass(*By_Reference) Define_evt CommandReference define_map *input #VF_FPM10 #Reference Pass(*By_Reference) define_map *input #VF_FPM09 #CommandDefinition Pass(*By_Reference) define_map *input #VF_FP001 #VisParent1 Pass(*By_Reference) define_map *input #VF_FP002 #VisParent2 Pass(*By_Reference) define_map *input #VF_FP003 #VisParent3 Pass(*By_Reference) Define_evt Filter define_map *input #VF_FPM14 #Reference Pass(*By_Reference) define_map *input #VF_FP001 #VisParent1 Pass(*By_Reference) define_map *input #VF_FP002 #VisParent2 Pass(*By_Reference) define_map *input #VF_FP003 #VisParent3 Pass(*By_Reference) define_evt RAMPContainer define_map *input #VF_FP025 #Reference Pass(*By_Reference) define_evt RAMPSession define_map *input #VF_FP026 #Reference Pass(*By_Reference) define_evt RAMPDestination define_map *input #VF_FPM27 #Reference Pass(*By_Reference) define_evt RAMPJunction define_map *input #VF_FPM28 #Reference Pass(*By_Reference) define_evt RAMPSpecial define_map *input #VF_FPM29 #Reference Pass(*By_Reference) define_evt RAMPScript define_map *input #VF_FPM30 #Reference Pass(*By_Reference) * ======================================================================= * ユーザー・アプリケーションに公開されているメソッド * ======================================================================= Mthroutine Name(uTraverseFramework) Invoke #Com_Owner.uEnumerateOBJECT Reference(#uFramework) Parent(*null) Invoke #Com_Owner.uEnumerateOBJECT Reference(#uSystem.uNodeContainer) Parent(*null) Endroutine * ======================================================================= * 非公開の内部メソッド * ======================================================================= Mthroutine Name(uEnumerateOBJECT) Access(*PRIVATE) Define_Map For(*input) Class(#VF_AC001) Name(#Reference) Pass(*By_Reference) Define_Map For(*input) Class(#VF_AC001) Name(#Parent) Pass(*By_Reference) Define_com #vf_elindx #EnumIndex Define_com #vf_elmbri #EnumMemberGUID If_ref #Reference is_not(*null) * Handle this object bvy signalling each type found Case #Reference.uClass * フレームワーク When (= VF_FP001) set_ref #TempVF_FP001 (*Dynamic #Reference) Signal Framework Reference(#TempVF_FP001) * アプリケーション When (= VF_FP002) set_ref #TempVF_FP002 (*Dynamic #Reference) set_ref #TempVF_FP001 (*Dynamic #TempVF_FP002.uAuthorityParent) Signal Application Reference(#TempVF_FP002) VisParent1(#TempVF_FP001) * ビジネス・オブジェクト When (= VF_FP003) set_ref #TempVF_FP003 (*Dynamic #Reference) set_ref #TempVF_FP002 (*Dynamic #TempVF_FP003.uAuthorityParent) set_ref #TempVF_FP001 (*Dynamic #TempVF_FP002.uAuthorityParent) Signal BusinessObject Reference(#TempVF_FP003) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) * RAMP コンテナ When (= VF_FP025) set_ref #TempVF_FP025 (*Dynamic #Reference) Signal RAMPContainer Reference(#TempVF_FP025) * RAMP セッション When (= VF_FP026) set_ref #TempVF_FP026 (*Dynamic #Reference) Signal RAMPSession Reference(#TempVF_FP026) Endcase * すべてのメンバーをエミュレート If_ref #Reference.ecMemberManagers is_not(*null) For #Manager #Reference.ecMemberManagers #EnumIndex := 0 Dowhile (#Manager.Enumerate_MEMBERS(#Reference #EnumIndex #EnumMemberGUID 7)) #Manager.Currentmemberguid := #EnumMemberGUID Case #Manager.VF_FPNNNClass * コマンド定義 When (= VF_FP009) set_ref #TempVF_FPM09 (*Dynamic #Manager) Signal CommandDefinition Reference(#TempVF_FPM09) * コマンド参照 When (= VF_FP010) set_ref #TempVF_FPM10 (*Dynamic #Manager) #uFrameWork.VF_FP009Manager.CurrentmemberGUID := #TempVF_FPM10.uCommandGUID set_ref #TempVF_AC009 (*Dynamic #TempVF_FPM10.uLinkedOwner) If_Ref Com(#TempVF_AC009) Is(*INSTANCE_OF #VF_FP001) * フレームワーク・コマンド set_ref #TempVF_FP003 *null set_ref #TempVF_FP002 *null set_ref #TempVF_FP001 (*Dynamic #TempVF_AC009) ENDIF If_Ref Com(#TempVF_AC009) Is(*INSTANCE_OF #VF_FP002) * アプリケーション・コマンド set_ref #TempVF_FP003 *null set_ref #TempVF_FP002 (*Dynamic #TempVF_AC009) set_ref #TempVF_FP001 (*Dynamic #TempVF_FP002.uAuthorityParent) ENDIF If_Ref Com(#TempVF_AC009) Is(*INSTANCE_OF #VF_FP003) * ビジネス・オブジェクト・コマンド set_ref #TempVF_FP003 (*Dynamic #TempVF_AC009) set_ref #TempVF_FP002 (*Dynamic #TempVF_FP003.uAuthorityParent) set_ref #TempVF_FP001 (*Dynamic #TempVF_FP002.uAuthorityParent) ENDIF Signal CommandReference Reference(#TempVF_FPM10) CommandDefinition(#uFrameWork.VF_FP009Manager) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003) * フィルター When (= VF_FP014) set_ref #TempVF_FPM14 (*Dynamic #Manager) set_ref #TempVF_FP003 (*Dynamic #Reference) set_ref #TempVF_FP002 (*Dynamic #TempVF_FP003.uAuthorityParent) set_ref #TempVF_FP001 (*Dynamic #TempVF_FP002.uAuthorityParent) Signal Filter Reference(#TempVF_FPM14) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003) * RAMP デスティネーション When (= VF_FP027) set_ref #TempVF_FPM27 (*Dynamic #Manager) Signal RAMPDestination Reference(#TempVF_FPM27) * RAMP ジャンクション When (= VF_FP028) set_ref #TempVF_FPM28 (*Dynamic #Manager) Signal RAMPJunction Reference(#TempVF_FPM28) * RAMP スペシャル When (= VF_FP029) set_ref #TempVF_FPM29 (*Dynamic #Manager) Signal RAMPSpecial Reference(#TempVF_FPM29) * RAMP スクリプト When (= VF_FP030) set_ref #TempVF_FPM30 (*Dynamic #Manager) Signal RAMPScript Reference(#TempVF_FPM30) Endcase Endwhile Endfor Endif * すべての子を再帰的にエミュレート If_ref #Reference.ecchildcollection is_not(*null) For #Child in(#Reference.ecchildcollection) Invoke #Com_Owner.uEnumerateOBJECT Reference(#Child) Parent(#Reference) Endfor Endif Endif Endroutine END_COM
[ |../../index.htm#lansa/lansa048_5060.htm]