Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 25x 25x 4x 4x 21x 21x 21x 1x 67x 67x 67x 67x 2x 2x 2x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 2x 2x 2x 2x 2x 2x 2x 2x 2x 67x 67x | import {xmlToArray} from "../xml_utils";
export type DynproField = {
name: string,
type: string,
length: number,
vislength: number,
line: number,
column: number,
height: number,
};
export type DynproHeader = {
number: string,
description: string,
nextScreen: string,
type: string,
fields: DynproField[],
};
export type DynproList = DynproHeader[];
function parseNumber(value: string | undefined): number {
if (value === undefined) {
return 0;
}
return parseInt(value, 10);
}
export function parseDynpros(parsed: any): DynproList {
const dynpros: DynproList = [];
const xmlDynpros = parsed.abapGit?.["asx:abap"]?.["asx:values"]?.DYNPROS;
if (xmlDynpros !== undefined) {
for (const d of xmlToArray(xmlDynpros.item)) {
const fields: DynproField[] = [];
for (const f of xmlToArray(d.FIELDS?.RPY_DYFATC)) {
fields.push({
name: f.NAME,
type: f.TYPE,
length: parseNumber(f.LENGTH),
vislength: parseNumber(f.VISLENGTH),
line: parseNumber(f.LINE),
column: parseNumber(f.COLUMN),
height: parseNumber(f.HEIGHT),
});
}
dynpros.push({
number: d.HEADER.SCREEN,
description: d.HEADER.DESCRIPT,
nextScreen: d.HEADER.NEXTSCREEN,
type: d.HEADER.TYPE,
fields: fields,
});
}
}
return dynpros;
} |