The other half of a root cause
v2.55.0 opened the cluster tables. This release walks through the door: the
places a system keeps what it did and what it is set up to do, read as
the tables they are, over plain ADT.
Jobs and spool. vsp jobs list is SM37 with steps — program, variant,
user, the spool each step wrote. vsp spool list|read|export is SP01, and
the content is the TemSe object from TST03 decoded here: records, print
controls, the list format's colour and line-drawing escapes, checked line
for line against what XBP renders. Job logs and file-stored spool are TemSe
in files, so they come over RFC through XBP (vsp jobs log, --via rfc).
Variants. vsp variants REPORT VARIANT is the answer to "what does this
job select": every field with its label, kind, type and value, from the VARI
cluster (values under one RELID, the screen's shape under another) and the
program's selection texts — DD04T when the text says "take the DDIC label".
No RS_VARIANT_CONTENTS, no RFC.
Test data. vsp fmtest MODULE reads what a developer saved in SE37: the
interface as it was, every set's inputs, what came back, the runtime, the
return code. EUFUNC turned out to be version 5 clusters — written by a
pre-Unicode kernel and still on disk after the conversion — and the reader
now takes those too, along with tables inside structure rows, tables of
tables, sorted and hashed tables, bare strings.
Documentation and the IMG. vsp docs read CLASS OBJECT renders SE61
text as Markdown through a new ITF renderer: chapter markers, continued
paragraphs, lists, <ex>/<zh>/<ds>, INCLUDE commands resolved. vsp docs img "cleanup job" finds customizing activities and folders by their titles
and gives the path to each and the transaction; vsp docs activity gives one
activity with its own text.
--layout. A cluster carries types, not names. A DDIC structure name is
read from DD03L (includes resolved, table components followed through
DD40L) and laid over the fields, checked at every leaf; stxl renders
SAPscript text and is STXL's default.
All of it on the MCP side as analyze types: job_list, job_log,
spool_list, spool_read, variants, fm_test_data, documentation,
img_search, img_activity, and cluster_read with layout.
Learned the hard way, fixed for every caller
The ADT data preview wraps a free SQL statement into 255-character ABAP
lines. A literal or a column name cut by the wrap is a syntax error that
names half a word. RunQuery now breaks every statement at blanks outside
literals first. DD03L's INTLEN is characters on some rows and bytes on
others of the same system; lengths come from LENG and DATATYPE.
Full list: CHANGELOG.md.