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 57 58 59 60 61 62 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 40x 40x 6x 6x 34x 34x 34x 1x 114x 114x 114x 114x 4x 4x 1x 1x 3x 4x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 3x 4x 4x 4x 4x 4x 4x 4x 4x 114x 114x | import {xmlToArray} from "../xml_utils";
export type DynproField = {
name: string,
type: string,
contType: 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)) {
if (d?.HEADER === undefined) {
continue;
}
const fields: DynproField[] = [];
for (const f of xmlToArray(d.FIELDS?.RPY_DYFATC)) {
fields.push({
name: f.NAME,
type: f.TYPE,
contType: f.CONT_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;
}
|