If you're doing a keyword test, unless the parameter has the "optional" check box set, it will always have a value. If it has the "optional" set, then it uses the "default" value. So there will always be a value.
So, your detection should be whether or not the parameter has whatever you have set as the default value. Tht will indicate that the parameter has not been set by an external call.
Robert Martin [Hall of Fame] Please consider giving a Kudo if I write good stuff ----
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group. I love good food, good books, good friends, and good fun.