Just to confuse things, there are two mechanisms for using CallApplicWait and passing parameters to the called screen.
First though - CallApplicWait is (according to my unreliable memory) available only in the SDK (aka VBTools).
In Customization code, you use Launch, which performs the same function, but has a different name and different syntax.
--=-=-=-=
The "name of application" is the name of the screen that you are calling.
With the "old parameter passing method, you appended the parameters afther the screen name.
With the "new method", you use the ApplSetParmValue call(s) to pass the parameters.
Then you use CallApplicWait to fire up the other screen.
ApplSetParmValue is , essentially, a way of passing parameters, giving them a Name.
The code in the receiving screen then retrieves them using the same Name.
That is useful if VBTools code and Customization code are both passing Named parameters.
Provided they use different Names, there will be no clash.
-=-=
Here's some sample code of mine.
First, in a VBTools screen, there is this code.
It passes two parameters, which are contained in variables bXFAAPARTran.APARBatNbr and bXFAAPARTran.APARRefNbr.
Then it calls a screen whose name is in variable lsProggy.
lsProggy will contain, for example "0301000".
Here;s the code
Call ApplSetParmValue("FA_VBT", "BatNbr", SParm(bXFAAPARTran.APARBatNbr))
Call ApplSetParmValue("FA_VBT", "RefNbr", SParm(bXFAAPARTran.APARRefNbr))
Call CallApplicWait(lsProggy, "")
Then, this customization code (BSL) fires in the receiving screen's Form Display event.
lsBatNbr = ApplGetParmValue("FA_VBT", "BatNbr")
lsRefNbr = ApplGetParmValue("FA_VBT", "RefNbr")
'----call MessBox(lsBatNbr & "/" & lsRefNbr, mb_ok, "Form Load Debug")
if len(Trim$(lsRefNbr)) > 0 then
serr1 = SetObjectValue("cBatNbrb", lsBatNbr)
serr1 = SetObjectValue("cRefNbrh", lsRefNbr)
end if
----
Does that make things any clearer?
Barry