Источник:
http://sashanazarov.blogspot.com/201...-field-is.html
==============
Sometimes I need to find out where a particular table field is modified in the X++ code. Normally, I call "Used by" form, filter records out by Reference = Write, put manually breakpoints in the corresponding X++ lines and then run the scenario to see which breakpoint is eventually hit.
However, if there are too many cross-references, I don't bother adding breakpoints manually. Instead, I add a button to
xRefReferencesUsedByTypedTree form, set its
Label property to "Add breakpoint" and
MultiSelect to "Yes", and then override its
clicked method like this:
void clicked
()
{
container breakpoints;
boolean enable
= true;
xRefReferences xRefReferencesLocal;
breakpoints
= infolog.
breakpoint();
for (xRefReferencesLocal
= XRefReferences_ds.
getFirst(true) ?
XRefReferences_ds.
getFirst(true) : XRefReferences_ds.
cursor();
xRefReferencesLocal;
xRefReferencesLocal
= XRefReferences_ds.
getNext())
{
if (xRefReferencesLocal.
line > 0)
{
breakpoints
+= [xRefReferencesLocal.
path()];
breakpoints
+= [xRefReferencesLocal.
line];
breakpoints
+= [enable
];
}
}
infolog.
breakpoint(breakpoints
);
}
Now, after opening "Used by" form, I simply click "Ctrl+A" and then the new "Add breakpoint" button, so all required breakpoints are in place.
Источник:
http://sashanazarov.blogspot.com/201...-field-is.html