UF_TRVRS - VLFオブジェクトのシグナルの送信

Visual LANSA

UF_TRVRS - VLFオブジェクトのシグナルの送信


·         =============================================================================
*
* Component :UF_TRVRS
* Type :Reusable Component
* Ancestor :PRIM_OBJT
*
* PLEASE NOTE:This UF_ (User Framework) component is the shipped version.You
* may choose to modify it.You should do this by copying the source
* code of this component into your own component and then change
* the copied version.This will prevent the accidental loss of your
* changes if you upgrade your Visual LANSA framework version.Refer
* to the end of this component for more details about making your
* own version of this component.
*
* This is example code only - No warranty is expressed or implied.
* Neither this program, nor any derivative of it, should be ever be used in
* production or end user environments.
*
* =============================================================================
*
* This reusable part can be used to signal VLF objects - See 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)

* =======================================================================
* Events signalled back to user application for each type of object found
* =======================================================================

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)

* =======================================================================
* This is the method exposed to the user application
* =======================================================================

Mthroutine Name(uTraverseFramework)

Invoke #Com_Owner.uEnumerateOBJECT Reference(#uFramework) Parent(*null)

Invoke #Com_Owner.uEnumerateOBJECT Reference(#uSystem.uNodeContainer) Parent(*null)

Endroutine

* =======================================================================
* This method is internal and not exposed
* =======================================================================

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

* Framework

When (= VF_FP001)
set_ref #TempVF_FP001 (*Dynamic #Reference)
Signal Framework Reference(#TempVF_FP001)

* Application

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)

* Business Object

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 Container

When (= VF_FP025)
set_ref #TempVF_FP025 (*Dynamic #Reference)
Signal RAMPContainer Reference(#TempVF_FP025)

* RAMP Session

When (= VF_FP026)
set_ref #TempVF_FP026 (*Dynamic #Reference)
Signal RAMPSession Reference(#TempVF_FP026)

Endcase

* Enumerate all members

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

* Command Definition

When (= VF_FP009)
set_ref #TempVF_FPM09 (*Dynamic #Manager)
Signal CommandDefinition Reference(#TempVF_FPM09)

* Command reference

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)
* Framework Command
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)
* Application Command
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)
* Business Object Command
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)

* Filter

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 Destination

When (= VF_FP027)
set_ref #TempVF_FPM27 (*Dynamic #Manager)
Signal RAMPDestination Reference(#TempVF_FPM27)

* RAMP Junction

When (= VF_FP028)
set_ref #TempVF_FPM28 (*Dynamic #Manager)
Signal RAMPJunction Reference(#TempVF_FPM28)

* RAMP Special

When (= VF_FP029)
set_ref #TempVF_FPM29 (*Dynamic #Manager)
Signal RAMPSpecial Reference(#TempVF_FPM29)

* RAMP Script

When (= VF_FP030)
set_ref #TempVF_FPM30 (*Dynamic #Manager)
Signal RAMPScript Reference(#TempVF_FPM30)

Endcase

Endwhile

Endfor
Endif

* Enumerate all children recursively

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