Hiding Inverse Relationship entries project in DTL graphics
Hi
I have an a Ens.Request subclass (Invoice) that has a relationship property to another persistent class (InvoiceItems), with properties of its own and the inverse relationship defined referring back to Invoice.
When building a DTL with these classes, the Relationship’s inverse relationship (Invoice, within InvoiceDetails) is displayed.
Can this be hidden ?
thanks
Product version: IRIS 2021.2
I don't know if this will work, but did you try setting XMLPROJECTION="NONE" on the inverse property?
I didn't actually,.. , because, whenever I've used persistent classes with relationship properties and projected instances in code (using the XML.Adaptor) - I've never seen the inverse property show up in the XML.
I could try it though...
I dug around a bit.
It works from the dictionary classes to create the table being displayed.
I did see in there that if you add an XData block to your class called "FormDefinition" and omit that property, then it will not display it.
Have a look at this:
InterSystems CSP AutoForm
I also saw that the table generator goes up to 4 levels deep of recursive processing of a message's properties.
Hi Stefan,
I wonder what led you to determine that the DTL is being drawn by using InterSystems CSP AutoForm (%CSP.Util.AutoFormGenerator), because, I added the XDATA block to the child class to include only the child class's properties as suggested, (and omitting the inverse property):
{
<field property="childPropA"/>
<field property="childPropB"/>
...
}
but the inverse property, in the DTL, still appears. (also confirmed defining XMLPROJECTION="NONE' on the inverse relationship property also has no effect)
looking at %CSP.Util.AutoFormGenerator, I see my XDATA block definition is being checked, and honored, returning as it should, the list of properties for a form - but this does not seem to end up effecting the DTL Wizard.
Steve
Hi,
Apologies. My mind must have been in the wrong place. I was looking at it from the Ensemble message browser's side for some reason.