Usecase is: employee types tracking id from the label of a return package, the order with all line items is returned in subform, user then selects the returned item from the order and a RETINS document is spit out to the seller...
The order data and tracking id are in a relational database and will be provided to the widget by way of a dynamic vocabulary.
What you can do is break up the workflow in multiple forms and let the first form to query/lookup the tracking id post its results to the second form which retrieves the order. But from your description of the functionality a custom z3c.form in python it's at best prototyping to try to achieve this in easyform instead of writing a custom view with a z3c.form defined in Python.
(b.t.w. Plone/Zope still uses z3c.form 3.x as in z3c.form 4.x there were some breaking changes/deprecations. there is some more information on the z3c.form pypi page. z3c.form · PyPI - One of the removed features are ObjectSubForms
Thank you @fredvd I looked at that by making the first easyform the default document in a folder and then an attempt to use traverse and pass the value to a second form.
This resulted in strange layout artifacts, where the portlets would show under the form. And, the second form resulted in becoming submitted without user interaction... Another approach I then considered was to use custom scripting as an action handler, but I quiclky rejected that from a maintenance perspective.
So if it takes a lot of situps and custom code, I might as well write it on the filesystem. I am now experimenting with the DGFTreeSelect fieldwidget, which is already in use in other parts of the site.