@sap/cds-compiler 2.13.8 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +155 -1594
- package/bin/cdsc.js +144 -66
- package/doc/CHANGELOG_ARCHIVE.md +1592 -0
- package/doc/CHANGELOG_BETA.md +3 -4
- package/doc/CHANGELOG_DEPRECATED.md +35 -1
- package/doc/{DeprecatedOptions.md → DeprecatedOptions_v2.md} +3 -1
- package/doc/Versioning.md +20 -1
- package/lib/api/.eslintrc.json +2 -2
- package/lib/api/main.js +237 -122
- package/lib/api/options.js +17 -88
- package/lib/api/validate.js +12 -16
- package/lib/base/keywords.js +216 -109
- package/lib/base/message-registry.js +152 -37
- package/lib/base/messages.js +145 -83
- package/lib/base/model.js +44 -2
- package/lib/base/optionProcessorHelper.js +19 -0
- package/lib/checks/actionsFunctions.js +7 -5
- package/lib/checks/annotationsOData.js +11 -32
- package/lib/checks/arrayOfs.js +1 -34
- package/lib/checks/cdsPersistence.js +1 -0
- package/lib/checks/elements.js +6 -6
- package/lib/checks/invalidTarget.js +1 -1
- package/lib/checks/nonexpandableStructured.js +1 -1
- package/lib/checks/queryNoDbArtifacts.js +2 -1
- package/lib/checks/selectItems.js +5 -1
- package/lib/checks/types.js +4 -2
- package/lib/checks/utils.js +2 -2
- package/lib/checks/validator.js +4 -5
- package/lib/compiler/assert-consistency.js +16 -10
- package/lib/compiler/base.js +1 -0
- package/lib/compiler/builtins.js +98 -9
- package/lib/compiler/checks.js +22 -70
- package/lib/compiler/define.js +61 -13
- package/lib/compiler/extend.js +79 -14
- package/lib/compiler/finalize-parse-cdl.js +46 -29
- package/lib/compiler/index.js +100 -37
- package/lib/compiler/moduleLayers.js +7 -0
- package/lib/compiler/populate.js +19 -18
- package/lib/compiler/propagator.js +7 -4
- package/lib/compiler/resolve.js +297 -234
- package/lib/compiler/shared.js +107 -102
- package/lib/compiler/tweak-assocs.js +16 -11
- package/lib/compiler/utils.js +5 -0
- package/lib/edm/annotations/genericTranslation.js +93 -21
- package/lib/edm/csn2edm.js +230 -115
- package/lib/edm/edm.js +305 -226
- package/lib/edm/edmPreprocessor.js +509 -438
- package/lib/edm/edmUtils.js +31 -45
- package/lib/gen/Dictionary.json +98 -22
- package/lib/gen/language.checksum +1 -1
- package/lib/gen/language.interp +10 -30
- package/lib/gen/language.tokens +105 -114
- package/lib/gen/languageLexer.interp +1 -34
- package/lib/gen/languageLexer.js +889 -1007
- package/lib/gen/languageLexer.tokens +95 -106
- package/lib/gen/languageParser.js +20786 -22199
- package/lib/json/csnVersion.js +10 -11
- package/lib/json/from-csn.js +59 -51
- package/lib/json/to-csn.js +10 -10
- package/lib/language/antlrParser.js +2 -2
- package/lib/language/docCommentParser.js +62 -39
- package/lib/language/errorStrategy.js +52 -40
- package/lib/language/genericAntlrParser.js +348 -229
- package/lib/language/language.g4 +629 -653
- package/lib/language/multiLineStringParser.js +14 -42
- package/lib/language/textUtils.js +44 -0
- package/lib/main.d.ts +46 -43
- package/lib/main.js +108 -79
- package/lib/model/csnRefs.js +34 -7
- package/lib/model/csnUtils.js +337 -332
- package/lib/model/enrichCsn.js +1 -0
- package/lib/model/revealInternalProperties.js +30 -10
- package/lib/model/sortViews.js +32 -31
- package/lib/modelCompare/compare.js +6 -6
- package/lib/optionProcessor.js +73 -46
- package/lib/render/.eslintrc.json +1 -1
- package/lib/render/DuplicateChecker.js +4 -7
- package/lib/render/manageConstraints.js +70 -2
- package/lib/render/toCdl.js +1042 -882
- package/lib/render/toHdbcds.js +195 -245
- package/lib/render/toRename.js +44 -22
- package/lib/render/toSql.js +225 -241
- package/lib/render/utils/common.js +145 -15
- package/lib/render/utils/sql.js +20 -19
- package/lib/sql-identifier.js +6 -0
- package/lib/transform/db/.eslintrc.json +4 -3
- package/lib/transform/db/associations.js +2 -2
- package/lib/transform/db/cdsPersistence.js +5 -15
- package/lib/transform/db/constraints.js +4 -2
- package/lib/transform/db/expansion.js +22 -16
- package/lib/transform/db/flattening.js +109 -80
- package/lib/transform/db/transformExists.js +7 -7
- package/lib/transform/db/views.js +9 -6
- package/lib/transform/draft/.eslintrc.json +2 -2
- package/lib/transform/draft/db.js +6 -6
- package/lib/transform/draft/odata.js +6 -7
- package/lib/transform/forHanaNew.js +62 -48
- package/lib/transform/forOdataNew.js +49 -50
- package/lib/transform/localized.js +31 -20
- package/lib/transform/odata/toFinalBaseType.js +16 -14
- package/lib/transform/odata/typesExposure.js +146 -198
- package/lib/transform/odata/utils.js +1 -38
- package/lib/transform/transformUtilsNew.js +67 -84
- package/lib/transform/translateAssocsToJoins.js +7 -3
- package/lib/transform/universalCsn/.eslintrc.json +2 -2
- package/lib/transform/universalCsn/coreComputed.js +16 -9
- package/lib/transform/universalCsn/universalCsnEnricher.js +60 -10
- package/lib/utils/file.js +3 -3
- package/lib/utils/moduleResolve.js +13 -6
- package/lib/utils/timetrace.js +20 -21
- package/package.json +35 -4
- package/share/messages/message-explanations.json +2 -1
- package/share/messages/syntax-expected-integer.md +37 -0
- package/doc/ApiMigration.md +0 -237
- package/doc/CommandLineMigration.md +0 -58
- package/doc/ErrorMessages.md +0 -175
- package/doc/FioriAnnotations.md +0 -94
- package/doc/ODataTransformation.md +0 -273
- package/lib/backends.js +0 -529
- package/lib/fix_antlr4-8_warning.js +0 -56
- package/lib/transform/odata/attachPath.js +0 -96
- package/lib/transform/odata/expandStructKeysInAssociations.js +0 -59
- package/lib/transform/odata/generateForeignKeyElements.js +0 -261
- package/lib/transform/odata/referenceFlattener.js +0 -296
- package/lib/transform/odata/sortByAssociationDependency.js +0 -105
- package/lib/transform/odata/structuralPath.js +0 -72
- package/lib/transform/odata/structureFlattener.js +0 -171
package/lib/edm/edmUtils.js
CHANGED
|
@@ -8,31 +8,17 @@ function validateOptions(_options)
|
|
|
8
8
|
{
|
|
9
9
|
if(!_options.isV2 && !_options.isV4)
|
|
10
10
|
{
|
|
11
|
-
// csn2edm expects "
|
|
11
|
+
// csn2edm expects "odataVersion" to be a top-level property of options
|
|
12
12
|
// set to 'v4' as default, override with value from incoming options
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
options.odataFormat = options.toOdata.odataFormat;
|
|
20
|
-
if(options.toOdata.odataContainment)
|
|
21
|
-
options.odataContainment = options.toOdata.odataContainment;
|
|
22
|
-
if(options.toOdata.odataForeignKeys)
|
|
23
|
-
options.odataForeignKeys = options.toOdata.odataForeignKeys;
|
|
24
|
-
if(options.toOdata.odataV2PartialConstr)
|
|
25
|
-
options.odataV2PartialConstr = options.toOdata.odataV2PartialConstr;
|
|
26
|
-
// global flag that indicates whether or not FKs shall be rendered in general
|
|
27
|
-
// V2/V4 flat: yes
|
|
28
|
-
// V4/struct: depending on odataForeignKeys
|
|
29
|
-
options.renderForeignKeys =
|
|
30
|
-
options.version === 'v4' ? options.odataFormat === 'structured' && !!options.odataForeignKeys : true;
|
|
13
|
+
const options = Object.assign({ odataVersion: 'v4'}, _options);
|
|
14
|
+
// global flag that indicates whether or not FKs shall be rendered in general
|
|
15
|
+
// V2/V4 flat: yes
|
|
16
|
+
// V4/struct: depending on odataForeignKeys
|
|
17
|
+
options.renderForeignKeys =
|
|
18
|
+
options.odataVersion === 'v4' ? options.odataFormat === 'structured' && !!options.odataForeignKeys : true;
|
|
31
19
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const v2 = options.version.match(/v2/i) !== null;
|
|
35
|
-
const v4 = options.version.match(/v4/i) !== null;
|
|
20
|
+
const v2 = options.odataVersion.match(/v2/i) !== null;
|
|
21
|
+
const v4 = options.odataVersion.match(/v4/i) !== null;
|
|
36
22
|
|
|
37
23
|
options.v = [v2, v4];
|
|
38
24
|
options.isStructFormat = options.odataFormat && options.odataFormat === 'structured';
|
|
@@ -401,7 +387,7 @@ function finalizeReferentialConstraints(csn, assocCsn, options, info)
|
|
|
401
387
|
if(options.isV2() && intersect(renderedKeys, remainingPrincipalRefs).length !== renderedKeys.length)
|
|
402
388
|
if(options.odataV2PartialConstr) {
|
|
403
389
|
info('odata-spec-violation-constraints',
|
|
404
|
-
['definitions', assocCsn._parent.name, 'elements', assocCsn.name], {
|
|
390
|
+
['definitions', assocCsn._parent.name, 'elements', assocCsn.name], { version: '2.0' });
|
|
405
391
|
}
|
|
406
392
|
else {
|
|
407
393
|
assocCsn._constraints.constraints = {};
|
|
@@ -439,7 +425,7 @@ function finalizeReferentialConstraints(csn, assocCsn, options, info)
|
|
|
439
425
|
if(options.isV2() && intersect(renderedKeys, remainingPrincipalRefs).length !== renderedKeys.length) {
|
|
440
426
|
if(options.odataV2PartialConstr) {
|
|
441
427
|
info('odata-spec-violation-constraints',
|
|
442
|
-
['definitions', assocCsn._parent.name, 'elements', assocCsn.name], {
|
|
428
|
+
['definitions', assocCsn._parent.name, 'elements', assocCsn.name], { version: '2.0' } );
|
|
443
429
|
}
|
|
444
430
|
else {
|
|
445
431
|
assocCsn._constraints.constraints = {};
|
|
@@ -467,7 +453,7 @@ function finalizeReferentialConstraints(csn, assocCsn, options, info)
|
|
|
467
453
|
return (elt &&
|
|
468
454
|
elt.type &&
|
|
469
455
|
(!options.isFlatFormat || options.isFlatFormat && isBuiltinType(elt.type)) &&
|
|
470
|
-
!
|
|
456
|
+
!(elt.type === 'cds.Association' || elt.type === 'cds.Composition') &&
|
|
471
457
|
isEdmPropertyRendered(elt, options));
|
|
472
458
|
}
|
|
473
459
|
}
|
|
@@ -522,12 +508,14 @@ function determineMultiplicity(csn)
|
|
|
522
508
|
return [srcCardinality, tgtCardinality];
|
|
523
509
|
}
|
|
524
510
|
|
|
525
|
-
function mapCdsToEdmType(csn, messageFunctions, isV2=false, isMediaType=false)
|
|
511
|
+
function mapCdsToEdmType(csn, messageFunctions, isV2=false, isMediaType=false, location=undefined)
|
|
526
512
|
{
|
|
513
|
+
if(location === undefined)
|
|
514
|
+
location = csn.$path;
|
|
527
515
|
const { error } = messageFunctions || { error: ()=>true };
|
|
528
516
|
let cdsType = csn.type;
|
|
529
517
|
if(cdsType === undefined) {
|
|
530
|
-
error(null,
|
|
518
|
+
error(null, location, `no type found`);
|
|
531
519
|
return '<NOTYPE>';
|
|
532
520
|
}
|
|
533
521
|
if(!isBuiltinType(cdsType))
|
|
@@ -582,7 +570,7 @@ function mapCdsToEdmType(csn, messageFunctions, isV2=false, isMediaType=false)
|
|
|
582
570
|
*/
|
|
583
571
|
}[cdsType];
|
|
584
572
|
if (edmType == undefined) {
|
|
585
|
-
error(null,
|
|
573
|
+
error(null, location, { type: cdsType }, `No EDM type available for $(TYPE)`);
|
|
586
574
|
}
|
|
587
575
|
if(isV2)
|
|
588
576
|
{
|
|
@@ -590,9 +578,6 @@ function mapCdsToEdmType(csn, messageFunctions, isV2=false, isMediaType=false)
|
|
|
590
578
|
edmType = 'Edm.DateTime';
|
|
591
579
|
if (edmType === 'Edm.TimeOfDay')
|
|
592
580
|
edmType = 'Edm.Time';
|
|
593
|
-
if(['cds.hana.ST_POINT', 'cds.hana.ST_GEOMETRY'].includes(cdsType)) {
|
|
594
|
-
error(null, csn.$path, { type: cdsType }, `OData V2 does not support Geometry data types, $(TYPE) can't be mapped`);
|
|
595
|
-
}
|
|
596
581
|
}
|
|
597
582
|
else // isV4
|
|
598
583
|
{
|
|
@@ -606,31 +591,32 @@ function mapCdsToEdmType(csn, messageFunctions, isV2=false, isMediaType=false)
|
|
|
606
591
|
function addTypeFacets(node, csn)
|
|
607
592
|
{
|
|
608
593
|
const isV2 = node.v2;
|
|
594
|
+
const decimalTypes = {'cds.Decimal':1, 'cds.DecimalFloat':1, 'cds.hana.SMALLDECIMAL':1};
|
|
609
595
|
if (csn.length != null)
|
|
610
|
-
node.MaxLength
|
|
596
|
+
node.setEdmAttribute('MaxLength', csn.length);
|
|
611
597
|
if (csn.scale !== undefined)
|
|
612
|
-
node.Scale
|
|
598
|
+
node.setEdmAttribute('Scale', csn.scale);
|
|
613
599
|
// else if (csn.type === 'cds.hana.SMALLDECIMAL' && !isV2)
|
|
614
|
-
// node.Scale = 'floating';
|
|
600
|
+
// node._edmAttributes.Scale = 'floating';
|
|
615
601
|
|
|
616
602
|
if (csn.precision != null)
|
|
617
|
-
node.Precision
|
|
603
|
+
node.setEdmAttribute('Precision', csn.precision);
|
|
618
604
|
// else if (csn.type === 'cds.hana.SMALLDECIMAL' && !isV2)
|
|
619
605
|
// node.Precision = 16;
|
|
620
|
-
else if (csn.type === 'cds.Timestamp' && node.Type === 'Edm.DateTimeOffset')
|
|
621
|
-
node.Precision
|
|
622
|
-
if(
|
|
606
|
+
else if (csn.type === 'cds.Timestamp' && node._edmAttributes.Type === 'Edm.DateTimeOffset')
|
|
607
|
+
node.setEdmAttribute('Precision', 7);
|
|
608
|
+
if(csn.type in decimalTypes) {
|
|
623
609
|
if(isV2) {
|
|
624
610
|
// no prec/scale or scale is 'floating'/'variable'
|
|
625
|
-
if(!(csn.precision || csn.scale) ||
|
|
611
|
+
if(!(csn.precision || csn.scale) || (csn.scale === 'floating' || csn.scale === 'variable')) {
|
|
626
612
|
node.setXml( { 'sap:variable-scale': true } );
|
|
627
|
-
|
|
613
|
+
node.removeEdmAttribute('Scale');
|
|
628
614
|
}
|
|
629
615
|
}
|
|
630
616
|
else {
|
|
631
617
|
// map both floating and variable to => variable
|
|
632
|
-
if(node.Scale === 'floating')
|
|
633
|
-
node.Scale
|
|
618
|
+
if(node._edmAttributes.Scale === 'floating')
|
|
619
|
+
node.setEdmAttribute('Scale', 'variable');
|
|
634
620
|
if(!csn.precision && !csn.scale)
|
|
635
621
|
// if Decimal has no p, s set scale 'variable'
|
|
636
622
|
node.setXml( { Scale: 'variable' } ); // floating is V4.01
|
|
@@ -638,9 +624,9 @@ function addTypeFacets(node, csn)
|
|
|
638
624
|
}
|
|
639
625
|
// Unicode unused today
|
|
640
626
|
if(csn.unicode)
|
|
641
|
-
node.Unicode
|
|
627
|
+
node.setEdmAttribute('Unicode', csn.unicode);
|
|
642
628
|
if(csn.srid)
|
|
643
|
-
node.SRID
|
|
629
|
+
node.setEdmAttribute('SRID', csn.srid);
|
|
644
630
|
}
|
|
645
631
|
|
|
646
632
|
|
package/lib/gen/Dictionary.json
CHANGED
|
@@ -658,6 +658,7 @@
|
|
|
658
658
|
"Type": "Common.FieldControlType",
|
|
659
659
|
"AppliesTo": [
|
|
660
660
|
"Property",
|
|
661
|
+
"Parameter",
|
|
661
662
|
"Record",
|
|
662
663
|
"EntityType"
|
|
663
664
|
]
|
|
@@ -1026,7 +1027,9 @@
|
|
|
1026
1027
|
]
|
|
1027
1028
|
},
|
|
1028
1029
|
"Common.RecursiveHierarchy": {
|
|
1029
|
-
"Type": "Common.RecursiveHierarchyType"
|
|
1030
|
+
"Type": "Common.RecursiveHierarchyType",
|
|
1031
|
+
"$deprecated": true,
|
|
1032
|
+
"$deprecationText": "Use terms [Aggregation.RecursiveHierarchy](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#RecursiveHierarchy) and [Hierarchy.RecursiveHierarchy](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchy) instead"
|
|
1030
1033
|
},
|
|
1031
1034
|
"Common.CreatedAt": {
|
|
1032
1035
|
"Type": "Edm.DateTimeOffset",
|
|
@@ -1380,8 +1383,49 @@
|
|
|
1380
1383
|
"Core.GeometryFeature": {
|
|
1381
1384
|
"Type": "Core.GeometryFeatureType"
|
|
1382
1385
|
},
|
|
1383
|
-
"
|
|
1384
|
-
"Type": "
|
|
1386
|
+
"DataIntegration.Extractable": {
|
|
1387
|
+
"Type": "Edm.Boolean",
|
|
1388
|
+
"AppliesTo": [
|
|
1389
|
+
"EntitySet"
|
|
1390
|
+
]
|
|
1391
|
+
},
|
|
1392
|
+
"DataIntegration.OriginalDataType": {
|
|
1393
|
+
"Type": "Edm.String",
|
|
1394
|
+
"AppliesTo": [
|
|
1395
|
+
"Property"
|
|
1396
|
+
]
|
|
1397
|
+
},
|
|
1398
|
+
"DataIntegration.OriginalName": {
|
|
1399
|
+
"Type": "Edm.String"
|
|
1400
|
+
},
|
|
1401
|
+
"DataIntegration.ConversionExit": {
|
|
1402
|
+
"Type": "Edm.String",
|
|
1403
|
+
"AppliesTo": [
|
|
1404
|
+
"Property"
|
|
1405
|
+
]
|
|
1406
|
+
},
|
|
1407
|
+
"DataIntegration.SourceSystem": {
|
|
1408
|
+
"Type": "Edm.String",
|
|
1409
|
+
"AppliesTo": [
|
|
1410
|
+
"Container"
|
|
1411
|
+
]
|
|
1412
|
+
},
|
|
1413
|
+
"DataIntegration.DeltaMethod": {
|
|
1414
|
+
"Type": "DataIntegration.DeltaMethodType",
|
|
1415
|
+
"AppliesTo": [
|
|
1416
|
+
"EntitySet"
|
|
1417
|
+
]
|
|
1418
|
+
},
|
|
1419
|
+
"Graph.traceId": {
|
|
1420
|
+
"Type": "Edm.String",
|
|
1421
|
+
"$experimental": true
|
|
1422
|
+
},
|
|
1423
|
+
"Graph.Details": {
|
|
1424
|
+
"Type": "Graph.DetailsType",
|
|
1425
|
+
"$experimental": true
|
|
1426
|
+
},
|
|
1427
|
+
"Hierarchy.RecursiveHierarchy": {
|
|
1428
|
+
"Type": "Hierarchy.RecursiveHierarchyType",
|
|
1385
1429
|
"AppliesTo": [
|
|
1386
1430
|
"EntityType"
|
|
1387
1431
|
],
|
|
@@ -1393,6 +1437,17 @@
|
|
|
1393
1437
|
"Record"
|
|
1394
1438
|
]
|
|
1395
1439
|
},
|
|
1440
|
+
"JSON.Schema": {
|
|
1441
|
+
"Type": "JSON.JSON",
|
|
1442
|
+
"AppliesTo": [
|
|
1443
|
+
"EntityType",
|
|
1444
|
+
"Parameter",
|
|
1445
|
+
"Property",
|
|
1446
|
+
"ReturnType",
|
|
1447
|
+
"Term",
|
|
1448
|
+
"TypeDefinition"
|
|
1449
|
+
]
|
|
1450
|
+
},
|
|
1396
1451
|
"Measures.ISOCurrency": {
|
|
1397
1452
|
"Type": "Edm.String",
|
|
1398
1453
|
"AppliesTo": [
|
|
@@ -1713,7 +1768,8 @@
|
|
|
1713
1768
|
"Type": "Core.Tag",
|
|
1714
1769
|
"AppliesTo": [
|
|
1715
1770
|
"Property",
|
|
1716
|
-
"PropertyValue"
|
|
1771
|
+
"PropertyValue",
|
|
1772
|
+
"Parameter"
|
|
1717
1773
|
]
|
|
1718
1774
|
},
|
|
1719
1775
|
"UI.Placeholder": {
|
|
@@ -1898,14 +1954,14 @@
|
|
|
1898
1954
|
]
|
|
1899
1955
|
},
|
|
1900
1956
|
"Validation.OpenPropertyTypeConstraint": {
|
|
1901
|
-
"Type": "Collection(
|
|
1957
|
+
"Type": "Collection(Validation.SingleOrCollectionType)",
|
|
1902
1958
|
"AppliesTo": [
|
|
1903
1959
|
"ComplexType",
|
|
1904
1960
|
"EntityType"
|
|
1905
1961
|
]
|
|
1906
1962
|
},
|
|
1907
1963
|
"Validation.DerivedTypeConstraint": {
|
|
1908
|
-
"Type": "Collection(
|
|
1964
|
+
"Type": "Collection(Validation.SingleOrCollectionType)",
|
|
1909
1965
|
"AppliesTo": [
|
|
1910
1966
|
"EntitySet",
|
|
1911
1967
|
"Singleton",
|
|
@@ -2740,7 +2796,9 @@
|
|
|
2740
2796
|
"ExternalNodeKeyProperty": "Edm.PropertyPath",
|
|
2741
2797
|
"NodeDescendantCountProperty": "Edm.PropertyPath",
|
|
2742
2798
|
"NodeDrillStateProperty": "Edm.PropertyPath"
|
|
2743
|
-
}
|
|
2799
|
+
},
|
|
2800
|
+
"$deprecated": true,
|
|
2801
|
+
"$deprecationText": "Use terms [Aggregation.RecursiveHierarchy](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#RecursiveHierarchy) and [Hierarchy.RecursiveHierarchy](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchy) instead"
|
|
2744
2802
|
},
|
|
2745
2803
|
"Common.NumericMessageSeverityType": {
|
|
2746
2804
|
"$kind": "TypeDefinition",
|
|
@@ -3122,22 +3180,31 @@
|
|
|
3122
3180
|
"UnderlyingType": "Edm.String",
|
|
3123
3181
|
"MaxLength": "128"
|
|
3124
3182
|
},
|
|
3125
|
-
"
|
|
3183
|
+
"DataIntegration.DeltaMethodType": {
|
|
3184
|
+
"$kind": "EnumType",
|
|
3185
|
+
"IsFlags": "true",
|
|
3186
|
+
"Members": [
|
|
3187
|
+
"INSERT",
|
|
3188
|
+
"UPDATE",
|
|
3189
|
+
"DELETE"
|
|
3190
|
+
]
|
|
3191
|
+
},
|
|
3192
|
+
"Graph.DetailsType": {
|
|
3126
3193
|
"$kind": "ComplexType",
|
|
3127
3194
|
"Properties": {
|
|
3128
|
-
"
|
|
3129
|
-
"
|
|
3130
|
-
"target": "Edm.String",
|
|
3131
|
-
"parameters": "Collection(Graph.binding)",
|
|
3132
|
-
"filter": "Collection(Graph.binding)"
|
|
3195
|
+
"url": "Edm.String",
|
|
3196
|
+
"body": "JSON.JSON"
|
|
3133
3197
|
},
|
|
3134
3198
|
"$experimental": true
|
|
3135
3199
|
},
|
|
3136
|
-
"
|
|
3200
|
+
"Hierarchy.RecursiveHierarchyType": {
|
|
3137
3201
|
"$kind": "ComplexType",
|
|
3138
3202
|
"Properties": {
|
|
3139
|
-
"
|
|
3140
|
-
"
|
|
3203
|
+
"ExternalKeyProperty": "Edm.PropertyPath",
|
|
3204
|
+
"DescendantCountProperty": "Edm.PropertyPath",
|
|
3205
|
+
"DrillStateProperty": "Edm.PropertyPath",
|
|
3206
|
+
"SiblingRankProperty": "Edm.PropertyPath",
|
|
3207
|
+
"PreorderRankProperty": "Edm.PropertyPath"
|
|
3141
3208
|
},
|
|
3142
3209
|
"$experimental": true
|
|
3143
3210
|
},
|
|
@@ -3147,6 +3214,10 @@
|
|
|
3147
3214
|
"width": "Edm.String"
|
|
3148
3215
|
}
|
|
3149
3216
|
},
|
|
3217
|
+
"JSON.JSON": {
|
|
3218
|
+
"$kind": "TypeDefinition",
|
|
3219
|
+
"UnderlyingType": "Edm.Stream"
|
|
3220
|
+
},
|
|
3150
3221
|
"Measures.DurationGranularityType": {
|
|
3151
3222
|
"$kind": "TypeDefinition",
|
|
3152
3223
|
"UnderlyingType": "Edm.String"
|
|
@@ -3176,6 +3247,7 @@
|
|
|
3176
3247
|
"TypeNamePlural": "Edm.String",
|
|
3177
3248
|
"Title": "UI.DataFieldAbstract",
|
|
3178
3249
|
"Description": "UI.DataFieldAbstract",
|
|
3250
|
+
"Image": "Edm.Stream",
|
|
3179
3251
|
"ImageUrl": "Edm.String",
|
|
3180
3252
|
"TypeImageUrl": "Edm.String",
|
|
3181
3253
|
"Initials": "Edm.String"
|
|
@@ -3623,7 +3695,7 @@
|
|
|
3623
3695
|
"$kind": "ComplexType",
|
|
3624
3696
|
"BaseType": "UI.DataFieldAbstract",
|
|
3625
3697
|
"Properties": {
|
|
3626
|
-
"Value": "Edm.
|
|
3698
|
+
"Value": "Edm.Untyped",
|
|
3627
3699
|
"Label": "Edm.String",
|
|
3628
3700
|
"Criticality": "UI.CriticalityType",
|
|
3629
3701
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3634,8 +3706,8 @@
|
|
|
3634
3706
|
"$kind": "ComplexType",
|
|
3635
3707
|
"BaseType": "UI.DataField",
|
|
3636
3708
|
"Properties": {
|
|
3637
|
-
"Action": "Common.QualifiedName",
|
|
3638
3709
|
"Value": "Edm.PrimitiveType",
|
|
3710
|
+
"Action": "Common.QualifiedName",
|
|
3639
3711
|
"Label": "Edm.String",
|
|
3640
3712
|
"Criticality": "UI.CriticalityType",
|
|
3641
3713
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3646,10 +3718,10 @@
|
|
|
3646
3718
|
"$kind": "ComplexType",
|
|
3647
3719
|
"BaseType": "UI.DataField",
|
|
3648
3720
|
"Properties": {
|
|
3721
|
+
"Value": "Edm.PrimitiveType",
|
|
3649
3722
|
"SemanticObject": "Edm.String",
|
|
3650
3723
|
"Action": "Edm.String",
|
|
3651
3724
|
"Mapping": "Collection(Common.SemanticObjectMappingType)",
|
|
3652
|
-
"Value": "Edm.PrimitiveType",
|
|
3653
3725
|
"Label": "Edm.String",
|
|
3654
3726
|
"Criticality": "UI.CriticalityType",
|
|
3655
3727
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3660,8 +3732,8 @@
|
|
|
3660
3732
|
"$kind": "ComplexType",
|
|
3661
3733
|
"BaseType": "UI.DataField",
|
|
3662
3734
|
"Properties": {
|
|
3663
|
-
"Target": "Edm.NavigationPropertyPath",
|
|
3664
3735
|
"Value": "Edm.PrimitiveType",
|
|
3736
|
+
"Target": "Edm.NavigationPropertyPath",
|
|
3665
3737
|
"Label": "Edm.String",
|
|
3666
3738
|
"Criticality": "UI.CriticalityType",
|
|
3667
3739
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3672,9 +3744,9 @@
|
|
|
3672
3744
|
"$kind": "ComplexType",
|
|
3673
3745
|
"BaseType": "UI.DataField",
|
|
3674
3746
|
"Properties": {
|
|
3747
|
+
"Value": "Edm.PrimitiveType",
|
|
3675
3748
|
"Url": "Edm.String",
|
|
3676
3749
|
"UrlContentType": "Edm.String",
|
|
3677
|
-
"Value": "Edm.PrimitiveType",
|
|
3678
3750
|
"Label": "Edm.String",
|
|
3679
3751
|
"Criticality": "UI.CriticalityType",
|
|
3680
3752
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3685,8 +3757,8 @@
|
|
|
3685
3757
|
"$kind": "ComplexType",
|
|
3686
3758
|
"BaseType": "UI.DataField",
|
|
3687
3759
|
"Properties": {
|
|
3688
|
-
"Actions": "Collection(UI.DataField)",
|
|
3689
3760
|
"Value": "Edm.PrimitiveType",
|
|
3761
|
+
"Actions": "Collection(UI.DataField)",
|
|
3690
3762
|
"Label": "Edm.String",
|
|
3691
3763
|
"Criticality": "UI.CriticalityType",
|
|
3692
3764
|
"CriticalityRepresentation": "UI.CriticalityRepresentationType",
|
|
@@ -3901,6 +3973,10 @@
|
|
|
3901
3973
|
"path": "Edm.NavigationPropertyPath",
|
|
3902
3974
|
"target": "Edm.NavigationPropertyPath"
|
|
3903
3975
|
}
|
|
3976
|
+
},
|
|
3977
|
+
"Validation.SingleOrCollectionType": {
|
|
3978
|
+
"$kind": "TypeDefinition",
|
|
3979
|
+
"UnderlyingType": "Edm.String"
|
|
3904
3980
|
}
|
|
3905
3981
|
}
|
|
3906
3982
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
dd18d05cabbe93eabf1bd17b83add5ee
|