зеркало из https://github.com/microsoft/CDM.git
Microsoft CDM Release Version Update: 0.9
This commit is contained in:
Родитель
576ccfd07f
Коммит
5932090f18
|
@ -0,0 +1,24 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45;net462</TargetFrameworks>
|
||||
<Version>0.9.0-preview30</Version>
|
||||
<Authors>Microsoft</Authors>
|
||||
<Description>The ADLS adapter implementation for the Microsoft Common Data Model Object Model.</Description>
|
||||
<Copyright>Copyright Microsoft 2018</Copyright>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
<RepositoryUrl>https://commondatamodel.visualstudio.com/CDM/_git/CDM.ObjectModel.CSharp</RepositoryUrl>
|
||||
<PackageProjectUrl>https://commondatamodel.visualstudio.com/CDM</PackageProjectUrl>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.5.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.4" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Microsoft.CommonDataModel.ObjectModel\Microsoft.CommonDataModel.ObjectModel.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -9,22 +9,19 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
|
||||
using Microsoft.CommonDataModel.ObjectModel.Utilities;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Utilities.Network;
|
||||
using Microsoft.IdentityModel.Clients.ActiveDirectory;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Utilities.Logging;
|
||||
using System.Diagnostics;
|
||||
|
||||
public class ADLSAdapter : NetworkAdapter, StorageAdapter
|
||||
{
|
||||
|
@ -33,7 +30,20 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
/// <summary>
|
||||
/// The root.
|
||||
/// </summary>
|
||||
public string Root { get; private set; }
|
||||
public string Root
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._root;
|
||||
}
|
||||
private set
|
||||
{
|
||||
this._root = value;
|
||||
this.ExtractFilesystemAndSubPath(this._root, out this.fileSystem, out this.subPath);
|
||||
}
|
||||
}
|
||||
|
||||
private string _root;
|
||||
|
||||
/// <summary>
|
||||
/// The hostname of ADLS.
|
||||
|
@ -63,6 +73,16 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
/// <inheritdoc />
|
||||
public string LocationHint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The file-system name.
|
||||
/// </summary>
|
||||
private string fileSystem = "";
|
||||
|
||||
/// <summary>
|
||||
/// The sub-path.
|
||||
/// </summary>
|
||||
private string subPath = "";
|
||||
|
||||
/// <summary>
|
||||
/// The predefined ADLS resource.
|
||||
/// </summary>
|
||||
|
@ -109,7 +129,6 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
this.httpClient = new CdmHttpClient();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The ADLS constructor for shared key authentication.
|
||||
/// </summary>
|
||||
|
@ -164,14 +183,14 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
var stringContent = new StringContent(request.Content, Encoding.UTF8, request.ContentType);
|
||||
|
||||
// Building a request and setting a URL with a position argument to be the length of the byte array of the string content (or length of UTF-8 string content).
|
||||
request = await this.BuildRequest($"{url}?action=flush&position={(await stringContent.ReadAsByteArrayAsync()).Length}" , new HttpMethod("PATCH"));
|
||||
request = await this.BuildRequest($"{url}?action=flush&position={(await stringContent.ReadAsByteArrayAsync()).Length}", new HttpMethod("PATCH"));
|
||||
await this.ExecuteRequest(request);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public string CreateAdapterPath(string corpusPath)
|
||||
{
|
||||
return $"https://{this.Hostname}{this.Root}{corpusPath}";
|
||||
return $"https://{this.Hostname}{this.Root}{this.FormatCorpusPath(corpusPath)}";
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
@ -180,7 +199,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
var prefix = $"https://{this.Hostname}{this.Root}";
|
||||
if (adapterPath.StartsWith(prefix))
|
||||
{
|
||||
return adapterPath.Slice(prefix.Length);
|
||||
return adapterPath.Substring(prefix.Length);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -195,14 +214,60 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
/// <inheritdoc />
|
||||
public async Task<DateTimeOffset?> ComputeLastModifiedTimeAsync(string corpusPath)
|
||||
{
|
||||
// TODO
|
||||
var url = this.CreateAdapterPath(corpusPath);
|
||||
|
||||
var request = await this.BuildRequest(url, HttpMethod.Head);
|
||||
|
||||
try
|
||||
{
|
||||
CdmHttpResponse cdmResponse = await base.ExecuteRequest(request);
|
||||
|
||||
if (cdmResponse.StatusCode.Equals(HttpStatusCode.OK))
|
||||
{
|
||||
return cdmResponse.Content.Headers.LastModified;
|
||||
}
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
// We don't have standard logger here, so use one from system diagnostics
|
||||
Debug.WriteLine($"ADLS file not found, skipping last modified time calculation for it. Exception: {ex}");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<List<string>> FetchAllFilesAsync(string currFullPath)
|
||||
public async Task<List<string>> FetchAllFilesAsync(string folderCorpusPath)
|
||||
{
|
||||
// TODO
|
||||
this.CreateFetchAllFilesUrl(this.FormatCorpusPath(folderCorpusPath), out string url, out string directory);
|
||||
var request = await this.BuildRequest($"{url}?directory={directory}&recursive=True&resource=filesystem", HttpMethod.Get);
|
||||
CdmHttpResponse cdmResponse = await base.ExecuteRequest(request);
|
||||
|
||||
if (cdmResponse.StatusCode.Equals(HttpStatusCode.OK))
|
||||
{
|
||||
string json = await cdmResponse.Content.ReadAsStringAsync();
|
||||
JObject jObject1 = JObject.Parse(json);
|
||||
|
||||
JArray jArray = JArray.FromObject(jObject1.GetValue("paths"));
|
||||
List<string> result = new List<string>();
|
||||
|
||||
foreach (JObject jObject in jArray.Children<JObject>())
|
||||
{
|
||||
jObject.TryGetValue("isDirectory", StringComparison.OrdinalIgnoreCase, out JToken isDirectory);
|
||||
if (isDirectory == null || !isDirectory.ToObject<bool>())
|
||||
{
|
||||
jObject.TryGetValue("name", StringComparison.OrdinalIgnoreCase, out JToken name);
|
||||
|
||||
string nameWithoutSubPath = this.subPath.Length > 0 && name.ToString().StartsWith(this.subPath) ?
|
||||
name.ToString().Substring(this.subPath.Length + 1) : name.ToString();
|
||||
|
||||
result.Add(this.FormatCorpusPath(nameWithoutSubPath));
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -267,7 +332,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
builder.Append($"\n{keyValuePair[0]}:{keyValuePair[1]}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Hash the payload.
|
||||
byte[] dataToHash = System.Text.Encoding.UTF8.GetBytes(builder.ToString().TrimEnd('\n'));
|
||||
if (!TryFromBase64String(sharedKey, out byte[] bytes))
|
||||
|
@ -286,6 +351,71 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
return headers;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create the url to fetch all files async.
|
||||
/// </summary>
|
||||
/// <param name="currFullPath">Current full path.</param>
|
||||
/// <param name="url">The url.</param>
|
||||
/// <param name="directory">The directory param.</param>
|
||||
/// <returns></returns>
|
||||
private void CreateFetchAllFilesUrl(string currFullPath, out string url, out string directory)
|
||||
{
|
||||
url = $"https://{this.Hostname}/{fileSystem}";
|
||||
directory = $"{subPath}/{currFullPath}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extracts the filesystem and sub-path from the given root value.
|
||||
/// </summary>
|
||||
/// <param name="root">The root</param>
|
||||
/// <param name="fileSystem">The extracted filesystem name</param>
|
||||
/// <param name="subPath">The extracted sub-path</param>
|
||||
private void ExtractFilesystemAndSubPath(string root, out string fileSystem, out string subPath)
|
||||
{
|
||||
// No root value was set
|
||||
if (string.IsNullOrEmpty(root))
|
||||
{
|
||||
fileSystem = "";
|
||||
subPath = "";
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove leading /
|
||||
var prepRoot = root[0] == '/' ? root.Substring(1) : root;
|
||||
|
||||
// Root contains only the file-system name, e.g. "fs-name"
|
||||
if (prepRoot.IndexOf('/') == -1)
|
||||
{
|
||||
fileSystem = prepRoot;
|
||||
subPath = "";
|
||||
return;
|
||||
}
|
||||
|
||||
// Root contains file-system name and folder, e.g. "fs-name/folder/folder..."
|
||||
var prepRootArray = prepRoot.Split('/');
|
||||
fileSystem = prepRootArray.First();
|
||||
subPath = String.Join("/", prepRootArray.Skip(1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Format corpus path.
|
||||
/// </summary>
|
||||
/// <param name="corpusPath">The corpusPath.</param>
|
||||
/// <returns></returns>
|
||||
private string FormatCorpusPath(string corpusPath)
|
||||
{
|
||||
if (corpusPath.StartsWith("adls:"))
|
||||
{
|
||||
corpusPath = corpusPath.Substring(5);
|
||||
}
|
||||
else if (corpusPath.Length > 0 && corpusPath[0] != '/')
|
||||
{
|
||||
corpusPath = $"/{corpusPath}";
|
||||
}
|
||||
|
||||
return corpusPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Encodes from base 64 string to the byte array.
|
||||
/// </summary>
|
||||
|
@ -341,7 +471,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Storage
|
|||
request.Content = content;
|
||||
request.ContentType = contentType;
|
||||
}
|
||||
|
||||
|
||||
return request;
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
{
|
||||
var trait = GenerateTrait();
|
||||
|
||||
var argumentDefinition = new CdmArgumentDefinition(null, null);
|
||||
var argumentDefinition = new CdmArgumentDefinition(trait.Ctx, null);
|
||||
|
||||
trait.ResolvedArguments = true;
|
||||
Assert.AreEqual(0, trait.Arguments.Count);
|
||||
|
@ -20,7 +20,7 @@
|
|||
Assert.AreEqual(argumentDefinition, addedArgument);
|
||||
Assert.AreEqual(1, trait.Arguments.Count);
|
||||
Assert.AreEqual(argumentDefinition, trait.Arguments[0]);
|
||||
Assert.AreEqual(false, trait.ResolvedArguments);
|
||||
Assert.IsFalse(trait.ResolvedArguments);
|
||||
Assert.AreEqual(trait, trait.Arguments[0].Owner);
|
||||
|
||||
trait.ResolvedArguments = true;
|
||||
|
@ -36,7 +36,7 @@
|
|||
{
|
||||
var trait = GenerateTrait();
|
||||
|
||||
var toInsert = new CdmArgumentDefinition(null, null);
|
||||
var toInsert = new CdmArgumentDefinition(trait.Ctx, null);
|
||||
|
||||
var arg1 = trait.Arguments.Add("arg1");
|
||||
var arg2 = trait.Arguments.Add("arg2");
|
||||
|
@ -45,7 +45,7 @@
|
|||
|
||||
trait.Arguments.Insert(1, toInsert);
|
||||
Assert.AreEqual(3, trait.Arguments.Count);
|
||||
Assert.AreEqual(false, trait.ResolvedArguments);
|
||||
Assert.IsFalse(trait.ResolvedArguments);
|
||||
Assert.AreEqual(arg1, trait.Arguments[0]);
|
||||
Assert.AreEqual(toInsert, trait.Arguments[1]);
|
||||
Assert.AreEqual(arg2, trait.Arguments[2]);
|
||||
|
@ -58,14 +58,14 @@
|
|||
var trait = GenerateTrait();
|
||||
trait.ResolvedArguments = true;
|
||||
var argList = new List<CdmArgumentDefinition>();
|
||||
var argumentDefinition = new CdmArgumentDefinition(null, null)
|
||||
var argumentDefinition = new CdmArgumentDefinition(trait.Ctx, null)
|
||||
{
|
||||
Name = "Arg1",
|
||||
Value = 123
|
||||
};
|
||||
argList.Add(argumentDefinition);
|
||||
var valOfArg2 = CdmCollectionHelperFunctions.GenerateManifest("C://Nothing");
|
||||
argumentDefinition = new CdmArgumentDefinition(null, null)
|
||||
argumentDefinition = new CdmArgumentDefinition(trait.Ctx, null)
|
||||
{
|
||||
Name = "Arg2",
|
||||
Value = valOfArg2
|
||||
|
@ -75,7 +75,7 @@
|
|||
trait.Arguments.AddRange(argList);
|
||||
|
||||
Assert.AreEqual(2, trait.Arguments.Count);
|
||||
Assert.AreEqual(false, trait.ResolvedArguments);
|
||||
Assert.IsFalse(trait.ResolvedArguments);
|
||||
Assert.AreEqual("Arg1", trait.Arguments[0].Name);
|
||||
Assert.AreEqual(123, trait.Arguments[0].Value);
|
||||
Assert.AreEqual(trait, trait.Arguments[0].Owner);
|
||||
|
@ -95,7 +95,7 @@
|
|||
// This is what is needed by current code.
|
||||
Assert.AreEqual("ValueOfTrait", value);
|
||||
|
||||
var argumentDefinition = new CdmArgumentDefinition(null, null);
|
||||
var argumentDefinition = new CdmArgumentDefinition(trait.Ctx, null);
|
||||
|
||||
trait.ResolvedArguments = true;
|
||||
trait.Arguments.Add(argumentDefinition);
|
||||
|
@ -126,6 +126,25 @@
|
|||
Assert.AreEqual(trait, trait.Arguments[2].Owner);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestCdmCollectionAddPopulatesInDocumentWithVisit()
|
||||
{
|
||||
var manifest = CdmCollectionHelperFunctions.GenerateManifest("C:\nothing");
|
||||
|
||||
var entityReference = new CdmLocalEntityDeclarationDefinition(manifest.Ctx, "entityName");
|
||||
|
||||
var trait = entityReference.ExhibitsTraits.Add("theTrait");
|
||||
|
||||
var argument = trait.Arguments.Add("GreatArgumentName", "GreatValue");
|
||||
|
||||
manifest.Entities.Add(entityReference);
|
||||
|
||||
Assert.AreEqual(manifest, manifest.InDocument);
|
||||
Assert.AreEqual(manifest, entityReference.InDocument);
|
||||
Assert.AreEqual(manifest, trait.InDocument);
|
||||
Assert.AreEqual(manifest, argument.InDocument);
|
||||
}
|
||||
|
||||
private CdmTraitReference GenerateTrait()
|
||||
{
|
||||
var manifest = CdmCollectionHelperFunctions.GenerateManifest("C:\\Nothing");
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
cdmCorpus.Storage.Mount("local", new LocalAdapter(localRootPath));
|
||||
|
||||
// add cdm namespace
|
||||
// Add CDM namespace.
|
||||
cdmCorpus.Storage.Mount("cdm", new LocalAdapter(localRootPath));
|
||||
|
||||
var manifest = new CdmManifestDefinition(cdmCorpus.Ctx, "manifest");
|
||||
|
|
|
@ -59,11 +59,11 @@
|
|||
Assert.AreEqual(2, collection.Count);
|
||||
|
||||
bool removed = collection.Remove(addedDocument);
|
||||
Assert.AreEqual(true, removed);
|
||||
Assert.IsTrue(removed);
|
||||
|
||||
// try to remove a second time.
|
||||
removed = collection.Remove(addedDocument);
|
||||
Assert.AreEqual(false, removed);
|
||||
Assert.IsFalse(removed);
|
||||
Assert.AreEqual(1, collection.Count);
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@
|
|||
[TestMethod]
|
||||
public void TestCdmCollectionChangeMakesDocumentDirty()
|
||||
{
|
||||
var manifest = CdmCollectionHelperFunctions.GenerateManifest("C:\nothing");
|
||||
var manifest = CdmCollectionHelperFunctions.GenerateManifest("C:\\nothing");
|
||||
var collection = new CdmCollection<CdmEntityReference>(manifest.Ctx, manifest, Enums.CdmObjectType.EntityRef);
|
||||
|
||||
manifest.IsDirty = false;
|
||||
|
@ -169,7 +169,7 @@
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// For an entity, it creates a document that will containt the entity.
|
||||
/// For an entity, it creates a document that will contain the entity.
|
||||
/// </summary>
|
||||
/// <param name="cdmCorpus">The corpus everything belongs to.</param>
|
||||
/// <param name="entity">The entity we want a document for.</param>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
var addedFolder = document.Definitions.Add(folder);
|
||||
var addedTrait = document.Definitions.Add(trait);
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(3, document.Definitions.Count);
|
||||
Assert.AreEqual(attribute, addedAttribute);
|
||||
Assert.AreEqual(folder, addedFolder);
|
||||
|
@ -30,9 +30,8 @@
|
|||
Assert.AreEqual(attribute, document.Definitions[0]);
|
||||
Assert.AreEqual(folder, document.Definitions[1]);
|
||||
Assert.AreEqual(trait, document.Definitions[2]);
|
||||
Assert.AreEqual(document, attribute.DocCreatedIn);
|
||||
Assert.AreEqual(document, folder.DocCreatedIn);
|
||||
Assert.AreEqual(document, trait.DocCreatedIn);
|
||||
Assert.AreEqual(document, attribute.InDocument);
|
||||
Assert.AreEqual(document, trait.InDocument);
|
||||
Assert.AreEqual(document, attribute.Owner);
|
||||
Assert.AreEqual(document, folder.Owner);
|
||||
Assert.AreEqual(document, trait.Owner);
|
||||
|
@ -53,9 +52,9 @@
|
|||
document.Definitions.Insert(0, attribute);
|
||||
|
||||
Assert.AreEqual(3, document.Definitions.Count);
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(attribute, document.Definitions[0]);
|
||||
Assert.AreEqual(document, attribute.DocCreatedIn);
|
||||
Assert.AreEqual(document, attribute.InDocument);
|
||||
Assert.AreEqual(document, attribute.Owner);
|
||||
Assert.AreEqual(ent1, document.Definitions[1]);
|
||||
Assert.AreEqual(ent2, document.Definitions[2]);
|
||||
|
@ -68,9 +67,9 @@
|
|||
document.IsDirty = false;
|
||||
|
||||
var entity = document.Definitions.Add("theNameOfTheEntity");
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(entity, document.Definitions[0]);
|
||||
Assert.AreEqual(document, entity.DocCreatedIn);
|
||||
Assert.AreEqual(document, entity.InDocument);
|
||||
Assert.AreEqual(document, entity.Owner);
|
||||
Assert.AreEqual("theNameOfTheEntity", entity.EntityName);
|
||||
}
|
||||
|
@ -84,12 +83,12 @@
|
|||
var attribute = document.Definitions.Add(CdmObjectType.AttributeContextDef, "Name of attribute");
|
||||
var trait = document.Definitions.Add(CdmObjectType.TraitDef, "Name of trait");
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(attribute, document.Definitions[0]);
|
||||
Assert.AreEqual(trait, document.Definitions[1]);
|
||||
Assert.AreEqual(document, ((CdmObjectBase)attribute).DocCreatedIn);
|
||||
Assert.AreEqual(document, ((CdmObjectBase)attribute).InDocument);
|
||||
Assert.AreEqual(document, attribute.Owner);
|
||||
Assert.AreEqual(document, ((CdmObjectBase)trait).DocCreatedIn);
|
||||
Assert.AreEqual(document, ((CdmObjectBase)trait).InDocument);
|
||||
Assert.AreEqual(document, trait.Owner);
|
||||
}
|
||||
|
||||
|
@ -104,21 +103,20 @@
|
|||
var trait = new CdmTraitDefinition(document.Ctx, "The trait");
|
||||
|
||||
var definitionsList = new List<CdmObjectDefinition>()
|
||||
{
|
||||
{
|
||||
attribute,
|
||||
folder,
|
||||
trait
|
||||
};
|
||||
document.Definitions.AddRange(definitionsList);
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(3, document.Definitions.Count);
|
||||
Assert.AreEqual(attribute, document.Definitions[0]);
|
||||
Assert.AreEqual(folder, document.Definitions[1]);
|
||||
Assert.AreEqual(trait, document.Definitions[2]);
|
||||
Assert.AreEqual(document, attribute.DocCreatedIn);
|
||||
Assert.AreEqual(document, folder.DocCreatedIn);
|
||||
Assert.AreEqual(document, trait.DocCreatedIn);
|
||||
Assert.AreEqual(document, attribute.InDocument);
|
||||
Assert.AreEqual(document, trait.InDocument);
|
||||
Assert.AreEqual(document, attribute.Owner);
|
||||
Assert.AreEqual(document, folder.Owner);
|
||||
Assert.AreEqual(document, trait.Owner);
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
manifest.IsDirty = false;
|
||||
|
||||
folder.Documents.Insert(2, document);
|
||||
Assert.AreEqual(true, manifest.IsDirty);
|
||||
Assert.IsTrue(manifest.IsDirty);
|
||||
Assert.AreEqual(3, folder.Documents.Count);
|
||||
Assert.AreEqual(doc1, folder.Documents[0]);
|
||||
Assert.AreEqual(doc2, folder.Documents[1]);
|
||||
|
@ -140,7 +140,7 @@
|
|||
Assert.IsTrue(removed);
|
||||
Assert.AreEqual(1, folder.Documents.Count);
|
||||
Assert.AreEqual(document2, folder.Documents[0]);
|
||||
Assert.AreEqual(null, document.Owner);
|
||||
Assert.IsNull(document.Owner);
|
||||
|
||||
removed = folder.Documents.Remove(document);
|
||||
Assert.IsFalse(removed);
|
||||
|
@ -153,7 +153,7 @@
|
|||
removed = folder.Documents.Remove(document.Name);
|
||||
Assert.AreEqual(1, folder.Documents.Count);
|
||||
Assert.AreEqual(document2, folder.Documents[0]);
|
||||
Assert.AreEqual(null, document.Owner);
|
||||
Assert.IsNull(document.Owner);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
|
|
@ -42,18 +42,6 @@
|
|||
Assert.AreEqual(cdmEntityDeclaration, manifest.Entities.AllItems[1]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tests whether Manifest.Entities.Add() throws an exception when the associated docutment is not added.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TestManifestCannotAddEntityWithoutDoc()
|
||||
{
|
||||
var manifest = GenerateManifest("C:\\Root\\Path");
|
||||
var entity = new CdmEntityDefinition(manifest.Ctx, "entityName", null);
|
||||
|
||||
Assert.ThrowsException<System.ArgumentException>(() => manifest.Entities.Add(entity));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tests whether the EntityDefinition can be passed directly to Manifest.Entities.Add().
|
||||
/// </summary>
|
||||
|
@ -126,12 +114,12 @@
|
|||
|
||||
bool removed = manifest.Entities.Remove(entity);
|
||||
|
||||
Assert.AreEqual(true, removed);
|
||||
Assert.IsTrue(removed);
|
||||
Assert.AreEqual(1, manifest.Entities.AllItems.Count);
|
||||
Assert.AreEqual(otherEntity.EntityName, manifest.Entities.AllItems[0].EntityName);
|
||||
|
||||
removed = manifest.Entities.Remove(entity);
|
||||
Assert.AreEqual(false, removed);
|
||||
Assert.IsFalse(removed);
|
||||
Assert.AreEqual(1, manifest.Entities.AllItems.Count);
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
childFolders.Insert(1, childFolder);
|
||||
|
||||
Assert.AreEqual(3, childFolders.Count);
|
||||
Assert.AreEqual(true, manifest.IsDirty);
|
||||
Assert.IsTrue(manifest.IsDirty);
|
||||
Assert.AreEqual(child1, childFolders[0]);
|
||||
Assert.AreEqual(childFolder, childFolders[1]);
|
||||
Assert.AreEqual(child2, childFolders[2]);
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
var import = new CdmImport(document.Ctx, "corpusPath", "moniker");
|
||||
var addedImport = document.Imports.Add(import);
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(1, document.Imports.Count);
|
||||
Assert.AreEqual(import, addedImport);
|
||||
Assert.AreEqual(import, document.Imports[0]);
|
||||
|
@ -32,11 +32,11 @@
|
|||
document.IsDirty = false;
|
||||
var import = document.Imports.Add("corpusPath");
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(1, document.Imports.Count);
|
||||
Assert.AreEqual(import, document.Imports[0]);
|
||||
Assert.AreEqual("corpusPath", import.CorpusPath);
|
||||
Assert.AreEqual(null, import.Moniker);
|
||||
Assert.IsNull(import.Moniker);
|
||||
Assert.AreEqual(document.Ctx, import.Ctx);
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@
|
|||
document.IsDirty = false;
|
||||
var import = document.Imports.Add("corpusPath", "moniker");
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(1, document.Imports.Count);
|
||||
Assert.AreEqual(import, document.Imports[0]);
|
||||
Assert.AreEqual("corpusPath", import.CorpusPath);
|
||||
|
@ -67,7 +67,7 @@
|
|||
};
|
||||
document.Imports.AddRange(importList);
|
||||
|
||||
Assert.AreEqual(true, document.IsDirty);
|
||||
Assert.IsTrue(document.IsDirty);
|
||||
Assert.AreEqual(2, document.Imports.Count);
|
||||
Assert.AreEqual(importList[0], document.Imports[0]);
|
||||
Assert.AreEqual(importList[1], document.Imports[1]);
|
||||
|
|
|
@ -168,8 +168,8 @@
|
|||
manifest.ExhibitsTraits.Add(trait);
|
||||
manifest.ExhibitsTraits.Add(otherTrait);
|
||||
|
||||
Assert.AreEqual(false, trait.IsFromProperty);
|
||||
Assert.AreEqual(false, otherTrait.IsFromProperty);
|
||||
Assert.IsFalse(trait.IsFromProperty);
|
||||
Assert.IsFalse(otherTrait.IsFromProperty);
|
||||
|
||||
Assert.AreEqual(2, manifest.ExhibitsTraits.Count);
|
||||
var removed = manifest.ExhibitsTraits.Remove(trait, true);
|
||||
|
@ -199,9 +199,9 @@
|
|||
traitCopyFromProperty.IsFromProperty = true;
|
||||
manifest.ExhibitsTraits.Add(traitCopyFromProperty);
|
||||
|
||||
Assert.AreEqual(false, trait.IsFromProperty);
|
||||
Assert.AreEqual(false, otherTrait.IsFromProperty);
|
||||
Assert.AreEqual(true, traitCopyFromProperty.IsFromProperty);
|
||||
Assert.IsFalse(trait.IsFromProperty);
|
||||
Assert.IsFalse(otherTrait.IsFromProperty);
|
||||
Assert.IsTrue(traitCopyFromProperty.IsFromProperty);
|
||||
|
||||
Assert.AreEqual(3, manifest.ExhibitsTraits.Count);
|
||||
var removed = manifest.ExhibitsTraits.Remove("TraitName");
|
||||
|
@ -229,7 +229,7 @@
|
|||
manifest.ExhibitsTraits.Add(otherTrait);
|
||||
Assert.AreEqual(6, manifest.ExhibitsTraits.Count);
|
||||
|
||||
Assert.AreEqual(true, manifest.ExhibitsTraits[2].IsFromProperty);
|
||||
Assert.IsTrue(manifest.ExhibitsTraits[2].IsFromProperty);
|
||||
|
||||
var removed = manifest.ExhibitsTraits.Remove(trait);
|
||||
Assert.AreEqual("TraitName", (manifest.ExhibitsTraits[0].ExplicitReference as CdmTraitDefinition).TraitName);
|
||||
|
@ -248,8 +248,8 @@
|
|||
manifest.ExhibitsTraits.Add(trait);
|
||||
manifest.ExhibitsTraits.Add(otherTrait);
|
||||
|
||||
Assert.AreEqual(false, manifest.ExhibitsTraits[0].IsFromProperty);
|
||||
Assert.AreEqual(false, manifest.ExhibitsTraits[1].IsFromProperty);
|
||||
Assert.IsFalse(manifest.ExhibitsTraits[0].IsFromProperty);
|
||||
Assert.IsFalse(manifest.ExhibitsTraits[1].IsFromProperty);
|
||||
|
||||
var index = manifest.ExhibitsTraits.IndexOf(trait.TraitName, true);
|
||||
Assert.AreEqual(-1, index);
|
||||
|
|
|
@ -39,12 +39,6 @@
|
|||
CdmCorpusDefinition corpus = new CdmCorpusDefinition();
|
||||
corpus.SetEventCallback(new Utilities.EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
corpus.Storage.Mount("local", new LocalAdapter(testInputPath));
|
||||
corpus.Storage.Mount("cdm", new GithubAdapter()
|
||||
{
|
||||
Timeout = TimeSpan.FromSeconds(3),
|
||||
MaximumTimeout = TimeSpan.FromSeconds(6),
|
||||
NumberOfRetries = 1
|
||||
});
|
||||
|
||||
corpus.Storage.DefaultNamespace = "local";
|
||||
|
||||
|
@ -61,7 +55,7 @@
|
|||
// check that each relationship has been created correctly
|
||||
foreach (E2ERelationship expectedRel in expectedAllManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = rootManifest.Relationships.AllItems.Where(x =>
|
||||
List<CdmE2ERelationship> found = rootManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedRel.ToEntity
|
||||
|
@ -72,7 +66,7 @@
|
|||
|
||||
foreach (E2ERelationship expectedSubRel in expectedAllSubManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = subManifest.Relationships.AllItems.Where(x =>
|
||||
List<CdmE2ERelationship> found = subManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedSubRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedSubRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedSubRel.ToEntity
|
||||
|
@ -81,7 +75,6 @@
|
|||
Assert.AreEqual(found.Count, 1);
|
||||
}
|
||||
|
||||
|
||||
// make sure only relationships where to and from entities are in the manifest are found with the "exclusive" option is passed in
|
||||
await rootManifest.PopulateManifestRelationshipsAsync(CdmRelationshipDiscoveryStyle.Exclusive);
|
||||
|
||||
|
@ -91,7 +84,7 @@
|
|||
// check that each relationship has been created correctly
|
||||
foreach (E2ERelationship expectedRel in expectedExclusiveManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = rootManifest.Relationships.AllItems.Where(x =>
|
||||
List<CdmE2ERelationship> found = rootManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedRel.ToEntity
|
||||
|
@ -102,7 +95,7 @@
|
|||
|
||||
foreach (E2ERelationship expectedSubRel in expectedExclusiveSubManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = subManifest.Relationships.AllItems.Where(x =>
|
||||
List<CdmE2ERelationship> found = subManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedSubRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedSubRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedSubRel.ToEntity
|
||||
|
@ -117,5 +110,117 @@
|
|||
Assert.AreEqual(rootManifest.Relationships.Count, 0);
|
||||
Assert.AreEqual(subManifest.Relationships.Count, 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Testing calculation of relationships and that those relationships are
|
||||
/// properly added to manifest objects
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestCalculateRelationshipsOnResolvedEntities()
|
||||
{
|
||||
var expectedResolvedManifestRels = JToken.Parse(TestHelper.GetExpectedOutputFileContent(testsSubpath, "TestCalculateRelationshipsOnResolvedEntities", "expectedResolvedManifestRels.json")).ToObject<List<E2ERelationship>>();
|
||||
var expectedResolvedSubManifestRels = JToken.Parse(TestHelper.GetExpectedOutputFileContent(testsSubpath, "TestCalculateRelationshipsOnResolvedEntities", "expectedResolvedSubManifestRels.json")).ToObject<List<E2ERelationship>>();
|
||||
|
||||
var testInputPath = TestHelper.GetInputFolderPath(testsSubpath, "TestCalculateRelationshipsOnResolvedEntities");
|
||||
CdmCorpusDefinition corpus = new CdmCorpusDefinition();
|
||||
corpus.SetEventCallback(new Utilities.EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
corpus.Storage.Mount("local", new LocalAdapter(testInputPath));
|
||||
corpus.Storage.DefaultNamespace = "local";
|
||||
|
||||
var rootManifest = await corpus.FetchObjectAsync<CdmManifestDefinition>("local:/default.manifest.cdm.json");
|
||||
|
||||
var resolvedManifest = await LoadAndResolveManifest(corpus, rootManifest, "-resolved");
|
||||
string subManifestPath = corpus.Storage.CreateAbsoluteCorpusPath(resolvedManifest.SubManifests[0].Definition);
|
||||
CdmManifestDefinition subManifest = await corpus.FetchObjectAsync<CdmManifestDefinition>(subManifestPath) as CdmManifestDefinition;
|
||||
|
||||
// using createResolvedManifest will only populate exclusive relationships
|
||||
Assert.AreEqual(resolvedManifest.Relationships.Count, expectedResolvedManifestRels.Count);
|
||||
Assert.AreEqual(subManifest.Relationships.Count, expectedResolvedSubManifestRels.Count);
|
||||
|
||||
// check that each relationship has been created correctly
|
||||
foreach (E2ERelationship expectedRel in expectedResolvedManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = resolvedManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedRel.ToEntity
|
||||
&& x.ToEntityAttribute == expectedRel.ToEntityAttribute
|
||||
).ToList();
|
||||
Assert.AreEqual(found.Count, 1);
|
||||
}
|
||||
|
||||
foreach (E2ERelationship expectedSubRel in expectedResolvedSubManifestRels)
|
||||
{
|
||||
List<CdmE2ERelationship> found = subManifest.Relationships.Where(x =>
|
||||
x.FromEntity == expectedSubRel.FromEntity
|
||||
&& x.FromEntityAttribute == expectedSubRel.FromEntityAttribute
|
||||
&& x.ToEntity == expectedSubRel.ToEntity
|
||||
&& x.ToEntityAttribute == expectedSubRel.ToEntityAttribute
|
||||
).ToList();
|
||||
Assert.AreEqual(found.Count, 1);
|
||||
}
|
||||
|
||||
// it is not enough to check if the relationships are correct.
|
||||
// We need to check if the incoming and outgoing relationships are
|
||||
// correct as well. One being correct can cover up the other being wrong
|
||||
|
||||
// A
|
||||
var aEnt = await corpus.FetchObjectAsync<CdmEntityDefinition>(resolvedManifest.Entities[0].EntityPath, resolvedManifest);
|
||||
var aInRels = corpus.FetchIncomingRelationships(aEnt);
|
||||
var aOutRels = corpus.FetchOutgoingRelationships(aEnt);
|
||||
Assert.AreEqual(aInRels.Count, 0);
|
||||
Assert.AreEqual(aOutRels.Count, 1);
|
||||
Assert.AreEqual(aOutRels[0].FromEntity, "local:/A-resolved.cdm.json/A");
|
||||
Assert.AreEqual(aOutRels[0].ToEntity, "local:/B-resolved.cdm.json/B");
|
||||
|
||||
// B
|
||||
var bEnt = await corpus.FetchObjectAsync<CdmEntityDefinition>(resolvedManifest.Entities[1].EntityPath, resolvedManifest);
|
||||
var bInRels = corpus.FetchIncomingRelationships(bEnt);
|
||||
var bOutRels = corpus.FetchOutgoingRelationships(bEnt);
|
||||
Assert.AreEqual(bInRels.Count, 1);
|
||||
Assert.AreEqual(bInRels[0].FromEntity, "local:/A-resolved.cdm.json/A");
|
||||
Assert.AreEqual(bInRels[0].ToEntity, "local:/B-resolved.cdm.json/B");
|
||||
Assert.AreEqual(bOutRels.Count, 0);
|
||||
|
||||
// C
|
||||
var cEnt = await corpus.FetchObjectAsync<CdmEntityDefinition>(subManifest.Entities[0].EntityPath, subManifest);
|
||||
var cInRels = corpus.FetchIncomingRelationships(cEnt);
|
||||
var cOutRels = corpus.FetchOutgoingRelationships(cEnt);
|
||||
Assert.AreEqual(cInRels.Count, 0);
|
||||
Assert.AreEqual(cOutRels.Count, 2);
|
||||
Assert.AreEqual(cOutRels[0].FromEntity, "local:/sub/C-resolved.cdm.json/C");
|
||||
// TODO: this should point to the resolved entity, currently an open bug
|
||||
Assert.AreEqual(cOutRels[0].ToEntity, "local:/B.cdm.json/B");
|
||||
Assert.AreEqual(cOutRels[1].FromEntity, "local:/sub/C-resolved.cdm.json/C");
|
||||
Assert.AreEqual(cOutRels[1].ToEntity, "local:/sub/D-resolved.cdm.json/D");
|
||||
|
||||
// D
|
||||
var dEnt = await corpus.FetchObjectAsync<CdmEntityDefinition>(subManifest.Entities[1].EntityPath, subManifest);
|
||||
var dInRels = corpus.FetchIncomingRelationships(dEnt);
|
||||
var dOutRels = corpus.FetchOutgoingRelationships(dEnt);
|
||||
Assert.AreEqual(dInRels.Count, 1);
|
||||
Assert.AreEqual(dInRels[0].FromEntity, "local:/sub/C-resolved.cdm.json/C");
|
||||
Assert.AreEqual(dInRels[0].ToEntity, "local:/sub/D-resolved.cdm.json/D");
|
||||
Assert.AreEqual(dOutRels.Count, 0);
|
||||
}
|
||||
|
||||
private async static Task<CdmManifestDefinition> LoadAndResolveManifest(CdmCorpusDefinition corpus, CdmManifestDefinition manifest, string renameSuffix)
|
||||
{
|
||||
Console.WriteLine("Resolving manifest " + manifest.ManifestName + " ...");
|
||||
CdmManifestDefinition resolvedManifest = await manifest.CreateResolvedManifestAsync(manifest.ManifestName + renameSuffix, "{n}-resolved.cdm.json");
|
||||
|
||||
foreach (CdmManifestDeclarationDefinition subManifestDecl in manifest.SubManifests)
|
||||
{
|
||||
CdmManifestDefinition subManifest = await corpus.FetchObjectAsync<CdmManifestDefinition>(subManifestDecl.Definition, manifest);
|
||||
CdmManifestDefinition resolvedSubManifest = await LoadAndResolveManifest(corpus, subManifest, renameSuffix);
|
||||
|
||||
CdmManifestDeclarationDefinition resolvedDecl = corpus.MakeObject<CdmManifestDeclarationDefinition>(CdmObjectType.ManifestDeclarationDef, resolvedSubManifest.ManifestName);
|
||||
resolvedDecl.Definition = corpus.Storage.CreateRelativeCorpusPath(resolvedSubManifest.AtCorpusPath, resolvedManifest);
|
||||
|
||||
resolvedManifest.SubManifests.Add(resolvedDecl);
|
||||
}
|
||||
|
||||
return resolvedManifest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,28 @@
|
|||
/// </summary>
|
||||
private static string testsSubpath = Path.Combine("Cdm", "ResolutionGuidance");
|
||||
|
||||
[TestMethod]
|
||||
public async Task TestResolutionGuidanceCopy()
|
||||
{
|
||||
var corpus = new CdmCorpusDefinition();
|
||||
var resolutionGuidance = new CdmAttributeResolutionGuidance(corpus.Ctx)
|
||||
{
|
||||
expansion = new CdmAttributeResolutionGuidance.Expansion(),
|
||||
entityByReference = new CdmAttributeResolutionGuidance.CdmAttributeResolutionGuidance_EntityByReference(),
|
||||
selectsSubAttribute = new CdmAttributeResolutionGuidance.CdmAttributeResolutionGuidance_SelectsSubAttribute(),
|
||||
imposedDirectives = new List<string>(),
|
||||
removedDirectives = new List<string>()
|
||||
};
|
||||
|
||||
var resolutionGuidanceCopy = resolutionGuidance.Copy() as CdmAttributeResolutionGuidance;
|
||||
|
||||
Assert.IsFalse(Object.ReferenceEquals(resolutionGuidance.expansion, resolutionGuidanceCopy.expansion));
|
||||
Assert.IsFalse(Object.ReferenceEquals(resolutionGuidance.entityByReference, resolutionGuidanceCopy.entityByReference));
|
||||
Assert.IsFalse(Object.ReferenceEquals(resolutionGuidance.selectsSubAttribute, resolutionGuidanceCopy.selectsSubAttribute));
|
||||
Assert.IsFalse(Object.ReferenceEquals(resolutionGuidance.imposedDirectives, resolutionGuidanceCopy.imposedDirectives));
|
||||
Assert.IsFalse(Object.ReferenceEquals(resolutionGuidance.removedDirectives, resolutionGuidanceCopy.removedDirectives));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resolution Guidance Test 01 - Resolve entity by name
|
||||
/// </summary>
|
||||
|
@ -161,7 +183,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -170,7 +192,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "referenceOnly" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -179,7 +201,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "normalized" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -188,7 +210,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "structured" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -197,16 +219,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "referenceOnly", "normalized" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
||||
entityFileName = "referenceOnly_normalized";
|
||||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "referenceOnly", "normalized" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -215,7 +228,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "referenceOnly", "structured" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -224,7 +237,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "normalized", "structured" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
@ -233,7 +246,7 @@
|
|||
resOpt.Directives = new AttributeResolutionDirectiveSet(new HashSet<string> { "referenceOnly", "normalized", "structured" });
|
||||
outputEntityFileName = $"{sourceEntityName}_Resolved_{entityFileName}.cdm.json";
|
||||
resolvedEntityDef = await srcEntityDef.CreateResolvedEntityAsync(outputEntityFileName, resOpt, actualOutputFolder);
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, false, new CopyOptions()))
|
||||
if (await resolvedEntityDef.InDocument.SaveAsAsync(outputEntityFileName, true, new CopyOptions()))
|
||||
{
|
||||
ValidateOutput(outputEntityFileName, testExpectedOutputPath, testActualOutputPath);
|
||||
}
|
||||
|
|
|
@ -164,14 +164,6 @@ namespace Microsoft.CommonDataModel.Tools.Processor
|
|||
await validateStep(CdmValidationStep.Start).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public static void PersistCorpus(CdmCorpusDefinition cdmCorpus, AttributeResolutionDirectiveSet directives, CopyOptions options = null)
|
||||
{
|
||||
if (cdmCorpus?.ChildFolders?.Count == 1)
|
||||
{
|
||||
PersistCorpusFolder(cdmCorpus.RootPath, cdmCorpus.ChildFolders[0], directives, options);
|
||||
}
|
||||
}
|
||||
|
||||
public static void PersistCorpusFolder(string rootPath, CdmFolderDefinition cdmFolder, AttributeResolutionDirectiveSet directiveSet, CopyOptions options = null)
|
||||
{
|
||||
if (cdmFolder != null)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Microsoft.CommonDataModel.ObjectModel.Adapter.Adls\Microsoft.CommonDataModel.ObjectModel.Adapter.Adls.csproj" />
|
||||
<ProjectReference Include="..\Microsoft.CommonDataModel.ObjectModel\Microsoft.CommonDataModel.ObjectModel.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
using Microsoft.CommonDataModel.ObjectModel.Enums;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Persistence.CdmFolder;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Persistence.CdmFolder.Types;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Storage;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Utilities;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
[TestClass]
|
||||
public class DataPartitionTest
|
||||
|
@ -21,7 +23,7 @@
|
|||
private string testsSubpath = Path.Combine("Persistence", "CdmFolder", "DataPartition");
|
||||
|
||||
/// <summary>
|
||||
/// Testing for folder impl instance with local entity declaration having data partitions.
|
||||
/// Testing for Manifest with local entity declaration having data partitions.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TestLoadLocalEntitiyWithDataPartition()
|
||||
|
@ -31,23 +33,59 @@
|
|||
Assert.AreEqual(cdmManifest.Entities.Count, 1);
|
||||
Assert.AreEqual(cdmManifest.Entities[0].ObjectType, CdmObjectType.LocalEntityDeclarationDef);
|
||||
var entity = cdmManifest.Entities[0];
|
||||
Assert.AreEqual(entity.DataPartitions.Count, 1);
|
||||
var partition = entity.DataPartitions[0];
|
||||
Assert.AreEqual(partition.Location, "test/location");
|
||||
Assert.AreEqual(TimeUtils.GetFormattedDateString(partition.LastFileModifiedTime), "2008-09-15T23:53:23.000Z");
|
||||
Assert.AreEqual(partition.ExhibitsTraits.Count, 1);
|
||||
Assert.AreEqual(partition.SpecializedSchema, "teststring");
|
||||
Assert.AreEqual(entity.DataPartitions.Count, 2);
|
||||
var relativePartition = entity.DataPartitions[0];
|
||||
Assert.AreEqual(relativePartition.Name, "Sample data partition");
|
||||
Assert.AreEqual(relativePartition.Location, "test/location");
|
||||
Assert.AreEqual(TimeUtils.GetFormattedDateString(relativePartition.LastFileModifiedTime), "2008-09-15T23:53:23.000Z");
|
||||
Assert.AreEqual(relativePartition.ExhibitsTraits.Count, 1);
|
||||
Assert.AreEqual(relativePartition.SpecializedSchema, "teststring");
|
||||
|
||||
var testList = partition.Arguments["test"];
|
||||
Assert.AreEqual(testList.Count, 2);
|
||||
var testList = relativePartition.Arguments["test"];
|
||||
Assert.AreEqual(testList.Count, 3);
|
||||
Assert.AreEqual(testList[0], "something");
|
||||
Assert.AreEqual(testList[1], "somethingelse");
|
||||
Assert.AreEqual(testList[2], "anotherthing");
|
||||
|
||||
var keyList = partition.Arguments["KEY"];
|
||||
var keyList = relativePartition.Arguments["KEY"];
|
||||
Assert.AreEqual(keyList.Count, 1);
|
||||
Assert.AreEqual(keyList[0], "VALUE");
|
||||
|
||||
Assert.IsFalse(partition.Arguments.ContainsKey("wrong"));
|
||||
Assert.IsFalse(relativePartition.Arguments.ContainsKey("wrong"));
|
||||
|
||||
var absolutePartition = entity.DataPartitions[1];
|
||||
Assert.AreEqual(absolutePartition.Location, "local:/some/test/location");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Testing programmatically creating manifest with partitions and persisting
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TestProgrammaticallyCreatePartitions()
|
||||
{
|
||||
var corpus = new CdmCorpusDefinition();
|
||||
corpus.Storage.Mount("local", new LocalAdapter());
|
||||
var manifest = corpus.MakeObject<CdmManifestDefinition>(CdmObjectType.ManifestDef, "manifest");
|
||||
var entity = manifest.Entities.Add("entity");
|
||||
|
||||
var relativePartition = corpus.MakeObject<CdmDataPartitionDefinition>(CdmObjectType.DataPartitionDef, "relative partition");
|
||||
relativePartition.Location = "relative/path";
|
||||
var absolutePartition = corpus.MakeObject<CdmDataPartitionDefinition>(CdmObjectType.DataPartitionDef, "absolute partition");
|
||||
absolutePartition.Location = "local:/absolute/path";
|
||||
|
||||
entity.DataPartitions.Add(relativePartition);
|
||||
entity.DataPartitions.Add(absolutePartition);
|
||||
|
||||
var manifestData = ManifestPersistence.ToData(manifest, new ResolveOptions(), new CopyOptions());
|
||||
Assert.AreEqual(manifestData.Entities.Count, 1);
|
||||
var entityData = manifestData.Entities[0];
|
||||
var partitionsList = entityData.Value<JArray>("dataPartitions");
|
||||
Assert.AreEqual(partitionsList.Count, 2);
|
||||
var relativePartitionData = partitionsList.First;
|
||||
var absolutePartitionData = partitionsList.Last;
|
||||
|
||||
Assert.AreEqual(relativePartitionData.Value<string>("location"), relativePartition.Location);
|
||||
Assert.AreEqual(absolutePartitionData.Value<string>("location"), absolutePartition.Location);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -82,10 +82,10 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
Assert.AreEqual("docName", cdmManifest.ManifestName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for copy data.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
/// <summary>
|
||||
/// Test for copy data.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TestManifestForCopyData()
|
||||
{
|
||||
var content = TestHelper.GetInputFileContent(testsSubpath, "TestManifestForCopyData", "complete.manifest.cdm.json");
|
||||
|
@ -118,6 +118,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
cdmCorpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
cdmCorpus.Storage.Mount("someNamespace", new LocalAdapter(inputPath));
|
||||
cdmCorpus.Storage.Mount("local", new LocalAdapter(inputPath));
|
||||
cdmCorpus.Storage.Unmount("cdm");
|
||||
cdmCorpus.Storage.DefaultNamespace = "local";
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("someNamespace:/default.manifest.cdm.json");
|
||||
var statusTimeAtLoad = cdmManifest.LastFileStatusCheckTime;
|
||||
|
@ -173,11 +174,11 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
{
|
||||
switch (partition.Location)
|
||||
{
|
||||
case "/partitions/existingPartition.csv":
|
||||
case "partitions/existingPartition.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
break;
|
||||
|
||||
case "/partitions/someSubFolder/someSubPartition.csv":
|
||||
case "partitions/someSubFolder/someSubPartition.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.SpecializedSchema, "test special schema");
|
||||
Assert.IsTrue(partition.LastFileStatusCheckTime > timeBeforeLoad);
|
||||
|
@ -192,28 +193,44 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
Assert.AreEqual(argArray.Count, 1);
|
||||
Assert.AreEqual(argArray[0], "/someSubFolder/someSub");
|
||||
break;
|
||||
case "/partitions/newPartition.csv":
|
||||
case "partitions/newPartition.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 1);
|
||||
break;
|
||||
case "/partitions/2018/folderCapture.csv":
|
||||
case "partitions/2018/folderCapture.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 1);
|
||||
Assert.AreEqual(partition.Arguments.ContainsKey("year"), true);
|
||||
Assert.AreEqual(partition.Arguments["year"][0], "2018");
|
||||
break;
|
||||
case "/partitions/testTooFew.csv":
|
||||
case "partitions/2018/8/15/folderCapture.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 3);
|
||||
Assert.AreEqual(partition.Arguments.ContainsKey("year"), true);
|
||||
Assert.AreEqual(partition.Arguments["year"][0], "2018");
|
||||
Assert.AreEqual(partition.Arguments.ContainsKey("month"), true);
|
||||
Assert.AreEqual(partition.Arguments["month"][0], "8");
|
||||
Assert.AreEqual(partition.Arguments.ContainsKey("day"), true);
|
||||
Assert.AreEqual(partition.Arguments["day"][0], "15");
|
||||
break;
|
||||
case "partitions/2018/8/15/folderCaptureRepeatedGroup.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 1);
|
||||
Assert.AreEqual(partition.Arguments.ContainsKey("day"), true);
|
||||
Assert.AreEqual(partition.Arguments["day"][0], "15");
|
||||
break;
|
||||
case "partitions/testTooFew.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 0);
|
||||
break;
|
||||
case "/partitions/testTooMany.csv":
|
||||
case "partitions/testTooMany.csv":
|
||||
totalExpectedPartitionsFound++;
|
||||
Assert.AreEqual(partition.Arguments.Count, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Assert.AreEqual(totalExpectedPartitionsFound, 6);
|
||||
Assert.AreEqual(totalExpectedPartitionsFound, 8);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -266,8 +283,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
functionParameter1 = statusLevel;
|
||||
functionParameter2 = message1;
|
||||
};
|
||||
var cdmCorpusContext = new ResolveContext(corpus, callback);
|
||||
corpus.Ctx = cdmCorpusContext;
|
||||
corpus.SetEventCallback(callback);
|
||||
|
||||
var absolutePath = corpus.Storage.CreateAbsoluteCorpusPath("Abc",
|
||||
new CdmManifestDefinition(null, null) { Namespace = "cdm", FolderPath = "Mnp" });
|
||||
|
@ -296,8 +312,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
functionParameter1 = statusLevel;
|
||||
functionParameter2 = message1;
|
||||
};
|
||||
var cdmCorpusContext = new ResolveContext(corpus, callback);
|
||||
corpus.Ctx = cdmCorpusContext;
|
||||
corpus.SetEventCallback(callback);
|
||||
|
||||
var absolutePath = corpus.Storage.CreateAbsoluteCorpusPath("./Abc");
|
||||
Assert.IsTrue(functionWasCalled);
|
||||
|
@ -347,8 +362,7 @@ namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.CdmFolder
|
|||
functionParameter1 = statusLevel;
|
||||
functionParameter2 = message1;
|
||||
};
|
||||
var cdmCorpusContext = new ResolveContext(corpus, callback);
|
||||
corpus.Ctx = cdmCorpusContext;
|
||||
corpus.SetEventCallback(callback);
|
||||
|
||||
var absolutePath = corpus.Storage.CreateAbsoluteCorpusPath("Abc",
|
||||
new CdmManifestDefinition(null, null) { Namespace = "cdm", FolderPath = "./Mnp" });
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
namespace Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.ModelJson
|
||||
{
|
||||
using System.IO;
|
||||
|
||||
using Microsoft.CommonDataModel.ObjectModel.Cdm;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using modelJsonPersistence = Microsoft.CommonDataModel.ObjectModel.Persistence.ModelJson;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Persistence.ModelJson.types;
|
||||
|
||||
[TestClass]
|
||||
public class DataPartitionTest : ModelJsonTestsBase
|
||||
{
|
||||
/// <summary>
|
||||
/// The path between TestDataPath and TestName.
|
||||
/// </summary>
|
||||
private string testsSubpath = Path.Combine("Persistence", "ModelJson", "DataPartition");
|
||||
|
||||
/// <summary>
|
||||
/// Testing whether DataPartition Location is consistently populated when:
|
||||
/// 1. Manifest is read directly.
|
||||
/// 2. Manifest is obtained by converting a model.json.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestModelJsonDataPartitionLocationConsistency()
|
||||
{
|
||||
var inputPath = TestHelper.GetInputFolderPath(testsSubpath, "TestModelJsonDataPartitionLocationConsistency");
|
||||
var cdmCorpus = this.GetLocalCorpus(inputPath);
|
||||
var manifestRead = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("default.manifest.cdm.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
Assert.AreEqual("EpisodeOfCare/partition-data.csv", manifestRead.Entities[0].DataPartitions[0].Location);
|
||||
|
||||
var convertedToModelJson = await modelJsonPersistence.ManifestPersistence.ToData(manifestRead, null, null);
|
||||
string location = (convertedToModelJson.Entities[0]["partitions"][0]["location"] as JValue).Value<string>();
|
||||
// Model Json uses absolute adapter path.
|
||||
Assert.IsTrue(location.Contains("\\Microsoft.CommonDataModel\\Microsoft.CommonDataModel.ObjectModel.Tests\\TestData\\Persistence\\ModelJson\\DataPartition\\TestModelJsonDataPartitionLocationConsistency\\Input\\EpisodeOfCare\\partition-data.csv"));
|
||||
|
||||
var cdmCorpus2 = this.GetLocalCorpus(inputPath);
|
||||
var manifestAfterConvertion = await modelJsonPersistence.ManifestPersistence.FromData(cdmCorpus2.Ctx, convertedToModelJson, cdmCorpus2.Storage.FetchRootFolder("local"));
|
||||
Assert.AreEqual("EpisodeOfCare/partition-data.csv", manifestAfterConvertion.Entities[0].DataPartitions[0].Location);
|
||||
|
||||
var cdmCorpus3 = this.GetLocalCorpus(inputPath);
|
||||
var readFile = TestHelper.GetInputFileContent(testsSubpath, "TestModelJsonDataPartitionLocationConsistency", "model.json");
|
||||
var namespaceFolder = cdmCorpus3.Storage.FetchRootFolder("local");
|
||||
var modelJsonAsString = readFile.Replace("C:\\\\cdm\\\\CDM.ObjectModel.CSharp\\\\Microsoft.CommonDataModel\\\\Microsoft.CommonDataModel.ObjectModel.Tests\\\\TestData\\\\Persistence\\\\ModelJson\\\\DataPartition\\\\TestModelJsonDataPartitionLocationConsistency\\\\Input\\\\EpisodeOfCare\\\\partition-data.csv",
|
||||
location.Replace("\\", "\\\\"));
|
||||
|
||||
var manifestReadFromModelJson = await modelJsonPersistence.ManifestPersistence.FromData(cdmCorpus3.Ctx, JsonConvert.DeserializeObject<Model>(modelJsonAsString), namespaceFolder);
|
||||
Assert.AreEqual("EpisodeOfCare/partition-data.csv", manifestReadFromModelJson.Entities[0].DataPartitions[0].Location);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -115,7 +115,7 @@
|
|||
var inputPath = TestHelper.GetInputFolderPath(testsSubpath, "TestModelJsonExtensibility");
|
||||
|
||||
var cdmCorpus = this.GetLocalCorpus(inputPath);
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("SerializerTesting-model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
var obtainedModel = await ManifestPersistence.ToData(cdmManifest, null, null);
|
||||
|
||||
// The imports were generated during processing and are not present in the original file.
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
using Assert = AssertExtension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Cdm;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Persistence.CdmFolder.Types;
|
||||
|
||||
/// <summary>
|
||||
/// The model json tests.
|
||||
|
@ -85,7 +87,7 @@
|
|||
var cdmCorpus = this.GetLocalCorpus(testInputPath);
|
||||
|
||||
var watch = Stopwatch.StartNew();
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("result.manifest.model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
watch.Stop();
|
||||
Assert.Performance(1000, watch.ElapsedMilliseconds, "Loading from data");
|
||||
|
||||
|
@ -149,6 +151,41 @@
|
|||
this.HandleOutput("TestLoadingCdmFolderResultAndSavingModelJson", "model.json", obtainedModelJson);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test if the imports location are relative to the root level file.
|
||||
/// </summary>
|
||||
/// <returns>The <see cref="Task"/>.</returns>
|
||||
[Test]
|
||||
public async Task TestImportsRelativePath()
|
||||
{
|
||||
// the corpus path in the imports are relative to the document where it was defined.
|
||||
// when saving in model.json the documents are flattened to the manifest level
|
||||
// so it is necessary to recalculate the path to be relative to the manifest.
|
||||
var corpus = this.GetLocalCorpus("notImportantLocation");
|
||||
var folder = corpus.Storage.FetchRootFolder("local");
|
||||
|
||||
var manifest = new CdmManifestDefinition(corpus.Ctx, "manifest");
|
||||
var entityDeclaration = manifest.Entities.Add("EntityName", "EntityName/EntityName.cdm.json/EntityName");
|
||||
folder.Documents.Add(manifest);
|
||||
|
||||
var entityFolder = folder.ChildFolders.Add("EntityName");
|
||||
|
||||
var document = new CdmDocumentDefinition(corpus.Ctx, "EntityName.cdm.json");
|
||||
document.Imports.Add("subfolder/EntityName.cdm.json");
|
||||
document.Definitions.Add("EntityName");
|
||||
entityFolder.Documents.Add(document);
|
||||
|
||||
var subFolder = entityFolder.ChildFolders.Add("subfolder");
|
||||
subFolder.Documents.Add("EntityName.cdm.json");
|
||||
|
||||
var data = await ManifestPersistence.ToData(manifest, null, null);
|
||||
|
||||
Assert.AreEqual(1, data.Entities.Count);
|
||||
var imports = data.Entities[0]["cdm:imports"].ToObject<List<Import>>();
|
||||
Assert.AreEqual(1, imports.Count);
|
||||
Assert.AreEqual("EntityName/subfolder/EntityName.cdm.json", imports[0].CorpusPath);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tests loading Model.json and converting to a CdmFolder.
|
||||
/// </summary>
|
||||
|
@ -157,7 +194,7 @@
|
|||
{
|
||||
var testInputPath = TestHelper.GetInputFolderPath(testsSubpath, "TestExtensibilityLoadingModelJsonAndSavingCdmFolder");
|
||||
var cdmCorpus = this.GetLocalCorpus(testInputPath);
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("SerializerTesting-model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
var cdmManifest = await cdmCorpus.FetchObjectAsync<CdmManifestDefinition>("model.json", cdmCorpus.Storage.FetchRootFolder("local"));
|
||||
|
||||
var obtainedCdmFolder = CdmFolderPersistence.ManifestPersistence.ToData(cdmManifest, null, null);
|
||||
|
||||
|
|
|
@ -61,7 +61,11 @@
|
|||
cdmCorpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
|
||||
cdmCorpus.Storage.Mount("local", new LocalAdapter(testFilesRoot));
|
||||
cdmCorpus.Storage.Mount("cdm", new LocalAdapter(SchemaDocsRoot));
|
||||
|
||||
// Unmounts the default cdm and mounts the resource adapter. This will
|
||||
// also implicitely test the resource adapter functionality.
|
||||
cdmCorpus.Storage.Unmount("cdm");
|
||||
|
||||
var hosts = new Dictionary<string, string>();
|
||||
hosts.Add("contoso", "http://contoso.com");
|
||||
cdmCorpus.Storage.Mount("remote", new RemoteAdapter()
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
{
|
||||
using Microsoft.CommonDataModel.ObjectModel.Cdm;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Storage;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Tests.Persistence.Odi;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Utilities;
|
||||
using Microsoft.CommonDataModel.Tools.Processor;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
@ -38,5 +40,106 @@
|
|||
}
|
||||
Assert.IsNull(invalidManifest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test that a document is fetched and saved using the correct persistence class, regardless of the case sensitivity of the file name/extension.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestFetchingAndSavingDocumentsWithCaseInsensitiveCheck()
|
||||
{
|
||||
var testName = "TestFetchingAndSavingDocumentsWithCaseInsensitiveCheck";
|
||||
var testInputPath = TestHelper.GetInputFolderPath(testsSubpath, testName);
|
||||
|
||||
CdmCorpusDefinition corpus = new CdmCorpusDefinition();
|
||||
corpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
LocalAdapter localAdapter = new LocalAdapter(testInputPath);
|
||||
corpus.Storage.Mount("local", localAdapter);
|
||||
corpus.Storage.DefaultNamespace = "local";
|
||||
corpus.Storage.Unmount("cdm");
|
||||
|
||||
|
||||
var manifest = await corpus.FetchObjectAsync<CdmManifestDefinition>("empty.Manifest.cdm.json");
|
||||
var manifestFromModelJson = await corpus.FetchObjectAsync<CdmManifestDefinition>("Model.json");
|
||||
var manifestFromOdi = await corpus.FetchObjectAsync<CdmManifestDefinition>("Odi.json");
|
||||
|
||||
// Swap out the adapter for a fake one so that we aren't actually saving files.
|
||||
Dictionary<string, string> allDocs = new Dictionary<string, string>();
|
||||
var testAdapter = new TestStorageAdapter(allDocs);
|
||||
corpus.Storage.SetAdapter("local", testAdapter);
|
||||
|
||||
var newManifestName = "empty.MANIFEST.CDM.json";
|
||||
await manifest.SaveAsAsync(newManifestName, true);
|
||||
// Verify that manifest persistence was called by comparing the saved document to the original manifest.
|
||||
var serializedManifest = allDocs[$"/{newManifestName}"];
|
||||
var expectedOutputManifest = TestHelper.GetExpectedOutputFileContent(testsSubpath, testName, manifest.Name);
|
||||
TestHelper.AssertSameObjectWasSerialized(expectedOutputManifest, serializedManifest);
|
||||
|
||||
var newManifestFromModelJsonName = "MODEL.json";
|
||||
await manifestFromModelJson.SaveAsAsync(newManifestFromModelJsonName, true);
|
||||
// Verify that model.json persistence was called by comparing the saved document to the original model.json.
|
||||
serializedManifest = allDocs[$"/{newManifestFromModelJsonName}"];
|
||||
expectedOutputManifest = TestHelper.GetExpectedOutputFileContent(testsSubpath, testName, manifestFromModelJson.Name);
|
||||
TestHelper.AssertSameObjectWasSerialized(expectedOutputManifest, serializedManifest);
|
||||
|
||||
var newManifestFromOdiName = "ODI.json";
|
||||
await manifestFromOdi.SaveAsAsync(newManifestFromOdiName, true);
|
||||
// Verify that ODI persistence was called by comparing the saved document to the original ODI document.
|
||||
serializedManifest = allDocs[$"/{newManifestFromOdiName}"];
|
||||
expectedOutputManifest = TestHelper.GetExpectedOutputFileContent(testsSubpath, testName, manifestFromOdi.Name);
|
||||
TestHelper.AssertSameObjectWasSerialized(expectedOutputManifest, serializedManifest);
|
||||
// TODO: We need to check the odi.json for linked documents too, will add it when Bug 232672 is fixed
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test that saving a model.json or odi.json that isn't named exactly as such fails to save.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestSavingInvalidModelJsonAndOdiJsonName()
|
||||
{
|
||||
CdmCorpusDefinition corpus = new CdmCorpusDefinition();
|
||||
corpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
corpus.Storage.Unmount("cdm");
|
||||
corpus.Storage.DefaultNamespace = "local";
|
||||
var manifest = new CdmManifestDefinition(corpus.Ctx, "manifest");
|
||||
corpus.Storage.FetchRootFolder("local").Documents.Add(manifest);
|
||||
|
||||
|
||||
Dictionary<string, string> allDocs = new Dictionary<string, string>();
|
||||
var testAdapter = new TestStorageAdapter(allDocs);
|
||||
corpus.Storage.SetAdapter("local", testAdapter);
|
||||
|
||||
var newManifestFromModelJsonName = "my.model.json";
|
||||
await manifest.SaveAsAsync(newManifestFromModelJsonName, true);
|
||||
// TODO: because we can load documents properly now, SaveAsAsync returns false. Will check the value returned from SaveAsAsync() when the problem is solved
|
||||
Assert.IsFalse(allDocs.ContainsKey($"/{newManifestFromModelJsonName}"));
|
||||
|
||||
var newManifestFromOdiName = "my.odi.json";
|
||||
await manifest.SaveAsAsync(newManifestFromOdiName, true);
|
||||
Assert.IsFalse(allDocs.ContainsKey($"/{newManifestFromOdiName}"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test that loading a model.json or odi.json that isn't named exactly as such fails to load.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestLoadingInvalidModelJsonAndOdiJsonName()
|
||||
{
|
||||
var testName = "TestLoadingInvalidModelJsonAndOdiJsonName";
|
||||
var testInputPath = TestHelper.GetInputFolderPath(testsSubpath, testName);
|
||||
|
||||
CdmCorpusDefinition corpus = new CdmCorpusDefinition();
|
||||
corpus.SetEventCallback(new EventCallback { Invoke = CommonDataModelLoader.ConsoleStatusReport }, CdmStatusLevel.Warning);
|
||||
corpus.Storage.Mount("local", new LocalAdapter(testInputPath));
|
||||
corpus.Storage.DefaultNamespace = "local";
|
||||
|
||||
// We are trying to load a file with an invalid name, so FetchObjectAsync() should just return null.
|
||||
var invalidModelJson = await corpus.FetchObjectAsync<CdmManifestDefinition>("test.model.json");
|
||||
Assert.IsNull(invalidModelJson);
|
||||
|
||||
var invalidOdiJson = await corpus.FetchObjectAsync<CdmManifestDefinition>("test.odi.json");
|
||||
Assert.IsNull(invalidOdiJson);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
using Microsoft.CommonDataModel.ObjectModel.Cdm;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Storage;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using NUnit.Framework.Internal;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.CommonDataModel.ObjectModel.Tests.Storage
|
||||
{
|
||||
[TestClass]
|
||||
public class ResourceAdapterTests
|
||||
{
|
||||
[TestMethod]
|
||||
public void TestCreateCorpusPath()
|
||||
{
|
||||
var adapter = new ResourceAdapter();
|
||||
|
||||
var path = adapter.CreateCorpusPath("Microsoft.CommonDataModel.ObjectModel.Resources.ODI_analogs.ODIEntity.cdm.json");
|
||||
Assert.AreEqual("/ODI-analogs/ODIEntity.cdm.json", path);
|
||||
|
||||
path = adapter.CreateCorpusPath("Microsoft.CommonDataModel.ObjectModel.Resources.ODI_analogs.customer.ODIEntity.cdm.json");
|
||||
Assert.AreEqual("/ODI-analogs/customer/ODIEntity.cdm.json", path);
|
||||
|
||||
path = adapter.CreateCorpusPath("Microsoft.CommonDataModel.ObjectModel.Resources.extensions.pbi.extension.cdm.json");
|
||||
Assert.AreEqual("/extensions/pbi.extension.cdm.json", path);
|
||||
|
||||
path = adapter.CreateCorpusPath("Microsoft.CommonDataModel.ObjectModel.Resources.primitives.cdm.json");
|
||||
Assert.AreEqual("/primitives.cdm.json", path);
|
||||
|
||||
path = adapter.CreateCorpusPath("Microsoft.CommonDataModel.ObjectModel.Resources.ODI_analogs.customer._allImports.cdm.json");
|
||||
Assert.AreEqual("/ODI-analogs/customer/_allImports.cdm.json", path);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestCreateAdapterPath()
|
||||
{
|
||||
var adapter = new ResourceAdapter();
|
||||
|
||||
var path = adapter.CreateAdapterPath("/ODI-analogs/ODIEntity.cdm.json");
|
||||
Assert.AreEqual("Microsoft.CommonDataModel.ObjectModel.Resources.ODI_analogs.ODIEntity.cdm.json", path);
|
||||
|
||||
path = adapter.CreateAdapterPath("/ODI-analogs/customer/ODIEntity.cdm.json");
|
||||
Assert.AreEqual("Microsoft.CommonDataModel.ObjectModel.Resources.ODI_analogs.customer.ODIEntity.cdm.json", path);
|
||||
|
||||
path = adapter.CreateAdapterPath("/extensions/pbi.extension.cdm.json");
|
||||
Assert.AreEqual("Microsoft.CommonDataModel.ObjectModel.Resources.extensions.pbi.extension.cdm.json", path);
|
||||
|
||||
path = adapter.CreateAdapterPath("/primitives.cdm.json");
|
||||
Assert.AreEqual("Microsoft.CommonDataModel.ObjectModel.Resources.primitives.cdm.json", path);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,12 +1,10 @@
|
|||
namespace Microsoft.CommonDataModel.ObjectModel.Tests
|
||||
namespace Microsoft.CommonDataModel.ObjectModel.Tests.Storage
|
||||
{
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Cdm;
|
||||
using Microsoft.CommonDataModel.ObjectModel.Storage;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
[TestClass]
|
||||
public class StorageConfigTests
|
||||
|
@ -14,7 +12,7 @@
|
|||
/// <summary>
|
||||
/// The Storage path.
|
||||
/// </summary>
|
||||
private string testsSubpath = Path.Combine("Storage");
|
||||
private string testsSubpath = "Storage";
|
||||
|
||||
/// <summary>
|
||||
/// Gets local corpus.
|
||||
|
@ -84,5 +82,29 @@
|
|||
Assert.IsNotNull(cdmManifest);
|
||||
Assert.AreEqual(1, unrecognizedAdapters.Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Testing loading and saving resource and system defined adapters.
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public async Task TestSystemAndResourceAdapters()
|
||||
{
|
||||
var path = TestHelper.GetExpectedOutputFolderPath(testsSubpath, "TestSystemAndResourceAdapters");
|
||||
|
||||
// Create a corpus to load the config.
|
||||
var cdmCorpus = this.GetLocalCorpus(path);
|
||||
|
||||
var differentCorpus = new CdmCorpusDefinition();
|
||||
|
||||
differentCorpus.Storage.Unmount("cdm");
|
||||
|
||||
differentCorpus.Storage.DefaultNamespace = "local";
|
||||
|
||||
var resultConfig = differentCorpus.Storage.FetchConfig();
|
||||
|
||||
var outputConfig = await cdmCorpus.Storage.NamespaceAdapters["local"].ReadAsync("/config.json");
|
||||
|
||||
Assert.AreEqual(outputConfig, resultConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
{
|
||||
"fromEntity": "A-resolved.cdm.json/A",
|
||||
"fromEntityAttribute": "AId",
|
||||
"toEntity": "B-resolved.cdm.json/B",
|
||||
"toEntityAttribute": "BId"
|
||||
}
|
||||
]
|
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
{
|
||||
"fromEntity": "C-resolved.cdm.json/C",
|
||||
"fromEntityAttribute": "CId",
|
||||
"toEntity": "D-resolved.cdm.json/D",
|
||||
"toEntityAttribute": "DId"
|
||||
}
|
||||
]
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"$schema": "../schema.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"imports": [
|
||||
{
|
||||
"corpusPath": "cdm:/foundations.cdm.json"
|
||||
},
|
||||
{
|
||||
"corpusPath": "B.cdm.json"
|
||||
}
|
||||
],
|
||||
"definitions": [
|
||||
{
|
||||
"purpose": "identifiedBy",
|
||||
"dataType": "entityId",
|
||||
"name": "AId"
|
||||
},
|
||||
{
|
||||
"entityName": "A",
|
||||
"extendsEntity": "CdmEntity",
|
||||
"hasAttributes": [
|
||||
{
|
||||
"name": "toB",
|
||||
"entity": {
|
||||
"entityReference": "B",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"B/(resolvedAttributes)/BId"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"resolutionGuidance": {
|
||||
"renameFormat": "{m}",
|
||||
"entityByReference": {
|
||||
"allowReference": true,
|
||||
"foreignKeyAttribute": {
|
||||
"purpose": "hasA",
|
||||
"dataType": "entityId",
|
||||
"name": "AId"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"$schema": "../schema.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"imports": [
|
||||
{
|
||||
"corpusPath": "cdm:/foundations.cdm.json"
|
||||
}
|
||||
],
|
||||
"definitions": [
|
||||
{
|
||||
"purpose": "identifiedBy",
|
||||
"dataType": "entityId",
|
||||
"name": "BId"
|
||||
},
|
||||
{
|
||||
"entityName": "B",
|
||||
"extendsEntity": "CdmEntity",
|
||||
"hasAttributes": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"$schema": "CdmFolder.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"manifestName": "relationshipsAreHard",
|
||||
"imports": [
|
||||
{
|
||||
"uri": "cdm:/primitives.cdm.json"
|
||||
}
|
||||
],
|
||||
"entities": [
|
||||
{
|
||||
"entityName": "A",
|
||||
"entitySchema": "A.cdm.json/A"
|
||||
},
|
||||
{
|
||||
"entityName": "B",
|
||||
"entitySchema": "B.cdm.json/B"
|
||||
}
|
||||
],
|
||||
"subManifests": [
|
||||
{
|
||||
"manifestName": "sub",
|
||||
"definition": "sub/sub.manifest.cdm.json"
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
{
|
||||
"$schema": "../schema.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"imports": [
|
||||
{
|
||||
"corpusPath": "cdm:/foundations.cdm.json"
|
||||
},
|
||||
{
|
||||
"corpusPath": "/A.cdm.json"
|
||||
},
|
||||
{
|
||||
"corpusPath": "D.cdm.json"
|
||||
}
|
||||
],
|
||||
"definitions": [
|
||||
{
|
||||
"purpose": "identifiedBy",
|
||||
"dataType": "entityId",
|
||||
"name": "CId"
|
||||
},
|
||||
{
|
||||
"entityName": "C",
|
||||
"extendsEntity": "A",
|
||||
"hasAttributes": [
|
||||
{
|
||||
"name": "toD",
|
||||
"entity": {
|
||||
"entityReference": "D",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"D/(resolvedAttributes)/DId"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"resolutionGuidance": {
|
||||
"renameFormat": "{m}",
|
||||
"entityByReference": {
|
||||
"allowReference": true,
|
||||
"foreignKeyAttribute": {
|
||||
"purpose": "hasA",
|
||||
"dataType": "entityId",
|
||||
"name": "CId"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"$schema": "../schema.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"imports": [
|
||||
{
|
||||
"corpusPath": "cdm:/foundations.cdm.json"
|
||||
}
|
||||
],
|
||||
"definitions": [
|
||||
{
|
||||
"purpose": "identifiedBy",
|
||||
"dataType": "entityId",
|
||||
"name": "DId"
|
||||
},
|
||||
{
|
||||
"entityName": "D",
|
||||
"extendsEntity": "CdmEntity",
|
||||
"hasAttributes": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"$schema": "CdmFolder.cdm.json",
|
||||
"jsonSchemaSemanticVersion": "0.9.0",
|
||||
"manifestName": "relationshipsAreEvenHarder",
|
||||
"imports": [
|
||||
{
|
||||
"uri": "cdm:/primitives.cdm.json"
|
||||
}
|
||||
],
|
||||
"entities": [
|
||||
{
|
||||
"entityName": "C",
|
||||
"entitySchema": "C.cdm.json/C"
|
||||
},
|
||||
{
|
||||
"entityName": "D",
|
||||
"entitySchema": "D.cdm.json/D"
|
||||
}
|
||||
],
|
||||
"subManifests": []
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProduct/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProduct",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"resolvedFrom/Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "SalesProductIdProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_default.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_default.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +172,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -220,18 +196,23 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +245,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_normalized.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_normalized.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +172,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -220,18 +196,23 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +245,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_normalized_structured.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +134,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -182,6 +158,16 @@
|
|||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"attributeGroupReference": {
|
||||
"attributeGroupName": "SalesProductId",
|
||||
|
@ -228,7 +214,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_referenceOnly.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +172,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -220,18 +196,23 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +245,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_referenceOnly_normalized.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +172,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -220,18 +196,23 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +245,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +134,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -182,6 +158,16 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"attributeGroupReference": {
|
||||
"attributeGroupName": "SalesProductId",
|
||||
|
@ -228,7 +214,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_referenceOnly_structured.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +134,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -182,6 +158,16 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"attributeGroupReference": {
|
||||
"attributeGroupName": "SalesProductId",
|
||||
|
@ -228,7 +214,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -68,6 +54,15 @@
|
|||
"Sales_Resolved_structured.cdm.json/hasAttributes/SalesAmount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesTypeAttribute",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json",
|
||||
"definition": "resolvedFrom/Sales/hasAttributes/SalesTypeAttribute",
|
||||
"contents": [
|
||||
"Sales_Resolved_structured.cdm.json/hasAttributes/SalesTypeAttribute"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "attributeDefinition",
|
||||
"name": "SalesProductId",
|
||||
|
@ -79,20 +74,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +134,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -182,6 +158,16 @@
|
|||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesAmount",
|
||||
"dataFormat": "Decimal"
|
||||
},
|
||||
{
|
||||
"name": "SalesTypeAttribute",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.character",
|
||||
"is.dataFormat.big",
|
||||
"is.dataFormat.array"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesTypeAttribute",
|
||||
"dataFormat": "String"
|
||||
},
|
||||
{
|
||||
"attributeGroupReference": {
|
||||
"attributeGroupName": "SalesProductId",
|
||||
|
@ -228,7 +214,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -23,6 +23,13 @@
|
|||
"dataType": "decimal",
|
||||
"name": "SalesAmount"
|
||||
},
|
||||
{
|
||||
"dataType": "string",
|
||||
"name": "SalesTypeAttribute",
|
||||
"resolutionGuidance": {
|
||||
"renameFormat": "{m}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"dataType": "int",
|
||||
"name": "SalesProductId",
|
||||
|
@ -37,9 +44,9 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"resolutionGuidance": {
|
||||
"resolutionGuidance": {
|
||||
"renameFormat": "{m}"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -213,15 +185,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -245,15 +212,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -301,7 +263,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -213,15 +185,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -245,15 +212,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -301,7 +263,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -175,15 +147,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -265,7 +232,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +148,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Guid"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -189,7 +156,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -175,15 +147,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -265,7 +232,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_normalized.cdm.json/attributeContext/Sales_Resolved_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_normalized_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_normalized_structured.cdm.json/attributeContext/Sales_Resolved_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -177,7 +144,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly.cdm.json/attributeContext/Sales_Resolved_referenceOnly.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Int32"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -177,7 +144,8 @@
|
|||
"attributeContext": "Sales_Resolved_referenceOnly_normalized.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/_foreignKey",
|
||||
"dataFormat": "Int32"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_normalized_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_normalized_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_normalized_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -185,7 +152,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_referenceOnly_structured.cdm.json",
|
||||
|
@ -78,21 +64,7 @@
|
|||
"type": "entity",
|
||||
"name": "Product",
|
||||
"parent": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
]
|
||||
"definition": "resolvedFrom/Product"
|
||||
},
|
||||
{
|
||||
"type": "generatedSet",
|
||||
|
@ -124,15 +96,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_referenceOnly_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_referenceOnly_structured.cdm.json/attributeContext/Sales_Resolved_referenceOnly_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -185,7 +152,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_structured.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_structured.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -153,15 +125,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_structured.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_structured.cdm.json/attributeContext/Sales_Resolved_structured.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -228,7 +195,8 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,20 +9,6 @@
|
|||
"definitions": [
|
||||
{
|
||||
"entityName": "Sales_Resolved_default.cdm.json",
|
||||
"exhibitsTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributeContext": {
|
||||
"type": "entity",
|
||||
"name": "Sales_Resolved_default.cdm.json",
|
||||
|
@ -79,20 +65,6 @@
|
|||
"name": "Product",
|
||||
"parent": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId",
|
||||
"definition": "resolvedFrom/Product",
|
||||
"appliedTraits": [
|
||||
{
|
||||
"traitReference": "is.CDM.entityVersion",
|
||||
"arguments": [
|
||||
"0.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Product/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contents": [
|
||||
{
|
||||
"type": "entityReferenceExtends",
|
||||
|
@ -191,15 +163,10 @@
|
|||
{
|
||||
"name": "SalesId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/SalesId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -223,15 +190,10 @@
|
|||
{
|
||||
"name": "ProductId",
|
||||
"appliedTraits": [
|
||||
"is.dataFormat.integer",
|
||||
{
|
||||
"traitReference": "is.identifiedBy",
|
||||
"arguments": [
|
||||
"Sales_Resolved_default.cdm.json/(resolvedAttributes)/ProductId"
|
||||
]
|
||||
}
|
||||
"is.dataFormat.integer"
|
||||
],
|
||||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductId",
|
||||
"isPrimaryKey": true,
|
||||
"dataFormat": "Int32"
|
||||
},
|
||||
{
|
||||
|
@ -264,7 +226,8 @@
|
|||
"attributeContext": "Sales_Resolved_default.cdm.json/attributeContext/Sales_Resolved_default.cdm.json/SalesProductId/_generatedAttributeSet/_generatedAttributeRound0/ProductUnitPrice",
|
||||
"dataFormat": "Decimal"
|
||||
}
|
||||
]
|
||||
],
|
||||
"version": "0.9"
|
||||
}
|
||||
]
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче