It has been a while since I have worked with Oracle Forms, but I have before. When you cannot find a unique match rule for a given control, you can use a ControlChildMatchRule (CCMR) to match a child of that form that is not present on other forms. This might be a label or other control that exists only on one form and not others. This is inefficient in terms of matching, but for a Windows adapter, I haven't been able to measurably detect a degradation in performance whenever I have used this technique. You just need to remember that you need to propagate the CCMR up the chain to the ultimate parent from its greatest grandchild.
We resolved this by changing the match rule for NativeControlName . Instead of straight match we used starts with for all the tree panels.
The first panel has the header name in it which we are finding use the text match rule. All the lower tree-structured panels now matching with NativeControlName (statrts with : ScrollBox; DrawnPanel; FScrollBox instead of ScrollBox167 etc.) until we find the last panel with fields. This way no matter what number it adds to those panels it will be matched when the main panel opened.
Thanks for your idea about using the CCMR .
Another question, is there any way we can give start page dynamically for web application adapter? This oracle forms application has a query parameter in the url which changes for each country, but the screens are same for all countries.