$instancepath

Return the path with which the current component instance is registered.

$instancepath { (InstanceName) }

Parameters

Parameters
Parameter Data Type Description
InstanceName String Name of component instance; optional. If omitted, the current instance is used.

Return Values

  • Name of the path for the current instance in uppercase.
  • Empty string (""), if the current application did not register with the Uniface Router when it started.

Use

Allowed in all component types.

Description

The $instancepath function can be useful to pass addressing information to another component instance.

Starting a Component and Passing Data to an Operation

The detail trigger of a field in the form COMP1 contains the following code. It starts a new instance of the component COMP2, prepares data for the operation TELL_ME_LATER, then hands the data to the operation.

; field DO_IT
trigger detail 
; prepare the data for TELL_ME_LATER
; prepare the my return address

variables
   string MYADRESS
endvariables

newinstance/async "COMP2", "INST2"
DATA = ...
MYADDRESS = "%%$instancepath:%%$instancename"
activate "INST2".TELL_ME_LATER (MYADDRESS, DATA)
end; detail

The operation TELL_ME_LATER does what is required, then sends the result back to the calling instance:

; Component COMP2
; prepare data to be returned

operation TELL_ME_LATER
params
   string RETURN_ADDRESS : IN
   string DATA : IN
endparams

variables
   string DATAOUT
endvariables
...
DATAOUT = ...
postmessage "%%RETURN_ADDRESS", "RESULT", "%%DATAOUT"
end

The message is received by the receiveMessage trigger of COMP1:

;  component COMP1
trigger receiveMessage

selectcase $msgid
   case "RESULT"
      askmess "Result from %%$msginfo("INSTANCENAME") available in message frame."
      putmess "Received the following result from %%$msginfo("SRC") :"
      putmess "%%$msginfo("DATA")"
   case ...
...
endselectcse
end; receiveMessage

Related Topics