Compare commits
4
Commits
33dcb989d3
...
44bc7f7fea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44bc7f7fea | ||
|
|
f60bcef583 | ||
|
|
e7abb0a08a | ||
|
|
cfb60e5e4b |
@@ -0,0 +1,19 @@
|
||||
# Dependency Updates Checklist
|
||||
|
||||
Whenever any `package.json` (root, `client/`, or `sas/`) or lockfile is modified, run the same checks CI runs before pushing:
|
||||
|
||||
1. **npm audit** (must be clean for prod deps):
|
||||
```bash
|
||||
npm audit --omit=dev # in repo root
|
||||
cd sas && npm audit --omit=dev
|
||||
cd ../client && npm audit --omit=dev
|
||||
```
|
||||
Fix with `npm audit fix`, targeted `overrides` in `package.json`, or version bumps — never `npm audit fix --force` blindly, as it can introduce breaking changes.
|
||||
|
||||
2. **License checker** (client only):
|
||||
```bash
|
||||
cd client && npm run license-checker
|
||||
```
|
||||
If a new dependency fails, either add its SPDX id to the `onlyAllow` list in `client/licenseChecker.js` (if the license is acceptable, e.g. permissive ones like `BlueOak-1.0.0`) or add the specific package to `excludePackages` with justification. Data Controller ships on-prem, so only OSI-approved permissive licenses are acceptable for production dependencies.
|
||||
|
||||
Both checks run in `.gitea/workflows/build.yaml` (`Check audit` and `Licence checker` steps) and will fail the build if skipped locally.
|
||||
@@ -8,7 +8,7 @@ const check = (cwd) => {
|
||||
start: cwd,
|
||||
excludePrivatePackages: true,
|
||||
onlyAllow:
|
||||
'AFLv2.1;Apache 2.0;Apache-2.0;Apache*;Artistic-2.0;0BSD;BSD*;BSD-2-Clause;BSD-3-Clause;CC0-1.0;CC-BY-3.0;CC-BY-4.0;ISC;MIT;MPL-2.0;ODC-By-1.0;Python-2.0;Unlicense;',
|
||||
'AFLv2.1;Apache 2.0;Apache-2.0;Apache*;Artistic-2.0;BlueOak-1.0.0;0BSD;BSD*;BSD-2-Clause;BSD-3-Clause;CC0-1.0;CC-BY-3.0;CC-BY-4.0;ISC;MIT;MPL-2.0;ODC-By-1.0;Python-2.0;Unlicense;',
|
||||
excludePackages:
|
||||
'@cds/city@1.1.0;@handsontable/angular-wrapper@16.0.1;@handsontable/angular-wrapper@17.1.0;@handsontable/angular-wrapper@18.0.0;handsontable@^16.0.1;handsontable@16.2.0;handsontable@17.1.0;handsontable@18.0.0;hyperformula@2.7.1;hyperformula@3.0.0;hyperformula@3.1.0;hyperformula@3.2.0;hyperformula@3.3.0;jackspeak@3.4.3;path-scurry@1.11.1;package-json-from-dist@1.0.1;buffers@0.1.1'
|
||||
},
|
||||
|
||||
Generated
+494
-304
File diff suppressed because it is too large
Load Diff
+5
-1
@@ -147,6 +147,10 @@
|
||||
"overrides": {
|
||||
"ajv": "8.18.0",
|
||||
"uuid": "11.1.1",
|
||||
"lighthouse": "13.4.0"
|
||||
"lighthouse": "13.4.0",
|
||||
"exceljs": {
|
||||
"archiver": "^8.0.0",
|
||||
"unzipper": "^0.12.5"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,8 @@ export interface ColumnDetail {
|
||||
LENGTH: number
|
||||
NAME: string
|
||||
TYPE: string
|
||||
VARNUM: number
|
||||
// No longer sent by viewdata.sas — optional for legacy responses.
|
||||
VARNUM?: number
|
||||
}
|
||||
|
||||
export interface Approver {
|
||||
|
||||
@@ -55,8 +55,8 @@ describe('VaFilterService', () => {
|
||||
'SOME_DATETIME'
|
||||
]
|
||||
const cols = [
|
||||
{ NAME: 'SOME_CHAR', DDTYPE: 'CHARACTER' },
|
||||
{ NAME: 'SOME_NUM', DDTYPE: 'NUMERIC' },
|
||||
{ NAME: 'SOME_CHAR', DDTYPE: 'C' },
|
||||
{ NAME: 'SOME_NUM', DDTYPE: 'N' },
|
||||
{ NAME: 'SOME_TIME', DDTYPE: 'TIME' },
|
||||
{ NAME: 'SOME_DATE', DDTYPE: 'DATE' },
|
||||
{ NAME: 'SOME_DATETIME', DDTYPE: 'DATETIME' }
|
||||
|
||||
@@ -163,14 +163,20 @@ export class VaFilterService {
|
||||
|
||||
/**
|
||||
* SAS data-type kind of a column spec. DDTYPE carries
|
||||
* TIME/DATE/DATETIME/NUMERIC/CHARACTER; checked DATETIME-before-DATE (substring).
|
||||
* TIME/DATE/DATETIME in full, with C/N for CHARACTER/NUMERIC (legacy
|
||||
* responses may still carry the full strings); checked DATETIME-before-DATE
|
||||
* (substring).
|
||||
*/
|
||||
private columnKind(col: any): VaColumnKind {
|
||||
const ddtype = (col?.DDTYPE ?? '').toString().toUpperCase()
|
||||
if (ddtype.includes('DATETIME')) return 'datetime'
|
||||
if (ddtype.includes('DATE')) return 'date'
|
||||
if (ddtype.includes('TIME')) return 'time'
|
||||
if (ddtype.includes('NUMERIC') || (col?.TYPE ?? '') === 'num') {
|
||||
if (
|
||||
ddtype === 'N' ||
|
||||
ddtype.includes('NUMERIC') ||
|
||||
(col?.TYPE ?? '') === 'num'
|
||||
) {
|
||||
return 'numeric'
|
||||
}
|
||||
return 'char'
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
export interface Col {
|
||||
NAME: string
|
||||
VARNUM: number
|
||||
// No longer sent by getdata.sas (dropped to trim the COLS payload) —
|
||||
// column order in the array is authoritative. Optional for legacy responses.
|
||||
VARNUM?: number
|
||||
LABEL: string
|
||||
FMTNAME: string
|
||||
DDTYPE: string
|
||||
|
||||
@@ -743,7 +743,7 @@ const makeCol = (name: string, varnum: number): Col =>
|
||||
VARNUM: varnum,
|
||||
LABEL: name,
|
||||
FMTNAME: '',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
TYPE: '',
|
||||
CLS_RULE: 'READ',
|
||||
MEMLABEL: '',
|
||||
@@ -865,7 +865,7 @@ const example_dqRules: any = [
|
||||
const example_cols = [
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
DESC: 'dropdown_desc',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -878,7 +878,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'NUMERIC',
|
||||
DDTYPE: 'N',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -891,7 +891,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'NUMERIC',
|
||||
DDTYPE: 'N',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -904,7 +904,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -917,7 +917,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -930,7 +930,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -943,7 +943,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'CHARACTER',
|
||||
DDTYPE: 'C',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -995,7 +995,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'NUMERIC',
|
||||
DDTYPE: 'N',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
@@ -1008,7 +1008,7 @@ const example_cols = [
|
||||
},
|
||||
{
|
||||
CLS_RULE: 'READ',
|
||||
DDTYPE: 'NUMERIC',
|
||||
DDTYPE: 'N',
|
||||
DESC: '',
|
||||
TYPE: '',
|
||||
FMTNAME: '',
|
||||
|
||||
@@ -44,10 +44,9 @@ const data = {
|
||||
cols: [
|
||||
{
|
||||
NAME: "PRIMARY_KEY_FIELD",
|
||||
VARNUM: 1,
|
||||
LABEL: "PRIMARY_KEY_FIELD",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -55,10 +54,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_BESTNUM",
|
||||
VARNUM: 9,
|
||||
LABEL: "SOME_BESTNUM",
|
||||
FMTNAME: "BEST",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -66,10 +64,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_CHAR",
|
||||
VARNUM: 2,
|
||||
LABEL: "SOME_CHAR",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -77,7 +74,6 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DATE",
|
||||
VARNUM: 5,
|
||||
LABEL: "SOME_DATE",
|
||||
FMTNAME: "DATE",
|
||||
DDTYPE: "DATE",
|
||||
@@ -88,7 +84,6 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DATETIME",
|
||||
VARNUM: 6,
|
||||
LABEL: "SOME_DATETIME",
|
||||
FMTNAME: "DATETIME",
|
||||
DDTYPE: "DATETIME",
|
||||
@@ -99,10 +94,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DROPDOWN",
|
||||
VARNUM: 3,
|
||||
LABEL: "SOME_DROPDOWN",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -110,10 +104,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_HARDSELECT",
|
||||
VARNUM: 10,
|
||||
LABEL: "SOME_HARDSELECT",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -121,10 +114,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_NUM",
|
||||
VARNUM: 4,
|
||||
LABEL: "SOME_NUM",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -132,10 +124,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_SHORTNUM",
|
||||
VARNUM: 8,
|
||||
LABEL: "SOME_SHORTNUM",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -143,7 +134,6 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_TIME",
|
||||
VARNUM: 7,
|
||||
LABEL: "SOME_TIME",
|
||||
FMTNAME: "TIME",
|
||||
DDTYPE: "TIME",
|
||||
@@ -154,10 +144,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "READONLY_COL",
|
||||
VARNUM: 11,
|
||||
LABEL: "READONLY_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Read-only: default value inserted on add-row, not editable",
|
||||
@@ -165,10 +154,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "HIDDEN_COL",
|
||||
VARNUM: 12,
|
||||
LABEL: "HIDDEN_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Hidden: invisible in grid but submitted; default on add-row",
|
||||
@@ -176,10 +164,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "ROUND_COL",
|
||||
VARNUM: 13,
|
||||
LABEL: "ROUND_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Round: edited values rounded Excel-style to 2 decimals",
|
||||
@@ -187,10 +174,9 @@ const data = {
|
||||
},
|
||||
{
|
||||
NAME: "NUMFMT_COL",
|
||||
VARNUM: 14,
|
||||
LABEL: "NUMFMT_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Number format: displayed as EUR currency (value unchanged)",
|
||||
|
||||
@@ -9,37 +9,33 @@ _webout=`{"SYSDATE" : "26SEP22"
|
||||
{
|
||||
"NAME": "PRIMARY_KEY_FIELD",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 1,
|
||||
"LABEL": "PRIMARY_KEY_FIELD",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_BESTNUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 9,
|
||||
"LABEL": "SOME_BESTNUM",
|
||||
"FMTNAME": "BEST",
|
||||
"FORMAT": "BEST.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_CHAR",
|
||||
"LENGTH": 32767,
|
||||
"VARNUM": 2,
|
||||
"LABEL": "SOME_CHAR",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32767.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_DATE",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 5,
|
||||
"LABEL": "SOME_DATE",
|
||||
"FMTNAME": "DATE",
|
||||
"FORMAT": "DATE9.",
|
||||
@@ -49,7 +45,6 @@ _webout=`{"SYSDATE" : "26SEP22"
|
||||
{
|
||||
"NAME": "SOME_DATETIME",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 6,
|
||||
"LABEL": "SOME_DATETIME",
|
||||
"FMTNAME": "DATETIME",
|
||||
"FORMAT": "DATETIME19.",
|
||||
@@ -59,37 +54,33 @@ _webout=`{"SYSDATE" : "26SEP22"
|
||||
{
|
||||
"NAME": "SOME_DROPDOWN",
|
||||
"LENGTH": 128,
|
||||
"VARNUM": 3,
|
||||
"LABEL": "SOME_DROPDOWN",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$128.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_NUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 4,
|
||||
"LABEL": "SOME_NUM",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_SHORTNUM",
|
||||
"LENGTH": 4,
|
||||
"VARNUM": 8,
|
||||
"LABEL": "SOME_SHORTNUM",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "4.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_TIME",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 7,
|
||||
"LABEL": "SOME_TIME",
|
||||
"FMTNAME": "TIME",
|
||||
"FORMAT": "TIME8.",
|
||||
|
||||
@@ -68,10 +68,9 @@ let webouts = {
|
||||
cols: [
|
||||
{
|
||||
NAME: "PRIMARY_KEY_FIELD",
|
||||
VARNUM: 1,
|
||||
LABEL: "PRIMARY_KEY_FIELD",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -80,10 +79,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_BESTNUM",
|
||||
VARNUM: 9,
|
||||
LABEL: "SOME_BESTNUM",
|
||||
FMTNAME: "BEST",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -92,10 +90,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_CHAR",
|
||||
VARNUM: 2,
|
||||
LABEL: "Some Character Column",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -104,7 +101,6 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DATE",
|
||||
VARNUM: 5,
|
||||
LABEL: "Some Date",
|
||||
FMTNAME: "DATE",
|
||||
DDTYPE: "DATE",
|
||||
@@ -116,7 +112,6 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DATETIME",
|
||||
VARNUM: 6,
|
||||
LABEL: "SOME_DATETIME",
|
||||
FMTNAME: "DATETIME",
|
||||
DDTYPE: "DATETIME",
|
||||
@@ -128,10 +123,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_DROPDOWN",
|
||||
VARNUM: 3,
|
||||
LABEL: "SOME_DROPDOWN",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -140,10 +134,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_HARDSELECT",
|
||||
VARNUM: 10,
|
||||
LABEL: "SOME_HARDSELECT",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -152,10 +145,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_NUM",
|
||||
VARNUM: 4,
|
||||
LABEL: "",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -164,10 +156,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_SHORTNUM",
|
||||
VARNUM: 8,
|
||||
LABEL: "SOME_SHORTNUM",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -176,7 +167,6 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SOME_TIME",
|
||||
VARNUM: 7,
|
||||
LABEL: "SOME_TIME",
|
||||
FMTNAME: "TIME",
|
||||
DDTYPE: "TIME",
|
||||
@@ -188,10 +178,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "READONLY_COL",
|
||||
VARNUM: 11,
|
||||
LABEL: "READONLY_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Read-only: default value inserted on add-row, not editable",
|
||||
@@ -200,10 +189,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "HIDDEN_COL",
|
||||
VARNUM: 12,
|
||||
LABEL: "HIDDEN_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Hidden: invisible in grid but submitted; default on add-row",
|
||||
@@ -212,10 +200,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "ROUND_COL",
|
||||
VARNUM: 13,
|
||||
LABEL: "ROUND_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Round: edited values rounded Excel-style to 2 decimals",
|
||||
@@ -224,10 +211,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "NUMFMT_COL",
|
||||
VARNUM: 14,
|
||||
LABEL: "NUMFMT_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "Number format: displayed as EUR currency (value unchanged)",
|
||||
@@ -236,10 +222,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "REGEX_HARD_COL",
|
||||
VARNUM: 15,
|
||||
LABEL: "REGEX_HARD_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "HARDREGEX: must be a valid email address or submission is blocked",
|
||||
@@ -248,10 +233,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "REGEX_SOFT_COL",
|
||||
VARNUM: 16,
|
||||
LABEL: "REGEX_SOFT_COL",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "SOFTREGEX: should be a valid UK postcode, shown as a yellow warning if not, but can still submit",
|
||||
@@ -404,10 +388,9 @@ let webouts = {
|
||||
cols: [
|
||||
{
|
||||
NAME: "DD_LONGDESC",
|
||||
VARNUM: 6,
|
||||
LABEL: "DD_LONGDESC",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -416,10 +399,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_OWNER",
|
||||
VARNUM: 7,
|
||||
LABEL: "DD_OWNER",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -428,10 +410,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_RESPONSIBLE",
|
||||
VARNUM: 8,
|
||||
LABEL: "DD_RESPONSIBLE",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -440,10 +421,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_SENSITIVITY",
|
||||
VARNUM: 9,
|
||||
LABEL: "DD_SENSITIVITY",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -452,10 +432,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_SHORTDESC",
|
||||
VARNUM: 5,
|
||||
LABEL: "DD_SHORTDESC",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -464,10 +443,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_SOURCE",
|
||||
VARNUM: 4,
|
||||
LABEL: "DD_SOURCE",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -476,10 +454,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DD_TYPE",
|
||||
VARNUM: 3,
|
||||
LABEL: "DD_TYPE",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -488,10 +465,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "TX_FROM",
|
||||
VARNUM: 1,
|
||||
LABEL: "TX_FROM",
|
||||
FMTNAME: "datetime",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -499,10 +475,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "TX_TO",
|
||||
VARNUM: 2,
|
||||
LABEL: "TX_TO",
|
||||
FMTNAME: "datetime",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -682,10 +657,9 @@ let webouts = {
|
||||
cols: [
|
||||
{
|
||||
NAME: "LAST_SEEN_DT",
|
||||
VARNUM: 2,
|
||||
LABEL: "LAST_SEEN_DT",
|
||||
FMTNAME: "date",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -693,10 +667,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "REGISTERED_DT",
|
||||
VARNUM: 3,
|
||||
LABEL: "REGISTERED_DT",
|
||||
FMTNAME: "date",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -704,10 +677,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "USER_ID",
|
||||
VARNUM: 1,
|
||||
LABEL: "USER_ID",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -809,10 +781,9 @@ let webouts = {
|
||||
cols: [
|
||||
{
|
||||
NAME: "AUDIT_LIBDS",
|
||||
VARNUM: 22,
|
||||
LABEL: "AUDIT_LIBDS",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -821,10 +792,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "BUSKEY",
|
||||
VARNUM: 7,
|
||||
LABEL: "BUSKEY",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -833,10 +803,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "CLOSE_VARS",
|
||||
VARNUM: 13,
|
||||
LABEL: "CLOSE_VARS",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -845,10 +814,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "DSN",
|
||||
VARNUM: 4,
|
||||
LABEL: "DSN",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -857,10 +825,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "LIBREF",
|
||||
VARNUM: 3,
|
||||
LABEL: "LIBREF",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -869,10 +836,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "LOADTYPE",
|
||||
VARNUM: 6,
|
||||
LABEL: "LOADTYPE",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -881,10 +847,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "NOTES",
|
||||
VARNUM: 20,
|
||||
LABEL: "NOTES",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -893,10 +858,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "NUM_OF_APPROVALS_REQUIRED",
|
||||
VARNUM: 5,
|
||||
LABEL: "NUM_OF_APPROVALS_REQUIRED",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "NUMERIC",
|
||||
DDTYPE: "N",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -905,10 +869,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "POST_APPROVE_HOOK",
|
||||
VARNUM: 17,
|
||||
LABEL: "POST_APPROVE_HOOK",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -917,10 +880,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "POST_EDIT_HOOK",
|
||||
VARNUM: 15,
|
||||
LABEL: "POST_EDIT_HOOK",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -929,10 +891,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "PRE_APPROVE_HOOK",
|
||||
VARNUM: 16,
|
||||
LABEL: "PRE_APPROVE_HOOK",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -941,10 +902,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "PRE_EDIT_HOOK",
|
||||
VARNUM: 14,
|
||||
LABEL: "PRE_EDIT_HOOK",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -953,10 +913,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "RK_UNDERLYING",
|
||||
VARNUM: 21,
|
||||
LABEL: "RK_UNDERLYING",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -965,10 +924,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SIGNOFF_COLS",
|
||||
VARNUM: 18,
|
||||
LABEL: "SIGNOFF_COLS",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -977,10 +935,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "SIGNOFF_HOOK",
|
||||
VARNUM: 19,
|
||||
LABEL: "SIGNOFF_HOOK",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -989,7 +946,6 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "TX_FROM",
|
||||
VARNUM: 1,
|
||||
LABEL: "TX_FROM",
|
||||
FMTNAME: "DATETIME",
|
||||
DDTYPE: "DATETIME",
|
||||
@@ -1000,7 +956,6 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "TX_TO",
|
||||
VARNUM: 2,
|
||||
LABEL: "TX_TO",
|
||||
FMTNAME: "DATETIME",
|
||||
DDTYPE: "DATETIME",
|
||||
@@ -1011,10 +966,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "VAR_BUSFROM",
|
||||
VARNUM: 10,
|
||||
LABEL: "VAR_BUSFROM",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -1023,10 +977,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "VAR_BUSTO",
|
||||
VARNUM: 11,
|
||||
LABEL: "VAR_BUSTO",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -1035,10 +988,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "VAR_PROCESSED",
|
||||
VARNUM: 12,
|
||||
LABEL: "VAR_PROCESSED",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -1047,10 +999,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "VAR_TXFROM",
|
||||
VARNUM: 8,
|
||||
LABEL: "VAR_TXFROM",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
@@ -1059,10 +1010,9 @@ let webouts = {
|
||||
},
|
||||
{
|
||||
NAME: "VAR_TXTO",
|
||||
VARNUM: 9,
|
||||
LABEL: "VAR_TXTO",
|
||||
FMTNAME: "",
|
||||
DDTYPE: "CHARACTER",
|
||||
DDTYPE: "C",
|
||||
CLS_RULE: "READ",
|
||||
MEMLABEL: "",
|
||||
DESC: "",
|
||||
|
||||
@@ -31,37 +31,33 @@ let webouts = {
|
||||
{
|
||||
"NAME": "PRIMARY_KEY_FIELD",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 1,
|
||||
"LABEL": "PRIMARY_KEY_FIELD",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_BESTNUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 9,
|
||||
"LABEL": "SOME_BESTNUM",
|
||||
"FMTNAME": "BEST",
|
||||
"FORMAT": "BEST.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_CHAR",
|
||||
"LENGTH": 32767,
|
||||
"VARNUM": 2,
|
||||
"LABEL": "Some Character Column",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32767.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_DATE",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 5,
|
||||
"LABEL": "Some Date",
|
||||
"FMTNAME": "DATE",
|
||||
"FORMAT": "DATE9.",
|
||||
@@ -71,7 +67,6 @@ let webouts = {
|
||||
{
|
||||
"NAME": "SOME_DATETIME",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 6,
|
||||
"LABEL": "SOME_DATETIME",
|
||||
"FMTNAME": "DATETIME",
|
||||
"FORMAT": "DATETIME19.",
|
||||
@@ -81,37 +76,33 @@ let webouts = {
|
||||
{
|
||||
"NAME": "SOME_DROPDOWN",
|
||||
"LENGTH": 128,
|
||||
"VARNUM": 3,
|
||||
"LABEL": "SOME_DROPDOWN",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$128.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_NUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 4,
|
||||
"LABEL": "",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_SHORTNUM",
|
||||
"LENGTH": 4,
|
||||
"VARNUM": 8,
|
||||
"LABEL": "SOME_SHORTNUM",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "4.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "SOME_TIME",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 7,
|
||||
"LABEL": "SOME_TIME",
|
||||
"FMTNAME": "TIME",
|
||||
"FORMAT": "TIME8.",
|
||||
@@ -3093,117 +3084,105 @@ let webouts = {
|
||||
{
|
||||
"NAME": "DSN",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 3,
|
||||
"LABEL": "Dataset Name (32 chars)",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "IS_DIFF",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 9,
|
||||
"LABEL": "Did value change? (1/0/-1). Always -1 for appends and deletes.",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "IS_PK",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 8,
|
||||
"LABEL": "Is Primary Key Field? (1/0)",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "KEY_HASH",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 4,
|
||||
"LABEL": "MD5 Hash of primary key values (pipe seperated)",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "LIBREF",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 2,
|
||||
"LABEL": "Library Reference (8 chars)",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$8.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "LOAD_REF",
|
||||
"LENGTH": 36,
|
||||
"VARNUM": 1,
|
||||
"LABEL": "unique load reference",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$36.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "MOVE_TYPE",
|
||||
"LENGTH": 1,
|
||||
"VARNUM": 6,
|
||||
"LABEL": "Either (A)ppended, (D)eleted or (M)odified",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$1.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "NEWVAL_CHAR",
|
||||
"LENGTH": 32765,
|
||||
"VARNUM": 14,
|
||||
"LABEL": "New (character) value",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32765.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "NEWVAL_NUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 12,
|
||||
"LABEL": "New (numeric) value",
|
||||
"FMTNAME": "BEST",
|
||||
"FORMAT": "BEST32.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "OLDVAL_CHAR",
|
||||
"LENGTH": 32765,
|
||||
"VARNUM": 13,
|
||||
"LABEL": "Old (character) value",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32765.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "OLDVAL_NUM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 11,
|
||||
"LABEL": "Old (numeric) value",
|
||||
"FMTNAME": "BEST",
|
||||
"FORMAT": "BEST32.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "PROCESSED_DTTM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 7,
|
||||
"LABEL": "Processed at timestamp",
|
||||
"FMTNAME": "E8601DT",
|
||||
"FORMAT": "E8601DT26.6",
|
||||
@@ -3213,22 +3192,20 @@ let webouts = {
|
||||
{
|
||||
"NAME": "TGTVAR_NM",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 5,
|
||||
"LABEL": "Target variable name (32 chars)",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "TGTVAR_TYPE",
|
||||
"LENGTH": 1,
|
||||
"VARNUM": 10,
|
||||
"LABEL": "Either (C)haracter or (N)umeric",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$1.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
}
|
||||
],
|
||||
"dsmeta": [
|
||||
@@ -4426,12 +4403,12 @@ let webouts = {
|
||||
]
|
||||
, "cols":
|
||||
[
|
||||
{"NAME":"ALERT_DS" ,"LENGTH":32 ,"VARNUM":4 ,"LABEL":"ALERT_DS" ,"FMTNAME":"" ,"FORMAT":"$32." ,"TYPE":"C" ,"DDTYPE":"CHARACTER" }
|
||||
,{"NAME":"ALERT_EVENT" ,"LENGTH":20 ,"VARNUM":2 ,"LABEL":"ALERT_EVENT" ,"FMTNAME":"" ,"FORMAT":"$20." ,"TYPE":"C" ,"DDTYPE":"CHARACTER" }
|
||||
,{"NAME":"ALERT_LIB" ,"LENGTH":8 ,"VARNUM":3 ,"LABEL":"ALERT_LIB" ,"FMTNAME":"" ,"FORMAT":"$8." ,"TYPE":"C" ,"DDTYPE":"CHARACTER" }
|
||||
,{"NAME":"ALERT_USER" ,"LENGTH":100 ,"VARNUM":5 ,"LABEL":"ALERT_USER" ,"FMTNAME":"" ,"FORMAT":"$100." ,"TYPE":"C" ,"DDTYPE":"CHARACTER" }
|
||||
,{"NAME":"TX_FROM" ,"LENGTH":8 ,"VARNUM":1 ,"LABEL":"TX_FROM" ,"FMTNAME":"DATETIME" ,"FORMAT":"DATETIME19.3" ,"TYPE":"N" ,"DDTYPE":"DATETIME" }
|
||||
,{"NAME":"TX_TO" ,"LENGTH":8 ,"VARNUM":6 ,"LABEL":"TX_TO" ,"FMTNAME":"DATETIME" ,"FORMAT":"DATETIME19.3" ,"TYPE":"N" ,"DDTYPE":"DATETIME" }
|
||||
{"NAME":"ALERT_DS" ,"LENGTH":32 ,"LABEL":"ALERT_DS" ,"FMTNAME":"" ,"FORMAT":"$32." ,"TYPE":"C" ,"DDTYPE":"C" }
|
||||
,{"NAME":"ALERT_EVENT" ,"LENGTH":20 ,"LABEL":"ALERT_EVENT" ,"FMTNAME":"" ,"FORMAT":"$20." ,"TYPE":"C" ,"DDTYPE":"C" }
|
||||
,{"NAME":"ALERT_LIB" ,"LENGTH":8 ,"LABEL":"ALERT_LIB" ,"FMTNAME":"" ,"FORMAT":"$8." ,"TYPE":"C" ,"DDTYPE":"C" }
|
||||
,{"NAME":"ALERT_USER" ,"LENGTH":100 ,"LABEL":"ALERT_USER" ,"FMTNAME":"" ,"FORMAT":"$100." ,"TYPE":"C" ,"DDTYPE":"C" }
|
||||
,{"NAME":"TX_FROM" ,"LENGTH":8 ,"LABEL":"TX_FROM" ,"FMTNAME":"DATETIME" ,"FORMAT":"DATETIME19.3" ,"TYPE":"N" ,"DDTYPE":"DATETIME" }
|
||||
,{"NAME":"TX_TO" ,"LENGTH":8 ,"LABEL":"TX_TO" ,"FMTNAME":"DATETIME" ,"FORMAT":"DATETIME19.3" ,"TYPE":"N" ,"DDTYPE":"DATETIME" }
|
||||
]
|
||||
, "dsmeta":
|
||||
[
|
||||
@@ -4520,67 +4497,60 @@ let webouts = {
|
||||
{
|
||||
"NAME": "BASE_COL",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 4,
|
||||
"LABEL": "BASE_COL",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "BASE_DS",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 3,
|
||||
"LABEL": "BASE_DS",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "BASE_LIB",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 2,
|
||||
"LABEL": "BASE_LIB",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$8.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "RULE_ACTIVE",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 7,
|
||||
"LABEL": "RULE_ACTIVE",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "8.",
|
||||
"TYPE": "N",
|
||||
"DDTYPE": "NUMERIC"
|
||||
"DDTYPE": "N"
|
||||
},
|
||||
{
|
||||
"NAME": "RULE_TYPE",
|
||||
"LENGTH": 32,
|
||||
"VARNUM": 5,
|
||||
"LABEL": "RULE_TYPE",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$32.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "RULE_VALUE",
|
||||
"LENGTH": 128,
|
||||
"VARNUM": 6,
|
||||
"LABEL": "RULE_VALUE",
|
||||
"FMTNAME": "",
|
||||
"FORMAT": "$128.",
|
||||
"TYPE": "C",
|
||||
"DDTYPE": "CHARACTER"
|
||||
"DDTYPE": "C"
|
||||
},
|
||||
{
|
||||
"NAME": "TX_FROM",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 1,
|
||||
"LABEL": "TX_FROM",
|
||||
"FMTNAME": "DATETIME",
|
||||
"FORMAT": "DATETIME19.3",
|
||||
@@ -4590,7 +4560,6 @@ let webouts = {
|
||||
{
|
||||
"NAME": "TX_TO",
|
||||
"LENGTH": 8,
|
||||
"VARNUM": 8,
|
||||
"LABEL": "TX_TO",
|
||||
"FMTNAME": "DATETIME",
|
||||
"FORMAT": "DATETIME19.3",
|
||||
@@ -5395,10 +5364,10 @@ let webouts = {
|
||||
const v = JSON.parse(webouts.MPE_X_TEST)
|
||||
|
||||
v.cols.push(
|
||||
{ NAME: "READONLY_COL", LENGTH: 200, VARNUM: 11, LABEL: "READONLY_COL", FMTNAME: "", FORMAT: "$200.", TYPE: "C", DDTYPE: "CHARACTER" },
|
||||
{ NAME: "HIDDEN_COL", LENGTH: 200, VARNUM: 12, LABEL: "HIDDEN_COL", FMTNAME: "", FORMAT: "$200.", TYPE: "C", DDTYPE: "CHARACTER" },
|
||||
{ NAME: "ROUND_COL", LENGTH: 8, VARNUM: 13, LABEL: "ROUND_COL", FMTNAME: "", FORMAT: "BEST.", TYPE: "N", DDTYPE: "NUMERIC" },
|
||||
{ NAME: "NUMFMT_COL", LENGTH: 8, VARNUM: 14, LABEL: "NUMFMT_COL", FMTNAME: "", FORMAT: "BEST.", TYPE: "N", DDTYPE: "NUMERIC" }
|
||||
{ NAME: "READONLY_COL", LENGTH: 200, LABEL: "READONLY_COL", FMTNAME: "", FORMAT: "$200.", TYPE: "C", DDTYPE: "C" },
|
||||
{ NAME: "HIDDEN_COL", LENGTH: 200, LABEL: "HIDDEN_COL", FMTNAME: "", FORMAT: "$200.", TYPE: "C", DDTYPE: "C" },
|
||||
{ NAME: "ROUND_COL", LENGTH: 8, LABEL: "ROUND_COL", FMTNAME: "", FORMAT: "BEST.", TYPE: "N", DDTYPE: "N" },
|
||||
{ NAME: "NUMFMT_COL", LENGTH: 8, LABEL: "NUMFMT_COL", FMTNAME: "", FORMAT: "BEST.", TYPE: "N", DDTYPE: "N" }
|
||||
)
|
||||
|
||||
v.viewdata = v.viewdata.map((row, i) => ({
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
<h5> cols </h5>
|
||||
Contains column level attributes.
|
||||
@li NAME - column name
|
||||
@li VARNUM - var position. https://core.sasjs.io/mp__getcols_8sas.html
|
||||
@li LABEL - var label. https://core.sasjs.io/mp__getcols_8sas.html
|
||||
@li FMTNAME - derived format. https://core.sasjs.io/mp__getcols_8sas.html
|
||||
@li DDTYPE - derived dropdown. https://core.sasjs.io/mp__getcols_8sas.html
|
||||
@li DDTYPE - derived dropdown. C=CHARACTER, N=NUMERIC, else DATE / TIME /
|
||||
DATETIME. https://core.sasjs.io/mp__getcols_8sas.html
|
||||
@li CLS_RULE - values include:
|
||||
- EDIT - the column is editable
|
||||
- READ - the column should be readonly
|
||||
@@ -488,14 +488,18 @@ select upcase(loadtype)
|
||||
/* extract col info */
|
||||
%mp_getcols(&libds, outds=cols1)
|
||||
|
||||
/* join with cls rules */
|
||||
/* join with cls rules. Trim COLS payload in the SQL below - DDTYPE
|
||||
C=CHARACTER N=NUMERIC (dates kept in full), VARNUM dropped (client
|
||||
relies on column order, not position) */
|
||||
proc sql;
|
||||
create table work.cols as
|
||||
select a.NAME
|
||||
,a.VARNUM
|
||||
,coalesce(c.desc,a.NAME) as LABEL
|
||||
,a.FMTNAME
|
||||
,a.DDTYPE
|
||||
,case a.DDTYPE
|
||||
when 'CHARACTER' then 'C'
|
||||
when 'NUMERIC' then 'N'
|
||||
else a.DDTYPE end as DDTYPE
|
||||
,case b.cls_hide
|
||||
when 1 then 'HIDE'
|
||||
when 0 then 'EDIT'
|
||||
@@ -503,7 +507,7 @@ create table work.cols as
|
||||
,c.memlabel
|
||||
,c.longdesc
|
||||
,d.colType
|
||||
from work.cols1 a
|
||||
from work.cols1(drop=varnum) a
|
||||
left join work.cls_rules b
|
||||
on a.NAME=b.CLS_VARIABLE_NM
|
||||
left join work.spec c
|
||||
|
||||
@@ -33,7 +33,7 @@ data cols(keep=name type length varnum format label);
|
||||
else if formatl=0 then format=cats(format2,'.');
|
||||
else format=cats(format2,formatl,'.');
|
||||
type='C';
|
||||
ddtype='CHARACTER';
|
||||
ddtype='C';
|
||||
end;
|
||||
else do;
|
||||
if format2='' then format=cats(length,'.');
|
||||
@@ -44,7 +44,7 @@ data cols(keep=name type length varnum format label);
|
||||
if format=:'DATETIME' then ddtype='DATETIME';
|
||||
else if format=:'DATE' then ddtype='DATE';
|
||||
else if format=:'TIME' then ddtype='TIME';
|
||||
else ddtype='NUMERIC';
|
||||
else ddtype='N';
|
||||
end;
|
||||
if label='' then label=name;
|
||||
run;
|
||||
|
||||
@@ -15,13 +15,12 @@
|
||||
<h4> Service Outputs </h4>
|
||||
|
||||
<h5> cols </h5>
|
||||
@li DDTYPE
|
||||
@li DDTYPE - C=CHARACTER, N=NUMERIC, else DATE / TIME / DATETIME
|
||||
@li FORMAT
|
||||
@li LABEL
|
||||
@li LENGTH
|
||||
@li NAME
|
||||
@li TYPE
|
||||
@li VARNUM
|
||||
|
||||
<h5> sasparams </h5>
|
||||
@li FILTER_TEXT
|
||||
@@ -361,11 +360,23 @@ run;
|
||||
)
|
||||
|
||||
%mp_getcols(&libds, outds=cols1)
|
||||
|
||||
/* trim COLS payload in the SQL below - DDTYPE C=CHARACTER N=NUMERIC
|
||||
(dates kept in full), VARNUM dropped (client relies on column order,
|
||||
not position) */
|
||||
proc sql;
|
||||
create table cols(drop=srclabel) as
|
||||
select a.*
|
||||
,coalesce(b.dd_shortdesc,a.srclabel,a.name) as label
|
||||
from cols1(rename=(label=srclabel)) a
|
||||
create table cols as
|
||||
select a.name
|
||||
,a.type
|
||||
,a.length
|
||||
,a.format
|
||||
,a.fmtname
|
||||
,case a.ddtype
|
||||
when 'CHARACTER' then 'C'
|
||||
when 'NUMERIC' then 'N'
|
||||
else a.ddtype end as ddtype
|
||||
,coalesce(b.dd_shortdesc,a.label,a.name) as label
|
||||
from cols1 a
|
||||
left join &mpelib..mpe_datadictionary
|
||||
(where=(&dc_dttmtfmt. < tx_to
|
||||
and dd_source ? %upcase("&orig_libds")
|
||||
|
||||
Reference in New Issue
Block a user