The GetMessage method transfers the response from the previous Send() to the instance that the GetMessage method is invoked on. The GetMessage() method is only available for a Class with:
AutomaticEntryCapable = True or IsExternal = True.
To retrieve the response from the previous Send() to <Instance>, AB Suite developers should issue:
<Instance>.GetMessage()
The GetMessage method transfers data returned from a Send, from the target ispec of the external application to the originating application.
The originating and target ispecs must have identical specifications.
Note: When executed in a co-routine, GetMessage sets the built-in segment attribute to NODB and the Glb.HubStatus built-in segment attribute to INVALID.The transfer is not completed if the Glb.Error built-in segment attribute is equal to a value other than the spaces when the GetMessage method is invoked. Changes to value of the Glb.Error built-in segment attribute after the GetMessage method is invoked have no effect on the Send.
Syntax
<<persistent class>>::GetMessage( ) : void
Owner
Any persistent class.
Parameters
None
Example
This example updates/retrieves the SellPrice attribute of the Prod ispec from the DBase1 application.
In DBase1, the Prod ispec has the following Main method:
If Maint = Glb.Inq : For database inquiry
SellPrice := Prod.SellPrice
Recall
EndIn the originating application, where Prod is also defined, the following method is specified:
Prod.Initialize()
Prod.External(true)
Glb.Destination := "DBase1" : Set the destination
Prod.Product := FindProd : Product is the key for Prod
If In_Maint <> Glb.Inq : For database update
Prod.SellPrice := SellPrice
End
Prod.SetMaint(In_Maint)
Prod.Send() : Send the automatic entry
If Glb.Status = "NODB"
Message Attention "DBase1 application not found"
EndExit
If Glb.Status = "*****"
Message Attention "Rejected by DBase1 update program"
EndExit
If Glb.Status = "DATA"
Prod.GetMessage() : Retrieve the response back into Prod.
SellPrice := Prod.SellPrice
Recall
EndExit
If Glb.Status = "BUSY"
Message Attention "DBase1 application busy"
EndExit