├── .gitattributes
├── .gitignore
├── COPYING.txt
├── README.md
├── TEAM.sln
├── TEAM.sln.DotSettings
├── TEAM
├── App.config
├── DataGridViewDataItems.cs
├── DataGridViewDataObjects.cs
├── DataGridViewPhysicalModel.cs
├── DelayedTextBox.cs
├── Files
│ ├── DIM_CUSTOMER.json
│ ├── DIM_CUSTOMER_DAILY_SNAPSHOT.json
│ ├── HUB_CUSTOMER.json
│ ├── HUB_INCENTIVE_OFFER.json
│ ├── HUB_MEMBERSHIP_PLAN.json
│ ├── HUB_SEGMENT.json
│ ├── LNK_CUSTOMER_COSTING.json
│ ├── LNK_CUSTOMER_OFFER.json
│ ├── LNK_MEMBERSHIP.json
│ ├── LNK_RENEWAL_MEMBERSHIP.json
│ ├── LSAT_CUSTOMER_COSTING.json
│ ├── LSAT_CUSTOMER_OFFER.json
│ ├── LSAT_MEMBERSHIP.json
│ ├── PSA_PROFILER_CUSTOMER_CONTACT.json
│ ├── PSA_PROFILER_CUSTOMER_OFFER.json
│ ├── PSA_PROFILER_CUSTOMER_PERSONAL.json
│ ├── PSA_PROFILER_CUST_MEMBERSHIP.json
│ ├── PSA_PROFILER_ESTIMATED_WORTH.json
│ ├── PSA_PROFILER_OFFER.json
│ ├── PSA_PROFILER_PERSONALISED_COSTING.json
│ ├── PSA_PROFILER_PLAN.json
│ ├── PSA_USERMANAGED_SEGMENT.json
│ ├── PhysicalModel
│ │ ├── 000_Source
│ │ │ └── dbo
│ │ │ │ ├── CUSTOMER_CONTACT.json
│ │ │ │ ├── CUSTOMER_OFFER.json
│ │ │ │ ├── CUSTOMER_PERSONAL.json
│ │ │ │ ├── CUST_MEMBERSHIP.json
│ │ │ │ ├── ESTIMATED_WORTH.json
│ │ │ │ ├── OFFER.json
│ │ │ │ ├── PERSONALISED_COSTING.json
│ │ │ │ └── PLAN.json
│ │ ├── 100_Staging_Area
│ │ │ └── dbo
│ │ │ │ ├── STG_PROFILER_CUSTOMER_CONTACT.json
│ │ │ │ ├── STG_PROFILER_CUSTOMER_OFFER.json
│ │ │ │ ├── STG_PROFILER_CUSTOMER_PERSONAL.json
│ │ │ │ ├── STG_PROFILER_CUST_MEMBERSHIP.json
│ │ │ │ ├── STG_PROFILER_ESTIMATED_WORTH.json
│ │ │ │ ├── STG_PROFILER_OFFER.json
│ │ │ │ ├── STG_PROFILER_PERSONALISED_COSTING.json
│ │ │ │ ├── STG_PROFILER_PLAN.json
│ │ │ │ └── STG_USERMANAGED_SEGMENT.json
│ │ ├── 150_Persistent_Staging_Area
│ │ │ └── dbo
│ │ │ │ ├── PSA_PROFILER_CUSTOMER_CONTACT.json
│ │ │ │ ├── PSA_PROFILER_CUSTOMER_OFFER.json
│ │ │ │ ├── PSA_PROFILER_CUSTOMER_PERSONAL.json
│ │ │ │ ├── PSA_PROFILER_CUST_MEMBERSHIP.json
│ │ │ │ ├── PSA_PROFILER_ESTIMATED_WORTH.json
│ │ │ │ ├── PSA_PROFILER_OFFER.json
│ │ │ │ ├── PSA_PROFILER_PERSONALISED_COSTING.json
│ │ │ │ ├── PSA_PROFILER_PLAN.json
│ │ │ │ └── PSA_USERMANAGED_SEGMENT.json
│ │ ├── 200_Integration_Layer
│ │ │ ├── bdv
│ │ │ │ └── vw_CUSTOMER_DERIVED.json
│ │ │ └── dbo
│ │ │ │ ├── HUB_CUSTOMER.json
│ │ │ │ ├── HUB_INCENTIVE_OFFER.json
│ │ │ │ ├── HUB_MEMBERSHIP_PLAN.json
│ │ │ │ ├── HUB_SEGMENT.json
│ │ │ │ ├── LNK_CUSTOMER_COSTING.json
│ │ │ │ ├── LNK_CUSTOMER_OFFER.json
│ │ │ │ ├── LNK_MEMBERSHIP.json
│ │ │ │ ├── LNK_RENEWAL_MEMBERSHIP.json
│ │ │ │ ├── LSAT_CUSTOMER_COSTING.json
│ │ │ │ ├── LSAT_CUSTOMER_OFFER.json
│ │ │ │ ├── LSAT_MEMBERSHIP.json
│ │ │ │ ├── SAT_CUSTOMER.json
│ │ │ │ ├── SAT_CUSTOMER_CONTACT_DETAILS.json
│ │ │ │ ├── SAT_CUSTOMER_DERIVED.json
│ │ │ │ ├── SAT_INCENTIVE_OFFER.json
│ │ │ │ ├── SAT_MEMBERSHIP_PLAN_DETAIL.json
│ │ │ │ ├── SAT_MEMBERSHIP_PLAN_VALUATION.json
│ │ │ │ ├── SAT_SEGMENT.json
│ │ │ │ └── vw_CUSTOMER_DERIVED.json
│ │ └── 300_Presentation_Layer
│ │ │ └── dbo
│ │ │ ├── DIM_CUSTOMER.json
│ │ │ └── DIM_CUSTOMER_DAILY_SNAPSHOT.json
│ ├── SAT_CUSTOMER.json
│ ├── SAT_CUSTOMER_CONTACT_DETAILS.json
│ ├── SAT_CUSTOMER_DERIVED.json
│ ├── SAT_INCENTIVE_OFFER.json
│ ├── SAT_MEMBERSHIP_PLAN_DETAIL.json
│ ├── SAT_MEMBERSHIP_PLAN_VALUATION.json
│ ├── SAT_SEGMENT.json
│ ├── STG_PROFILER_CUSTOMER_CONTACT.json
│ ├── STG_PROFILER_CUSTOMER_OFFER.json
│ ├── STG_PROFILER_CUSTOMER_PERSONAL.json
│ ├── STG_PROFILER_CUST_MEMBERSHIP.json
│ ├── STG_PROFILER_ESTIMATED_WORTH.json
│ ├── STG_PROFILER_OFFER.json
│ ├── STG_PROFILER_PERSONALISED_COSTING.json
│ ├── STG_PROFILER_PLAN.json
│ ├── VDW_Samples_TEAM_Attribute_Mapping.json
│ └── sample_TEAM_Attribute_Mapping.json
├── FodyWeavers.xml
├── FodyWeavers.xsd
├── Form_About.Designer.cs
├── Form_About.cs
├── Form_About.resx
├── Form_Alert.Designer.cs
├── Form_Alert.cs
├── Form_Alert.resx
├── Form_Base.Designer.cs
├── Form_Base.cs
├── Form_Base.resx
├── Form_Connection_Selection.Designer.cs
├── Form_Connection_Selection.cs
├── Form_Connection_Selection.resx
├── Form_Edit_DataObject.Designer.cs
├── Form_Edit_DataObject.cs
├── Form_Edit_DataObject.resx
├── Form_Edit_DataObjectMapping.Designer.cs
├── Form_Edit_DataObjectMapping.cs
├── Form_Edit_DataObjectMapping.resx
├── Form_Json_Configuration.Designer.cs
├── Form_Json_Configuration.cs
├── Form_Json_Configuration.resx
├── Form_Main.Designer.cs
├── Form_Main.cs
├── Form_Main.resx
├── Form_Manage_Configuration.Designer.cs
├── Form_Manage_Configuration.cs
├── Form_Manage_Configuration.resx
├── Form_Manage_Metadata.Designer.cs
├── Form_Manage_Metadata.cs
├── Form_Manage_Metadata.resx
├── Form_Repository.Designer.cs
├── Form_Repository.cs
├── Form_Repository.resx
├── Form_Validation.Designer.cs
├── Form_Validation.cs
├── Form_Validation.resx
├── GlobalSuppressions.cs
├── Libraries
│ └── Snowflake.Data.dll
├── LocalTeamEnvironmentConfiguration.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ └── app.manifest
├── Resources
│ ├── CogIcon.ico
│ ├── CubeIcon.ico
│ ├── DocumentationIcon.ico
│ ├── ETLIcon.ico
│ ├── ExitApplication.ico
│ ├── HelpIconSmall.ico
│ ├── LinkIcon.ico
│ ├── OpenDirectoryIcon.ico
│ ├── OpenFileIcon.ico
│ ├── Ravos-logo-small.ico
│ ├── Ravos-logo-small_transparant.ico
│ ├── SaveFile.ico
│ ├── Time.png
│ ├── database_icon.png
│ ├── fit-16.png
│ ├── ghost-icon.png
│ ├── log-file.png
│ ├── minus-16.png
│ ├── plus-16.png
│ └── transparent-green-checkmark-hi.png
├── Schema
│ └── interfaceDataWarehouseAutomationMetadata.json
├── Scripts
│ ├── generateSampleIntegrationSchema.sql
│ ├── generateSampleIntegrationSchemaView.sql
│ ├── generateSamplePersistentStagingSchema.sql
│ ├── generateSamplePresentationSchema.sql
│ ├── generateSampleSourceSchema.sql
│ └── generateSampleStagingSchema.sql
├── Support
│ └── DataObjectMappingList.sql
├── TEAM.csproj
├── TEAM.deps.json
├── TabPageEnvironments.cs
├── TabPageSnowflakeConnection.cs
├── TabPageSqlServerConnection.cs
├── TeamJsonHandling.cs
├── ThreadHelper.cs
└── ValidationSetting.cs
├── TEAM_Installation_Setup
└── TEAM_Installation_Setup.vdproj
└── Team_Library
├── EventLog.cs
├── FileHandling.cs
├── GlobalParameters.cs
├── JsonExportSetting.cs
├── JsonOutputHandling.cs
├── MetadataHandling.cs
├── SortableBindingList.cs
├── TEAM_Library.csproj
├── TeamClassification.cs
├── TeamConfiguration.cs
├── TeamConnection.cs
├── TeamDataItemMapping.cs
├── TeamDataObjectMapping.cs
├── TeamDataObjectMappingsFileCombination.cs
├── TeamEnvironment.cs
├── TeamModelLayer.cs
├── TeamObjectModel.cs
├── TeamPhysicalModel.cs
├── TeamValidation.cs
└── Utility.cs
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 | *.sql diff
15 |
16 | ###############################################################################
17 | # Set the merge driver for project and solution files
18 | #
19 | # Merging from the command prompt will add diff markers to the files if there
20 | # are conflicts (Merging from VS is not affected by the settings below, in VS
21 | # the diff markers are never inserted). Diff markers may cause the following
22 | # file extensions to fail to load in VS. An alternative would be to treat
23 | # these files as binary and thus will always conflict and require user
24 | # intervention with every merge. To do so, just uncomment the entries below
25 | ###############################################################################
26 | #*.sln merge=binary
27 | #*.csproj merge=binary
28 | #*.vbproj merge=binary
29 | #*.vcxproj merge=binary
30 | #*.vcproj merge=binary
31 | #*.dbproj merge=binary
32 | #*.fsproj merge=binary
33 | #*.lsproj merge=binary
34 | #*.wixproj merge=binary
35 | #*.modelproj merge=binary
36 | #*.sqlproj merge=binary
37 | #*.wwaproj merge=binary
38 |
39 | ###############################################################################
40 | # behavior for image files
41 | #
42 | # image files are treated as binary by default.
43 | ###############################################################################
44 | #*.jpg binary
45 | #*.png binary
46 | #*.gif binary
47 |
48 | ###############################################################################
49 | # diff behavior for common document formats
50 | #
51 | # Convert binary document formats to text before diffing them. This feature
52 | # is only available from the command line. Turn it on by uncommenting the
53 | # entries below.
54 | ###############################################################################
55 | #*.doc diff=astextplain
56 | #*.DOC diff=astextplain
57 | #*.docx diff=astextplain
58 | #*.DOCX diff=astextplain
59 | #*.dot diff=astextplain
60 | #*.DOT diff=astextplain
61 | #*.pdf diff=astextplain
62 | #*.PDF diff=astextplain
63 | #*.rtf diff=astextplain
64 | #*.RTF diff=astextplain
65 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *Dotfuscated*
6 | *.suo
7 | *.user
8 | *.userosscache
9 | *.sln.docstates
10 |
11 | # User-specific files (MonoDevelop/Xamarin Studio)
12 | *.userprefs
13 |
14 | # Build results
15 | [Dd]ebug/
16 | [Dd]ebugPublic/
17 | [Rr]elease/
18 | [Rr]eleases/
19 | [Xx]64/
20 | [Xx]86/
21 | [Bb]uild/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 |
26 | # Visual Studio 2015 cache/options directory
27 | .vs/
28 | # Uncomment if you have tasks that create the project's static files in wwwroot
29 | #wwwroot/
30 |
31 | # MSTest test Results
32 | [Tt]est[Rr]esult*/
33 | [Bb]uild[Ll]og.*
34 |
35 | # NUNIT
36 | *.VisualState.xml
37 | TestResult.xml
38 |
39 | # Build Results of an ATL Project
40 | [Dd]ebugPS/
41 | [Rr]eleasePS/
42 | dlldata.c
43 |
44 | # DNX
45 | project.lock.json
46 | artifacts/
47 |
48 | *_i.c
49 | *_p.c
50 | *_i.h
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.tmp_proj
65 | *.log
66 | *.vspscc
67 | *.vssscc
68 | .builds
69 | *.pidb
70 | *.svclog
71 | *.scc
72 |
73 | # Chutzpah Test files
74 | _Chutzpah*
75 |
76 | # Visual C++ cache files
77 | ipch/
78 | *.aps
79 | *.ncb
80 | *.opendb
81 | *.opensdf
82 | *.sdf
83 | *.cachefile
84 | *.VC.db
85 |
86 | # Visual Studio profiler
87 | *.psess
88 | *.vsp
89 | *.vspx
90 | *.sap
91 |
92 | # TFS 2012 Local Workspace
93 | $tf/
94 |
95 | # Guidance Automation Toolkit
96 | *.gpState
97 |
98 | # ReSharper is a .NET coding add-in
99 | _ReSharper*/
100 | *.[Rr]e[Ss]harper
101 | *.DotSettings.user
102 |
103 | # JustCode is a .NET coding add-in
104 | .JustCode
105 |
106 | # TeamCity is a build add-in
107 | _TeamCity*
108 |
109 | # DotCover is a Code Coverage Tool
110 | *.dotCover
111 |
112 | # NCrunch
113 | _NCrunch_*
114 | .*crunch*.local.xml
115 | nCrunchTemp_*
116 |
117 | # MightyMoose
118 | *.mm.*
119 | AutoTest.Net/
120 |
121 | # Web workbench (sass)
122 | .sass-cache/
123 |
124 | # Installshield output folder
125 | [Ee]xpress/
126 |
127 | # DocProject is a documentation generator add-in
128 | DocProject/buildhelp/
129 | DocProject/Help/*.HxT
130 | DocProject/Help/*.HxC
131 | DocProject/Help/*.hhc
132 | DocProject/Help/*.hhk
133 | DocProject/Help/*.hhp
134 | DocProject/Help/Html2
135 | DocProject/Help/html
136 |
137 | # Click-Once directory
138 | publish/
139 |
140 | # Publish Web Output
141 | *.[Pp]ublish.xml
142 | *.azurePubxml
143 |
144 | # TODO: Un-comment the next line if you do not want to checkin
145 | # your web deploy settings because they may include unencrypted
146 | # passwords
147 | #*.pubxml
148 | *.publishproj
149 |
150 | # NuGet Packages
151 | *.nupkg
152 | # The packages folder can be ignored because of Package Restore
153 | **/packages/*
154 | # except build/, which is used as an MSBuild target.
155 | !**/packages/build/
156 | # Uncomment if necessary however generally it will be regenerated when needed
157 | #!**/packages/repositories.config
158 | # NuGet v3's project.json files produces more ignoreable files
159 | *.nuget.props
160 | *.nuget.targets
161 |
162 | # Microsoft Azure Build Output
163 | csx/
164 | *.build.csdef
165 |
166 | # Microsoft Azure Emulator
167 | ecf/
168 | rcf/
169 |
170 | # Windows Store app package directory
171 | AppPackages/
172 | BundleArtifacts/
173 |
174 | # Visual Studio cache files
175 | # files ending in .cache can be ignored
176 | *.[Cc]ache
177 | # but keep track of directories ending in .cache
178 | !*.[Cc]ache/
179 |
180 | # Others
181 | ClientBin/
182 | [Ss]tyle[Cc]op.*
183 | ~$*
184 | *~
185 | *.dbmdl
186 | *.dbproj.schemaview
187 | *.pfx
188 | *.publishsettings
189 | node_modules/
190 | orleans.codegen.cs
191 |
192 | # RIA/Silverlight projects
193 | Generated_Code/
194 |
195 | # Backup & report files from converting an old project file
196 | # to a newer Visual Studio version. Backup files are not needed,
197 | # because we have git ;-)
198 | _UpgradeReport_Files/
199 | Backup*/
200 | UpgradeLog*.XML
201 | UpgradeLog*.htm
202 |
203 | # SQL Server files
204 | *.mdf
205 | *.ldf
206 |
207 | # Business Intelligence projects
208 | *.rdl.data
209 | *.bim.layout
210 | *.bim_*.settings
211 |
212 | # Microsoft Fakes
213 | FakesAssemblies/
214 |
215 | # GhostDoc plugin setting file
216 | *.GhostDoc.xml
217 |
218 | # Node.js Tools for Visual Studio
219 | .ntvs_analysis.dat
220 |
221 | # Visual Studio 6 build log
222 | *.plg
223 |
224 | # Visual Studio 6 workspace options file
225 | *.opt
226 |
227 | # Visual Studio LightSwitch build output
228 | **/*.HTMLClient/GeneratedArtifacts
229 | **/*.DesktopClient/GeneratedArtifacts
230 | **/*.DesktopClient/ModelManifest.xml
231 | **/*.Server/GeneratedArtifacts
232 | **/*.Server/ModelManifest.xml
233 | _Pvt_Extensions
234 |
235 | # LightSwitch generated files
236 | GeneratedArtifacts/
237 | ModelManifest.xml
238 |
239 | # Paket dependency manager
240 | .paket/paket.exe
241 |
242 | # FAKE - F# Make
243 | .fake/
244 | TEAM/Dotfuscator/Dotfuscated/TEAM.exe
245 | TEAM/Dotfuscator/Dotfuscated/Map.xml
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TEAM
2 |
3 | The Taxonomy for ETL Automation Metadata (TEAM) is a tool for design metadata management, geared towards data warehouse automation use-cases. It is part of the 'engine' for data warehouse automation, alongside the Virtual Data Warehouse pattern manager and the generic schema for Data Warehouse Automation.
4 |
5 | * Additional information about the 'engine': https://roelantvos.com/blog/the-engine/
6 | * Links to more information on the data warehouse automation ecosystem: https://roelantvos.com/blog/collaboration/
7 | * An overview of the underpinning ideas on the metadata exchange format: https://roelantvos.com/blog/interface-for-data-warehouse-automation/
8 | * The TEAM blog: https://roelantvos.com/blog/team/
9 |
10 | ## Way of working
11 |
12 | Please report any bugs or issues as 'issues' in this Github. These issues will then be grouped into projects, for which I am creating a separate branch for each release.
13 |
14 | Once tested, the branch is merged and a new development branch is started for the next planned release.
15 |
16 | ## Getting started
17 |
18 | TEAM is packaged with a set of sample mappings, both in date warehouse automation JSON compliant format as well as tabular JSON.
19 |
20 | For a really quick way to review the files and conventions, simply install the application, navigate to the Configuration menu and select 'Deploy Examples'. From here, click the 'Generate Sample Mapping Metadata' button.
21 |
22 | This will copy the example file to the metadata directory, and code can be viewed and generated (in VDW) straight away. Open the Design Metadata grid to view the results, for example by right-clicking on a full row and select 'display'. Direct VDW to read these samples for further code generation.
23 |
24 | ## Troubleshooting
25 |
26 | * TEAM will create directories if required, and when not existing yet. To do so, please install TEAM in a location that is less protected by the OS. For example, Program Files directories in Windows will usually require higher level of authorisation for applications to create directories (administrative priviliges). The app will report errors if directories and files cannot be created
27 | * In some cases, configuration files from older versions will report a warning when used in a newer version. This warning will appear each time the app is started. The resolution is to save the configuration again, as this will upgrade the file to the latest format. This applies to JSON output handling and validation rules as well
28 |
--------------------------------------------------------------------------------
/TEAM.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.5.33414.496
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAM", "TEAM\TEAM.csproj", "{73971441-2782-43CF-862C-1F636528858A}"
7 | EndProject
8 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "TEAM_Installation_Setup", "TEAM_Installation_Setup\TEAM_Installation_Setup.vdproj", "{1852EE88-A5AB-4241-AF6E-085ADE61C74A}"
9 | EndProject
10 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAM_Library", "Team_Library\TEAM_Library.csproj", "{CE615A6F-D85D-47C6-B829-0679BEE1C593}"
11 | EndProject
12 | Global
13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 | Debug|Any CPU = Debug|Any CPU
15 | Debug|x64 = Debug|x64
16 | Release|Any CPU = Release|Any CPU
17 | Release|x64 = Release|x64
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {73971441-2782-43CF-862C-1F636528858A}.Debug|Any CPU.ActiveCfg = Debug|x64
21 | {73971441-2782-43CF-862C-1F636528858A}.Debug|Any CPU.Build.0 = Debug|x64
22 | {73971441-2782-43CF-862C-1F636528858A}.Debug|x64.ActiveCfg = Debug|x64
23 | {73971441-2782-43CF-862C-1F636528858A}.Debug|x64.Build.0 = Debug|x64
24 | {73971441-2782-43CF-862C-1F636528858A}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {73971441-2782-43CF-862C-1F636528858A}.Release|Any CPU.Build.0 = Release|Any CPU
26 | {73971441-2782-43CF-862C-1F636528858A}.Release|x64.ActiveCfg = Release|x64
27 | {73971441-2782-43CF-862C-1F636528858A}.Release|x64.Build.0 = Release|x64
28 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Debug|Any CPU.ActiveCfg = Debug
29 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Debug|x64.ActiveCfg = Debug
30 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Debug|x64.Build.0 = Debug
31 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Release|Any CPU.ActiveCfg = Release
32 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Release|x64.ActiveCfg = Release
33 | {1852EE88-A5AB-4241-AF6E-085ADE61C74A}.Release|x64.Build.0 = Release
34 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Debug|Any CPU.ActiveCfg = Debug|x64
35 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Debug|Any CPU.Build.0 = Debug|x64
36 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Debug|x64.ActiveCfg = Debug|x64
37 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Debug|x64.Build.0 = Debug|x64
38 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Release|Any CPU.ActiveCfg = Release|Any CPU
39 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Release|Any CPU.Build.0 = Release|Any CPU
40 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Release|x64.ActiveCfg = Release|x64
41 | {CE615A6F-D85D-47C6-B829-0679BEE1C593}.Release|x64.Build.0 = Release|x64
42 | EndGlobalSection
43 | GlobalSection(SolutionProperties) = preSolution
44 | HideSolutionNode = FALSE
45 | EndGlobalSection
46 | GlobalSection(ExtensibilityGlobals) = postSolution
47 | SolutionGuid = {A5CD8A2D-C96F-4323-BC06-813131FEBF93}
48 | EndGlobalSection
49 | EndGlobal
50 |
--------------------------------------------------------------------------------
/TEAM.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
3 | True
--------------------------------------------------------------------------------
/TEAM/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/TEAM/DelayedTextBox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TEAM
5 | {
6 | public class DelayedTextBox: TextBox
7 | {
8 | private Timer delayTimer;
9 | private int delayInterval;
10 |
11 | public event EventHandler DelayedTextChanged;
12 |
13 | public DelayedTextBox()
14 | {
15 | delayInterval = 1000; // Default delay interval in milliseconds
16 | InitializeDelayTimer();
17 | }
18 |
19 | public int DelayInterval
20 | {
21 | get { return delayInterval; }
22 | set
23 | {
24 | delayInterval = value;
25 | delayTimer.Interval = delayInterval;
26 | }
27 | }
28 |
29 | private void InitializeDelayTimer()
30 | {
31 | delayTimer = new Timer();
32 | delayTimer.Interval = delayInterval;
33 | delayTimer.Tick += DelayTimer_Tick;
34 | }
35 |
36 | protected override void OnTextChanged(EventArgs e)
37 | {
38 | base.OnTextChanged(e);
39 | delayTimer.Stop();
40 | delayTimer.Start();
41 | }
42 |
43 | private void DelayTimer_Tick(object sender, EventArgs e)
44 | {
45 | delayTimer.Stop();
46 | DelayedTextChanged?.Invoke(this, EventArgs.Empty);
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/CUSTOMER_CONTACT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CUSTOMER_CONTACT",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Contact_Number",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CustomerID",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | },
26 | {
27 | "name": "Valid_From",
28 | "dataType": "date",
29 | "characterLength": "3",
30 | "numericPrecision": "10",
31 | "numericScale": "0",
32 | "ordinalPosition": 3,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/CUSTOMER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CUSTOMER_OFFER",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "CustomerID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 1,
13 | "primaryKeyIndicator": "Y",
14 | "multiActiveIndicator": "Y"
15 | },
16 | {
17 | "name": "OfferID",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 2,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | }
26 | ]
27 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/CUSTOMER_PERSONAL.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CUSTOMER_PERSONAL",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Country",
8 | "dataType": "varchar",
9 | "characterLength": "100",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 7,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CustomerID",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | },
26 | {
27 | "name": "DOB",
28 | "dataType": "date",
29 | "characterLength": "3",
30 | "numericPrecision": "10",
31 | "numericScale": "0",
32 | "ordinalPosition": 9,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Pronoun",
38 | "dataType": "varchar",
39 | "characterLength": "1",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "Given",
48 | "dataType": "varchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Postcode",
58 | "dataType": "varchar",
59 | "characterLength": "6",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 6,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Referee_Offer_Made",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 10,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "State",
78 | "dataType": "varchar",
79 | "characterLength": "3",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 5,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Suburb",
88 | "dataType": "varchar",
89 | "characterLength": "50",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 4,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "Surname",
98 | "dataType": "varchar",
99 | "characterLength": "100",
100 | "numericPrecision": "0",
101 | "numericScale": "0",
102 | "ordinalPosition": 3,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "Valid_From",
108 | "dataType": "date",
109 | "characterLength": "3",
110 | "numericPrecision": "10",
111 | "numericScale": "0",
112 | "ordinalPosition": 11,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | }
116 | ]
117 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/CUST_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CUST_MEMBERSHIP",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Comment",
8 | "dataType": "varchar",
9 | "characterLength": "50",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 6,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CustomerID",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | },
26 | {
27 | "name": "End_Date",
28 | "dataType": "datetime",
29 | "characterLength": "8",
30 | "numericPrecision": "23",
31 | "numericScale": "3",
32 | "ordinalPosition": 4,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Plan_Code",
38 | "dataType": "varchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "Start_Date",
48 | "dataType": "datetime",
49 | "characterLength": "8",
50 | "numericPrecision": "23",
51 | "numericScale": "3",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Status",
58 | "dataType": "varchar",
59 | "characterLength": "10",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 5,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | }
66 | ]
67 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/ESTIMATED_WORTH.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ESTIMATED_WORTH",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Date_effective",
8 | "dataType": "datetime",
9 | "characterLength": "8",
10 | "numericPrecision": "23",
11 | "numericScale": "3",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "Y",
14 | "multiActiveIndicator": "Y"
15 | },
16 | {
17 | "name": "Plan_Code",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | },
26 | {
27 | "name": "Value_Amount",
28 | "dataType": "numeric",
29 | "characterLength": "9",
30 | "numericPrecision": "18",
31 | "numericScale": "0",
32 | "ordinalPosition": 3,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "OFFER",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Offer_Long_Description",
8 | "dataType": "varchar",
9 | "characterLength": "100",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "OfferID",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | }
26 | ]
27 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/PERSONALISED_COSTING.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PERSONALISED_COSTING",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Date_effective",
8 | "dataType": "datetime",
9 | "characterLength": "8",
10 | "numericPrecision": "23",
11 | "numericScale": "3",
12 | "ordinalPosition": 4,
13 | "primaryKeyIndicator": "Y",
14 | "multiActiveIndicator": "Y"
15 | },
16 | {
17 | "name": "Member",
18 | "dataType": "int",
19 | "characterLength": "4",
20 | "numericPrecision": "10",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "Y"
25 | },
26 | {
27 | "name": "Monthly_Cost",
28 | "dataType": "numeric",
29 | "characterLength": "9",
30 | "numericPrecision": "18",
31 | "numericScale": "0",
32 | "ordinalPosition": 5,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Plan_Code",
38 | "dataType": "varchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "Segment",
48 | "dataType": "varchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/000_Source/dbo/PLAN.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PLAN",
3 | "database": "000_Source",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "Plan_Code",
8 | "dataType": "varchar",
9 | "characterLength": "100",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 1,
13 | "primaryKeyIndicator": "Y",
14 | "multiActiveIndicator": "Y"
15 | },
16 | {
17 | "name": "Plan_Desc",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 2,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "Renewal_Plan_Code",
28 | "dataType": "varchar",
29 | "characterLength": "100",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 3,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | }
36 | ]
37 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_CUSTOMER_CONTACT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_CUSTOMER_CONTACT",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Contact_Number",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Valid_From",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_CUSTOMER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_CUSTOMER_OFFER",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CustomerID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 7,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "OfferID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_CUSTOMER_PERSONAL.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_CUSTOMER_PERSONAL",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Country",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 13,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "DOB",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 15,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Pronoun",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 14,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "Given",
78 | "dataType": "nvarchar",
79 | "characterLength": "100",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 8,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "INSCRIPTION_RECORD_ID",
88 | "dataType": "int",
89 | "characterLength": "4",
90 | "numericPrecision": "10",
91 | "numericScale": "0",
92 | "ordinalPosition": 2,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "INSCRIPTION_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 1,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "Postcode",
108 | "dataType": "nvarchar",
109 | "characterLength": "100",
110 | "numericPrecision": "0",
111 | "numericScale": "0",
112 | "ordinalPosition": 12,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "Referee_Offer_Made",
118 | "dataType": "int",
119 | "characterLength": "4",
120 | "numericPrecision": "10",
121 | "numericScale": "0",
122 | "ordinalPosition": 16,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | },
126 | {
127 | "name": "SOURCE_TIMESTAMP",
128 | "dataType": "datetime2",
129 | "characterLength": "8",
130 | "numericPrecision": "27",
131 | "numericScale": "7",
132 | "ordinalPosition": 3,
133 | "primaryKeyIndicator": "N",
134 | "multiActiveIndicator": "N"
135 | },
136 | {
137 | "name": "State",
138 | "dataType": "nvarchar",
139 | "characterLength": "100",
140 | "numericPrecision": "0",
141 | "numericScale": "0",
142 | "ordinalPosition": 11,
143 | "primaryKeyIndicator": "N",
144 | "multiActiveIndicator": "N"
145 | },
146 | {
147 | "name": "Suburb",
148 | "dataType": "nvarchar",
149 | "characterLength": "100",
150 | "numericPrecision": "0",
151 | "numericScale": "0",
152 | "ordinalPosition": 10,
153 | "primaryKeyIndicator": "N",
154 | "multiActiveIndicator": "N"
155 | },
156 | {
157 | "name": "Surname",
158 | "dataType": "nvarchar",
159 | "characterLength": "100",
160 | "numericPrecision": "0",
161 | "numericScale": "0",
162 | "ordinalPosition": 9,
163 | "primaryKeyIndicator": "N",
164 | "multiActiveIndicator": "N"
165 | },
166 | {
167 | "name": "Valid_From",
168 | "dataType": "datetime2",
169 | "characterLength": "8",
170 | "numericPrecision": "27",
171 | "numericScale": "7",
172 | "ordinalPosition": 17,
173 | "primaryKeyIndicator": "N",
174 | "multiActiveIndicator": "N"
175 | }
176 | ]
177 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_CUST_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_CUST_MEMBERSHIP",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Comment",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 12,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "End_Date",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 10,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "INSCRIPTION_RECORD_ID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 2,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "INSCRIPTION_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 1,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Plan_Code",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 8,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "SOURCE_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 3,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "Start_Date",
108 | "dataType": "datetime2",
109 | "characterLength": "8",
110 | "numericPrecision": "27",
111 | "numericScale": "7",
112 | "ordinalPosition": 9,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "Status",
118 | "dataType": "nvarchar",
119 | "characterLength": "100",
120 | "numericPrecision": "0",
121 | "numericScale": "0",
122 | "ordinalPosition": 11,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | }
126 | ]
127 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_ESTIMATED_WORTH.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_ESTIMATED_WORTH",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Date_effective",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Plan_Code",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Value_Amount",
88 | "dataType": "numeric",
89 | "characterLength": "17",
90 | "numericPrecision": "38",
91 | "numericScale": "20",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_OFFER",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Offer_Long_Description",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 8,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "OfferID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_PERSONALISED_COSTING.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_PERSONALISED_COSTING",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Date_effective",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 10,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Member",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "Monthly_Cost",
78 | "dataType": "numeric",
79 | "characterLength": "17",
80 | "numericPrecision": "38",
81 | "numericScale": "20",
82 | "ordinalPosition": 11,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Plan_Code",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "Segment",
98 | "dataType": "nvarchar",
99 | "characterLength": "100",
100 | "numericPrecision": "0",
101 | "numericScale": "0",
102 | "ordinalPosition": 8,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "SOURCE_TIMESTAMP",
108 | "dataType": "datetime2",
109 | "characterLength": "8",
110 | "numericPrecision": "27",
111 | "numericScale": "7",
112 | "ordinalPosition": 3,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | }
116 | ]
117 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_PROFILER_PLAN.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_PROFILER_PLAN",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Plan_Code",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 7,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Plan_Desc",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "Renewal_Plan_Code",
78 | "dataType": "nvarchar",
79 | "characterLength": "100",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 9,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "SOURCE_TIMESTAMP",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 3,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/100_Staging_Area/dbo/STG_USERMANAGED_SEGMENT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "STG_USERMANAGED_SEGMENT",
3 | "database": "100_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Demographic_Segment_Code",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 7,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "Demographic_Segment_Description",
48 | "dataType": "nvarchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 8,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_CUSTOMER_CONTACT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_CUSTOMER_CONTACT",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Contact_Number",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "Y"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Valid_From",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_CUSTOMER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_CUSTOMER_OFFER",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CustomerID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 7,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "OfferID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_CUSTOMER_PERSONAL.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_CUSTOMER_PERSONAL",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Country",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 13,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "DOB",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 15,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Pronoun",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 14,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "Given",
78 | "dataType": "nvarchar",
79 | "characterLength": "100",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 8,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "INSCRIPTION_RECORD_ID",
88 | "dataType": "int",
89 | "characterLength": "4",
90 | "numericPrecision": "10",
91 | "numericScale": "0",
92 | "ordinalPosition": 2,
93 | "primaryKeyIndicator": "Y",
94 | "multiActiveIndicator": "Y"
95 | },
96 | {
97 | "name": "INSCRIPTION_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 1,
103 | "primaryKeyIndicator": "Y",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "Postcode",
108 | "dataType": "nvarchar",
109 | "characterLength": "100",
110 | "numericPrecision": "0",
111 | "numericScale": "0",
112 | "ordinalPosition": 12,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "Referee_Offer_Made",
118 | "dataType": "int",
119 | "characterLength": "4",
120 | "numericPrecision": "10",
121 | "numericScale": "0",
122 | "ordinalPosition": 16,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | },
126 | {
127 | "name": "SOURCE_TIMESTAMP",
128 | "dataType": "datetime2",
129 | "characterLength": "8",
130 | "numericPrecision": "27",
131 | "numericScale": "7",
132 | "ordinalPosition": 3,
133 | "primaryKeyIndicator": "N",
134 | "multiActiveIndicator": "N"
135 | },
136 | {
137 | "name": "State",
138 | "dataType": "nvarchar",
139 | "characterLength": "100",
140 | "numericPrecision": "0",
141 | "numericScale": "0",
142 | "ordinalPosition": 11,
143 | "primaryKeyIndicator": "N",
144 | "multiActiveIndicator": "N"
145 | },
146 | {
147 | "name": "Suburb",
148 | "dataType": "nvarchar",
149 | "characterLength": "100",
150 | "numericPrecision": "0",
151 | "numericScale": "0",
152 | "ordinalPosition": 10,
153 | "primaryKeyIndicator": "N",
154 | "multiActiveIndicator": "N"
155 | },
156 | {
157 | "name": "Surname",
158 | "dataType": "nvarchar",
159 | "characterLength": "100",
160 | "numericPrecision": "0",
161 | "numericScale": "0",
162 | "ordinalPosition": 9,
163 | "primaryKeyIndicator": "N",
164 | "multiActiveIndicator": "N"
165 | },
166 | {
167 | "name": "Valid_From",
168 | "dataType": "datetime2",
169 | "characterLength": "8",
170 | "numericPrecision": "27",
171 | "numericScale": "7",
172 | "ordinalPosition": 17,
173 | "primaryKeyIndicator": "N",
174 | "multiActiveIndicator": "N"
175 | }
176 | ]
177 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_CUST_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_CUST_MEMBERSHIP",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Comment",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 12,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CustomerID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "End_Date",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 10,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "INSCRIPTION_RECORD_ID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 2,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "INSCRIPTION_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 1,
83 | "primaryKeyIndicator": "Y",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Plan_Code",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 8,
93 | "primaryKeyIndicator": "Y",
94 | "multiActiveIndicator": "Y"
95 | },
96 | {
97 | "name": "SOURCE_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 3,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "Start_Date",
108 | "dataType": "datetime2",
109 | "characterLength": "8",
110 | "numericPrecision": "27",
111 | "numericScale": "7",
112 | "ordinalPosition": 9,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "Status",
118 | "dataType": "nvarchar",
119 | "characterLength": "100",
120 | "numericPrecision": "0",
121 | "numericScale": "0",
122 | "ordinalPosition": 11,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | }
126 | ]
127 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_ESTIMATED_WORTH.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_ESTIMATED_WORTH",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Date_effective",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Plan_Code",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Value_Amount",
88 | "dataType": "numeric",
89 | "characterLength": "17",
90 | "numericPrecision": "38",
91 | "numericScale": "20",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_OFFER",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Offer_Long_Description",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 8,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "OfferID",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_PERSONALISED_COSTING.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_PERSONALISED_COSTING",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Date_effective",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 10,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "Member",
68 | "dataType": "int",
69 | "characterLength": "4",
70 | "numericPrecision": "10",
71 | "numericScale": "0",
72 | "ordinalPosition": 7,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "Monthly_Cost",
78 | "dataType": "numeric",
79 | "characterLength": "17",
80 | "numericPrecision": "38",
81 | "numericScale": "20",
82 | "ordinalPosition": 11,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "Plan_Code",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 9,
93 | "primaryKeyIndicator": "Y",
94 | "multiActiveIndicator": "Y"
95 | },
96 | {
97 | "name": "Segment",
98 | "dataType": "nvarchar",
99 | "characterLength": "100",
100 | "numericPrecision": "0",
101 | "numericScale": "0",
102 | "ordinalPosition": 8,
103 | "primaryKeyIndicator": "Y",
104 | "multiActiveIndicator": "Y"
105 | },
106 | {
107 | "name": "SOURCE_TIMESTAMP",
108 | "dataType": "datetime2",
109 | "characterLength": "8",
110 | "numericPrecision": "27",
111 | "numericScale": "7",
112 | "ordinalPosition": 3,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | }
116 | ]
117 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_PROFILER_PLAN.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_PROFILER_PLAN",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "Plan_Code",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 7,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "Y"
65 | },
66 | {
67 | "name": "Plan_Desc",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "Renewal_Plan_Code",
78 | "dataType": "nvarchar",
79 | "characterLength": "100",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 9,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "SOURCE_TIMESTAMP",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 3,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/150_Persistent_Staging_Area/dbo/PSA_USERMANAGED_SEGMENT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PSA_USERMANAGED_SEGMENT",
3 | "database": "150_Persistent_Staging_Area",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "Demographic_Segment_Code",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 7,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "Demographic_Segment_Description",
48 | "dataType": "nvarchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 8,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "Y"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "SOURCE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/bdv/vw_CUSTOMER_DERIVED.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vw_CUSTOMER_DERIVED",
3 | "database": "200_Integration_Layer",
4 | "schema": "bdv",
5 | "columns": [
6 | {
7 | "name": "CHANGE_DATA_INDICATOR",
8 | "dataType": "varchar",
9 | "characterLength": "100",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 4,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_ID",
18 | "dataType": "nvarchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "INSCRIPTION_RECORD_ID",
28 | "dataType": "int",
29 | "characterLength": "4",
30 | "numericPrecision": "10",
31 | "numericScale": "0",
32 | "ordinalPosition": 5,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_TIMESTAMP",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "REFERRAL_OFFER_CLEAN",
48 | "dataType": "varchar",
49 | "characterLength": "7",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 6,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "SOURCE_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 3,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | }
66 | ]
67 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/HUB_CUSTOMER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "HUB_CUSTOMER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_ID",
18 | "dataType": "nvarchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CUSTOMER_SK",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 1,
33 | "primaryKeyIndicator": "Y",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_TIMESTAMP",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | }
46 | ]
47 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/HUB_INCENTIVE_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "HUB_INCENTIVE_OFFER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "INCENTIVE_OFFER_SK",
18 | "dataType": "binary",
19 | "characterLength": "16",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "INSCRIPTION_TIMESTAMP",
28 | "dataType": "datetime2",
29 | "characterLength": "8",
30 | "numericPrecision": "27",
31 | "numericScale": "7",
32 | "ordinalPosition": 3,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "OFFER_ID",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 4,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | }
46 | ]
47 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/HUB_MEMBERSHIP_PLAN.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "HUB_MEMBERSHIP_PLAN",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "INSCRIPTION_TIMESTAMP",
18 | "dataType": "datetime2",
19 | "characterLength": "8",
20 | "numericPrecision": "27",
21 | "numericScale": "7",
22 | "ordinalPosition": 3,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "MEMBERSHIP_PLAN_SK",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 1,
33 | "primaryKeyIndicator": "Y",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "PLAN_CODE",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 4,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "PLAN_SUFFIX",
48 | "dataType": "nvarchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 5,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/HUB_SEGMENT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "HUB_SEGMENT",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "INSCRIPTION_TIMESTAMP",
18 | "dataType": "datetime2",
19 | "characterLength": "8",
20 | "numericPrecision": "27",
21 | "numericScale": "7",
22 | "ordinalPosition": 3,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "SEGMENT_CODE",
28 | "dataType": "nvarchar",
29 | "characterLength": "100",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 4,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "SEGMENT_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 1,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "N"
45 | }
46 | ]
47 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LNK_CUSTOMER_COSTING.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LNK_CUSTOMER_COSTING",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_COSTING_SK",
18 | "dataType": "binary",
19 | "characterLength": "16",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CUSTOMER_SK",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 5,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_TIMESTAMP",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "MEMBERSHIP_PLAN_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 4,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "SEGMENT_SK",
58 | "dataType": "binary",
59 | "characterLength": "16",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 6,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | }
66 | ]
67 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LNK_CUSTOMER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LNK_CUSTOMER_OFFER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_OFFER_SK",
18 | "dataType": "binary",
19 | "characterLength": "16",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "Y",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CUSTOMER_SK",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 4,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INCENTIVE_OFFER_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 5,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LNK_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LNK_MEMBERSHIP",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_SK",
18 | "dataType": "binary",
19 | "characterLength": "16",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 4,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "INSCRIPTION_TIMESTAMP",
28 | "dataType": "datetime2",
29 | "characterLength": "8",
30 | "numericPrecision": "27",
31 | "numericScale": "7",
32 | "ordinalPosition": 3,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "MEMBERSHIP_PLAN_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 5,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "MEMBERSHIP_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "SALES_CHANNEL",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 6,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | }
66 | ]
67 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LNK_RENEWAL_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LNK_RENEWAL_MEMBERSHIP",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "INSCRIPTION_TIMESTAMP",
18 | "dataType": "datetime2",
19 | "characterLength": "8",
20 | "numericPrecision": "27",
21 | "numericScale": "7",
22 | "ordinalPosition": 3,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "MEMBERSHIP_PLAN_SK",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 4,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "RENEWAL_MEMBERSHIP_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 1,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "RENEWAL_PLAN_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 5,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | }
56 | ]
57 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LSAT_CUSTOMER_COSTING.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LSAT_CUSTOMER_COSTING",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 6,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 7,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 8,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "COSTING_EFFECTIVE_DATE",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "CUSTOMER_COSTING_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 4,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "Y"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 3,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "PERSONAL_MONTHLY_COST",
78 | "dataType": "numeric",
79 | "characterLength": "17",
80 | "numericPrecision": "38",
81 | "numericScale": "20",
82 | "ordinalPosition": 9,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "STATE_TIMESTAMP",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 5,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LSAT_CUSTOMER_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LSAT_CUSTOMER_OFFER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CUSTOMER_OFFER_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 1,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "STATE_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 4,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | }
76 | ]
77 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/LSAT_MEMBERSHIP.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LSAT_MEMBERSHIP",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "MEMBERSHIP_END_DATE",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 9,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "MEMBERSHIP_SK",
68 | "dataType": "binary",
69 | "characterLength": "16",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "MEMBERSHIP_START_DATE",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 8,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "MEMBERSHIP_STATUS",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 10,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "STATE_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 4,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | }
106 | ]
107 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_CUSTOMER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_CUSTOMER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "COUNTRY",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 13,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CUSTOMER_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "DATE_OF_BIRTH",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 15,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "PREF_GENDER_PRONOUN",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 14,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "GIVEN_NAME",
78 | "dataType": "nvarchar",
79 | "characterLength": "100",
80 | "numericPrecision": "0",
81 | "numericScale": "0",
82 | "ordinalPosition": 8,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "INSCRIPTION_RECORD_ID",
88 | "dataType": "int",
89 | "characterLength": "4",
90 | "numericPrecision": "10",
91 | "numericScale": "0",
92 | "ordinalPosition": 3,
93 | "primaryKeyIndicator": "Y",
94 | "multiActiveIndicator": "Y"
95 | },
96 | {
97 | "name": "INSCRIPTION_TIMESTAMP",
98 | "dataType": "datetime2",
99 | "characterLength": "8",
100 | "numericPrecision": "27",
101 | "numericScale": "7",
102 | "ordinalPosition": 2,
103 | "primaryKeyIndicator": "Y",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "POSTCODE",
108 | "dataType": "nvarchar",
109 | "characterLength": "100",
110 | "numericPrecision": "0",
111 | "numericScale": "0",
112 | "ordinalPosition": 11,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "REFERRAL_OFFER_MADE_INDICATOR",
118 | "dataType": "nvarchar",
119 | "characterLength": "100",
120 | "numericPrecision": "0",
121 | "numericScale": "0",
122 | "ordinalPosition": 16,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | },
126 | {
127 | "name": "STATE",
128 | "dataType": "nvarchar",
129 | "characterLength": "100",
130 | "numericPrecision": "0",
131 | "numericScale": "0",
132 | "ordinalPosition": 12,
133 | "primaryKeyIndicator": "N",
134 | "multiActiveIndicator": "N"
135 | },
136 | {
137 | "name": "STATE_TIMESTAMP",
138 | "dataType": "datetime2",
139 | "characterLength": "8",
140 | "numericPrecision": "27",
141 | "numericScale": "7",
142 | "ordinalPosition": 4,
143 | "primaryKeyIndicator": "N",
144 | "multiActiveIndicator": "N"
145 | },
146 | {
147 | "name": "SUBURB",
148 | "dataType": "nvarchar",
149 | "characterLength": "100",
150 | "numericPrecision": "0",
151 | "numericScale": "0",
152 | "ordinalPosition": 10,
153 | "primaryKeyIndicator": "N",
154 | "multiActiveIndicator": "N"
155 | },
156 | {
157 | "name": "SURNAME",
158 | "dataType": "nvarchar",
159 | "characterLength": "100",
160 | "numericPrecision": "0",
161 | "numericScale": "0",
162 | "ordinalPosition": 9,
163 | "primaryKeyIndicator": "N",
164 | "multiActiveIndicator": "N"
165 | }
166 | ]
167 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_CUSTOMER_CONTACT_DETAILS.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_CUSTOMER_CONTACT_DETAILS",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CONTACT_NUMBER",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 8,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "CUSTOMER_SK",
48 | "dataType": "binary",
49 | "characterLength": "16",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 1,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "INSCRIPTION_RECORD_ID",
58 | "dataType": "int",
59 | "characterLength": "4",
60 | "numericPrecision": "10",
61 | "numericScale": "0",
62 | "ordinalPosition": 3,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "Y"
65 | },
66 | {
67 | "name": "INSCRIPTION_TIMESTAMP",
68 | "dataType": "datetime2",
69 | "characterLength": "8",
70 | "numericPrecision": "27",
71 | "numericScale": "7",
72 | "ordinalPosition": 2,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "STATE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 4,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_CUSTOMER_DERIVED.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_CUSTOMER_DERIVED",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CUSTOMER_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 1,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "REFERRAL_OFFER_CLEAN",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "STATE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 4,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_INCENTIVE_OFFER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_INCENTIVE_OFFER",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INCENTIVE_OFFER_SK",
38 | "dataType": "binary",
39 | "characterLength": "16",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 1,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "INSCRIPTION_RECORD_ID",
48 | "dataType": "int",
49 | "characterLength": "4",
50 | "numericPrecision": "10",
51 | "numericScale": "0",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "Y"
55 | },
56 | {
57 | "name": "INSCRIPTION_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 2,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "OFFER_DESCRIPTION",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "STATE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 4,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_MEMBERSHIP_PLAN_DETAIL.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_MEMBERSHIP_PLAN_DETAIL",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "MEMBERSHIP_PLAN_SK",
58 | "dataType": "binary",
59 | "characterLength": "16",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "PLAN_DESCRIPTION",
68 | "dataType": "nvarchar",
69 | "characterLength": "100",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "STATE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 4,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_MEMBERSHIP_PLAN_VALUATION.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_MEMBERSHIP_PLAN_VALUATION",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 6,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 7,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 8,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 4,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 3,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "MEMBERSHIP_PLAN_SK",
58 | "dataType": "binary",
59 | "characterLength": "16",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "Y",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "PLAN_VALUATION_AMOUNT",
68 | "dataType": "numeric",
69 | "characterLength": "17",
70 | "numericPrecision": "38",
71 | "numericScale": "20",
72 | "ordinalPosition": 9,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "PLAN_VALUATION_DATE",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 2,
83 | "primaryKeyIndicator": "Y",
84 | "multiActiveIndicator": "Y"
85 | },
86 | {
87 | "name": "STATE_TIMESTAMP",
88 | "dataType": "datetime2",
89 | "characterLength": "8",
90 | "numericPrecision": "27",
91 | "numericScale": "7",
92 | "ordinalPosition": 5,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | }
96 | ]
97 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/SAT_SEGMENT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "SAT_SEGMENT",
3 | "database": "200_Integration_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 5,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATA_INDICATOR",
18 | "dataType": "varchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 6,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHECKSUM",
28 | "dataType": "binary",
29 | "characterLength": "16",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 7,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_RECORD_ID",
38 | "dataType": "int",
39 | "characterLength": "4",
40 | "numericPrecision": "10",
41 | "numericScale": "0",
42 | "ordinalPosition": 3,
43 | "primaryKeyIndicator": "Y",
44 | "multiActiveIndicator": "Y"
45 | },
46 | {
47 | "name": "INSCRIPTION_TIMESTAMP",
48 | "dataType": "datetime2",
49 | "characterLength": "8",
50 | "numericPrecision": "27",
51 | "numericScale": "7",
52 | "ordinalPosition": 2,
53 | "primaryKeyIndicator": "Y",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "SEGMENT_DESCRIPTION",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 8,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "SEGMENT_SK ",
68 | "dataType": "binary",
69 | "characterLength": "16",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 1,
73 | "primaryKeyIndicator": "Y",
74 | "multiActiveIndicator": "Y"
75 | },
76 | {
77 | "name": "STATE_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 4,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | }
86 | ]
87 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/200_Integration_Layer/dbo/vw_CUSTOMER_DERIVED.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vw_CUSTOMER_DERIVED",
3 | "database": "200_Integration_Layer",
4 | "schema": "bdv",
5 | "columns": [
6 | {
7 | "name": "CHANGE_DATA_INDICATOR",
8 | "dataType": "varchar",
9 | "characterLength": "100",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 4,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CUSTOMER_ID",
18 | "dataType": "nvarchar",
19 | "characterLength": "100",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 1,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "INSCRIPTION_RECORD_ID",
28 | "dataType": "int",
29 | "characterLength": "4",
30 | "numericPrecision": "10",
31 | "numericScale": "0",
32 | "ordinalPosition": 5,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "INSCRIPTION_TIMESTAMP",
38 | "dataType": "datetime2",
39 | "characterLength": "8",
40 | "numericPrecision": "27",
41 | "numericScale": "7",
42 | "ordinalPosition": 2,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "REFERRAL_OFFER_CLEAN",
48 | "dataType": "varchar",
49 | "characterLength": "7",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 6,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "SOURCE_TIMESTAMP",
58 | "dataType": "datetime2",
59 | "characterLength": "8",
60 | "numericPrecision": "27",
61 | "numericScale": "7",
62 | "ordinalPosition": 3,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | }
66 | ]
67 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/300_Presentation_Layer/dbo/DIM_CUSTOMER.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DIM_CUSTOMER",
3 | "database": "300_Presentation_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "CHANGE_DATA_INDICATOR",
8 | "dataType": "varchar",
9 | "characterLength": "1",
10 | "numericPrecision": "0",
11 | "numericScale": "0",
12 | "ordinalPosition": 7,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CHANGE_DATETIME",
18 | "dataType": "datetime2",
19 | "characterLength": "8",
20 | "numericPrecision": "27",
21 | "numericScale": "7",
22 | "ordinalPosition": 5,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CHANGE_EXPIRY_DATETIME",
28 | "dataType": "datetime2",
29 | "characterLength": "8",
30 | "numericPrecision": "27",
31 | "numericScale": "7",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CONTACT_NUMBER",
38 | "dataType": "nvarchar",
39 | "characterLength": "100",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 17,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "COUNTRY",
48 | "dataType": "nvarchar",
49 | "characterLength": "100",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 15,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "CUSTOMER_ID",
58 | "dataType": "nvarchar",
59 | "characterLength": "100",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 9,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "CUSTOMER_SK",
68 | "dataType": "binary",
69 | "characterLength": "16",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "DATE_OF_BIRTH",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 16,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "DIM_CUSTOMER_SK",
88 | "dataType": "int",
89 | "characterLength": "4",
90 | "numericPrecision": "10",
91 | "numericScale": "0",
92 | "ordinalPosition": 1,
93 | "primaryKeyIndicator": "Y",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "PREF_GENDER_PRONOUN",
98 | "dataType": "nvarchar",
99 | "characterLength": "100",
100 | "numericPrecision": "0",
101 | "numericScale": "0",
102 | "ordinalPosition": 12,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "GIVEN_NAME",
108 | "dataType": "nvarchar",
109 | "characterLength": "100",
110 | "numericPrecision": "0",
111 | "numericScale": "0",
112 | "ordinalPosition": 10,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | },
116 | {
117 | "name": "INSERT_MODULE_INSTANCE_ID",
118 | "dataType": "int",
119 | "characterLength": "4",
120 | "numericPrecision": "10",
121 | "numericScale": "0",
122 | "ordinalPosition": 2,
123 | "primaryKeyIndicator": "N",
124 | "multiActiveIndicator": "N"
125 | },
126 | {
127 | "name": "POSTCODE",
128 | "dataType": "nvarchar",
129 | "characterLength": "100",
130 | "numericPrecision": "0",
131 | "numericScale": "0",
132 | "ordinalPosition": 14,
133 | "primaryKeyIndicator": "N",
134 | "multiActiveIndicator": "N"
135 | },
136 | {
137 | "name": "RECORD_CHECKSUM_TYPE1",
138 | "dataType": "char",
139 | "characterLength": "32",
140 | "numericPrecision": "0",
141 | "numericScale": "0",
142 | "ordinalPosition": 3,
143 | "primaryKeyIndicator": "N",
144 | "multiActiveIndicator": "N"
145 | },
146 | {
147 | "name": "RECORD_CHECKSUM_TYPE2",
148 | "dataType": "char",
149 | "characterLength": "32",
150 | "numericPrecision": "0",
151 | "numericScale": "0",
152 | "ordinalPosition": 4,
153 | "primaryKeyIndicator": "N",
154 | "multiActiveIndicator": "N"
155 | },
156 | {
157 | "name": "STATE",
158 | "dataType": "nvarchar",
159 | "characterLength": "100",
160 | "numericPrecision": "0",
161 | "numericScale": "0",
162 | "ordinalPosition": 18,
163 | "primaryKeyIndicator": "N",
164 | "multiActiveIndicator": "N"
165 | },
166 | {
167 | "name": "SUBURB",
168 | "dataType": "nvarchar",
169 | "characterLength": "100",
170 | "numericPrecision": "0",
171 | "numericScale": "0",
172 | "ordinalPosition": 13,
173 | "primaryKeyIndicator": "N",
174 | "multiActiveIndicator": "N"
175 | },
176 | {
177 | "name": "SURNAME",
178 | "dataType": "nvarchar",
179 | "characterLength": "100",
180 | "numericPrecision": "0",
181 | "numericScale": "0",
182 | "ordinalPosition": 11,
183 | "primaryKeyIndicator": "N",
184 | "multiActiveIndicator": "N"
185 | }
186 | ]
187 | }
--------------------------------------------------------------------------------
/TEAM/Files/PhysicalModel/300_Presentation_Layer/dbo/DIM_CUSTOMER_DAILY_SNAPSHOT.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DIM_CUSTOMER_DAILY_SNAPSHOT",
3 | "database": "300_Presentation_Layer",
4 | "schema": "dbo",
5 | "columns": [
6 | {
7 | "name": "AUDIT_TRAIL_ID",
8 | "dataType": "int",
9 | "characterLength": "4",
10 | "numericPrecision": "10",
11 | "numericScale": "0",
12 | "ordinalPosition": 2,
13 | "primaryKeyIndicator": "N",
14 | "multiActiveIndicator": "N"
15 | },
16 | {
17 | "name": "CONTACT_NUMBER",
18 | "dataType": "nvarchar",
19 | "characterLength": "1000",
20 | "numericPrecision": "0",
21 | "numericScale": "0",
22 | "ordinalPosition": 10,
23 | "primaryKeyIndicator": "N",
24 | "multiActiveIndicator": "N"
25 | },
26 | {
27 | "name": "CUSTOMER_ID",
28 | "dataType": "nvarchar",
29 | "characterLength": "1000",
30 | "numericPrecision": "0",
31 | "numericScale": "0",
32 | "ordinalPosition": 6,
33 | "primaryKeyIndicator": "N",
34 | "multiActiveIndicator": "N"
35 | },
36 | {
37 | "name": "CUSTOMER_SK",
38 | "dataType": "nvarchar",
39 | "characterLength": "1000",
40 | "numericPrecision": "0",
41 | "numericScale": "0",
42 | "ordinalPosition": 5,
43 | "primaryKeyIndicator": "N",
44 | "multiActiveIndicator": "N"
45 | },
46 | {
47 | "name": "DATE_OF_BIRTH",
48 | "dataType": "nvarchar",
49 | "characterLength": "1000",
50 | "numericPrecision": "0",
51 | "numericScale": "0",
52 | "ordinalPosition": 7,
53 | "primaryKeyIndicator": "N",
54 | "multiActiveIndicator": "N"
55 | },
56 | {
57 | "name": "DIM_CUSTOMER_DAILY_SNAPSHOT_SK",
58 | "dataType": "binary",
59 | "characterLength": "16",
60 | "numericPrecision": "0",
61 | "numericScale": "0",
62 | "ordinalPosition": 1,
63 | "primaryKeyIndicator": "N",
64 | "multiActiveIndicator": "N"
65 | },
66 | {
67 | "name": "GIVEN_NAME",
68 | "dataType": "nvarchar",
69 | "characterLength": "1000",
70 | "numericPrecision": "0",
71 | "numericScale": "0",
72 | "ordinalPosition": 8,
73 | "primaryKeyIndicator": "N",
74 | "multiActiveIndicator": "N"
75 | },
76 | {
77 | "name": "INSCRIPTION_TIMESTAMP",
78 | "dataType": "datetime2",
79 | "characterLength": "8",
80 | "numericPrecision": "27",
81 | "numericScale": "7",
82 | "ordinalPosition": 3,
83 | "primaryKeyIndicator": "N",
84 | "multiActiveIndicator": "N"
85 | },
86 | {
87 | "name": "RECORD_SOURCE_INDICATOR",
88 | "dataType": "nvarchar",
89 | "characterLength": "100",
90 | "numericPrecision": "0",
91 | "numericScale": "0",
92 | "ordinalPosition": 4,
93 | "primaryKeyIndicator": "N",
94 | "multiActiveIndicator": "N"
95 | },
96 | {
97 | "name": "REFERRAL_OFFER_CLEAN",
98 | "dataType": "nvarchar",
99 | "characterLength": "1000",
100 | "numericPrecision": "0",
101 | "numericScale": "0",
102 | "ordinalPosition": 11,
103 | "primaryKeyIndicator": "N",
104 | "multiActiveIndicator": "N"
105 | },
106 | {
107 | "name": "SUBURB",
108 | "dataType": "nvarchar",
109 | "characterLength": "1000",
110 | "numericPrecision": "0",
111 | "numericScale": "0",
112 | "ordinalPosition": 9,
113 | "primaryKeyIndicator": "N",
114 | "multiActiveIndicator": "N"
115 | }
116 | ]
117 | }
--------------------------------------------------------------------------------
/TEAM/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/TEAM/Form_About.Designer.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Windows.Forms;
3 |
4 | namespace TEAM
5 | {
6 | partial class FormAbout
7 | {
8 | ///
9 | /// Required designer variable.
10 | ///
11 | private System.ComponentModel.IContainer components = null;
12 |
13 | ///
14 | /// Clean up any resources being used.
15 | ///
16 | /// true if managed resources should be disposed; otherwise, false.
17 | protected override void Dispose(bool disposing)
18 | {
19 | if (disposing && (components != null))
20 | {
21 | components.Dispose();
22 | }
23 | base.Dispose(disposing);
24 | }
25 |
26 | #region Windows Form Designer generated code
27 |
28 | ///
29 | /// Required method for Designer support - do not modify
30 | /// the contents of this method with the code editor.
31 | ///
32 | private void InitializeComponent()
33 | {
34 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormAbout));
35 | buttonClose = new Button();
36 | textBox1 = new TextBox();
37 | linkLabel1 = new LinkLabel();
38 | SuspendLayout();
39 | //
40 | // buttonClose
41 | //
42 | buttonClose.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
43 | buttonClose.Location = new System.Drawing.Point(110, 259);
44 | buttonClose.Name = "buttonClose";
45 | buttonClose.Size = new System.Drawing.Size(109, 40);
46 | buttonClose.TabIndex = 1;
47 | buttonClose.Text = "Close";
48 | buttonClose.UseVisualStyleBackColor = true;
49 | buttonClose.Click += buttonClose_Click;
50 | //
51 | // textBox1
52 | //
53 | textBox1.BorderStyle = BorderStyle.None;
54 | textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
55 | textBox1.Location = new System.Drawing.Point(41, 56);
56 | textBox1.Name = "textBox1";
57 | textBox1.Size = new System.Drawing.Size(264, 13);
58 | textBox1.TabIndex = 2;
59 | textBox1.Text = "Taxonomy of ETL Automation Metadata";
60 | textBox1.TextAlign = HorizontalAlignment.Center;
61 | //
62 | // linkLabel1
63 | //
64 | linkLabel1.AutoSize = true;
65 | linkLabel1.Location = new System.Drawing.Point(13, 216);
66 | linkLabel1.Name = "linkLabel1";
67 | linkLabel1.Size = new System.Drawing.Size(315, 13);
68 | linkLabel1.TabIndex = 21;
69 | linkLabel1.TabStop = true;
70 | linkLabel1.Text = "https://github.com/data-solution-automation-engine/TEAM";
71 | linkLabel1.LinkClicked += linkLabel1_LinkClicked_1;
72 | //
73 | // FormAbout
74 | //
75 | AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
76 | AutoScaleMode = AutoScaleMode.Dpi;
77 | BackColor = System.Drawing.SystemColors.ControlLightLight;
78 | BackgroundImage = (System.Drawing.Image)resources.GetObject("$this.BackgroundImage");
79 | BackgroundImageLayout = ImageLayout.Center;
80 | ClientSize = new System.Drawing.Size(334, 311);
81 | ControlBox = false;
82 | Controls.Add(linkLabel1);
83 | Controls.Add(textBox1);
84 | Controls.Add(buttonClose);
85 | DoubleBuffered = true;
86 | Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
87 | MaximizeBox = false;
88 | MaximumSize = new System.Drawing.Size(350, 350);
89 | MinimizeBox = false;
90 | MinimumSize = new System.Drawing.Size(350, 350);
91 | Name = "FormAbout";
92 | StartPosition = FormStartPosition.CenterScreen;
93 | Text = "About";
94 | ResumeLayout(false);
95 | PerformLayout();
96 | }
97 |
98 | private void richTextBox1_LinkClicked(object sender, System.EventArgs e)
99 | {
100 | throw new System.NotImplementedException();
101 | }
102 |
103 | #endregion
104 | private System.Windows.Forms.Button buttonClose;
105 | private System.Windows.Forms.TextBox textBox1;
106 | private LinkLabel linkLabelTeam;
107 | private LinkLabel linkLabel1;
108 | }
109 | }
--------------------------------------------------------------------------------
/TEAM/Form_About.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 |
5 | namespace TEAM
6 | {
7 | public partial class FormAbout : FormBase
8 | {
9 | public FormAbout()
10 | {
11 | AutoScaleMode = AutoScaleMode.Dpi;
12 | InitializeComponent();
13 | FormBorderStyle = FormBorderStyle.FixedSingle;
14 | }
15 |
16 | private void buttonClose_Click(object sender, EventArgs e)
17 | {
18 | Close();
19 | }
20 |
21 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
22 | {
23 | // Specify that the link was visited.
24 | linkLabelTeam.LinkVisited = true;
25 | // Navigate to a URL.
26 | Process.Start("http://www.roelantvos.com");
27 | }
28 |
29 | private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
30 | {
31 | // Specify that the link was visited.
32 | linkLabelTeam.LinkVisited = true;
33 | // Navigate to a URL.
34 | Process.Start("https://github.com/RoelantVos/TEAM");
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/TEAM/Form_Base.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TEAM
2 | {
3 | partial class FormBase
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | SuspendLayout();
32 | //
33 | // FormBase
34 | //
35 | AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
36 | AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
37 | ClientSize = new System.Drawing.Size(284, 261);
38 | Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
39 | Name = "FormBase";
40 | Text = "FormBase";
41 | ResumeLayout(false);
42 | }
43 | #endregion
44 | }
45 | }
--------------------------------------------------------------------------------
/TEAM/Form_Base.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using TEAM_Library;
4 |
5 | namespace TEAM
6 | {
7 | public partial class FormBase : Form
8 | {
9 | protected FormMain MyParent;
10 |
11 | public FormBase()
12 | {
13 | AutoScaleMode = AutoScaleMode.Dpi;
14 | InitializeComponent();
15 | }
16 |
17 | public FormBase(FormMain myParent)
18 | {
19 | AutoScaleMode = AutoScaleMode.Dpi;
20 | MyParent = myParent;
21 | InitializeComponent();
22 | }
23 |
24 | ///
25 | /// Reusable global parameters. Accessed throughout the app.
26 | ///
27 | public static GlobalParameters globalParameters { get; set; } = new GlobalParameters();
28 |
29 | ///
30 | /// TEAM configurations (e.g. conventions, prefixes, attribute names).
31 | ///
32 | public static TeamConfiguration TeamConfiguration { get; set; } = new TeamConfiguration();
33 |
34 | #region Metadata objects in memory
35 |
36 | // In-memory representation of the Physical Model Metadata.
37 | public static TeamPhysicalModel PhysicalModel { get; set; } = new TeamPhysicalModel();
38 |
39 | // In-memory representation of the Attribute Mapping Metadata.
40 | public static TeamDataItemMapping AttributeMapping { get; set; } = new TeamDataItemMapping();
41 |
42 | #endregion
43 |
44 | ///
45 | /// TEAM working environment collection.
46 | ///
47 | public static TeamEnvironmentCollection TeamEnvironmentCollection { get; set; } = new TeamEnvironmentCollection();
48 |
49 | ///
50 | /// Instance of the export configuration for JSON files (options).
51 | ///
52 | public static JsonExportSetting JsonExportSetting { get; set; } = new JsonExportSetting();
53 |
54 | ///
55 | /// Instance of the validation settings (validation options).
56 | ///
57 | public static ValidationSetting ValidationSetting { get; set; } = new ValidationSetting();
58 |
59 | // Create the grid views.
60 | internal static DataGridViewDataObjects _dataGridViewDataObjects;
61 | internal static DataGridViewDataItems _dataGridViewDataItems;
62 | internal static DataGridViewPhysicalModel _dataGridViewPhysicalModel;
63 |
64 | internal static EventLog TeamEventLog { get; set; } = new EventLog();
65 |
66 | public class FilterEventArgs : EventArgs
67 | {
68 | public bool DoFilter { get; private set; }
69 |
70 | public FilterEventArgs(bool doFilter)
71 | {
72 | DoFilter = doFilter;
73 | }
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/TEAM/Form_Connection_Selection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace TEAM
12 | {
13 | public partial class Form_Connection_Selection : Form
14 | {
15 | private string _value { get; set; }
16 |
17 | public Form_Connection_Selection()
18 | {
19 | AutoScaleMode = AutoScaleMode.Dpi;
20 | InitializeComponent();
21 | }
22 |
23 | private void buttonCancel_Click(object sender, EventArgs e)
24 | {
25 | this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
26 | this.Close();
27 | }
28 |
29 | private void radioButtonSqlServer_CheckedChanged(object sender, EventArgs e)
30 | {
31 | if (radioButtonSqlServer.Checked)
32 | {
33 | _value = "sqlserver";
34 | }
35 | }
36 |
37 | private void radioButtonSnowflake_CheckedChanged(object sender, EventArgs e)
38 | {
39 | if (radioButtonSnowflake.Checked)
40 | {
41 | _value = "snowflake";
42 | }
43 | }
44 | public string GetValue()
45 | {
46 | return this._value;
47 | }
48 |
49 | private void buttonSelect_Click(object sender, EventArgs e)
50 | {
51 | this.DialogResult = DialogResult.OK;
52 | this.Close();
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/TEAM/Form_Edit_DataObject.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TEAM
2 | {
3 | partial class Form_Edit_DataObject
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form_Edit_DataObject));
32 | buttonSave = new System.Windows.Forms.Button();
33 | buttonClose = new System.Windows.Forms.Button();
34 | richTextBoxFormContent = new System.Windows.Forms.RichTextBox();
35 | SuspendLayout();
36 | //
37 | // buttonSave
38 | //
39 | buttonSave.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
40 | buttonSave.Location = new System.Drawing.Point(1057, 582);
41 | buttonSave.Name = "buttonSave";
42 | buttonSave.Size = new System.Drawing.Size(109, 40);
43 | buttonSave.TabIndex = 2;
44 | buttonSave.Text = "Save";
45 | buttonSave.UseVisualStyleBackColor = true;
46 | buttonSave.Click += SaveJson;
47 | //
48 | // buttonClose
49 | //
50 | buttonClose.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
51 | buttonClose.Location = new System.Drawing.Point(1172, 582);
52 | buttonClose.Name = "buttonClose";
53 | buttonClose.Size = new System.Drawing.Size(109, 40);
54 | buttonClose.TabIndex = 3;
55 | buttonClose.Text = "Close";
56 | buttonClose.UseVisualStyleBackColor = true;
57 | buttonClose.Click += buttonClose_Click;
58 | //
59 | // richTextBoxFormContent
60 | //
61 | richTextBoxFormContent.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
62 | richTextBoxFormContent.BackColor = System.Drawing.SystemColors.Window;
63 | richTextBoxFormContent.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
64 | richTextBoxFormContent.HideSelection = false;
65 | richTextBoxFormContent.Location = new System.Drawing.Point(12, 12);
66 | richTextBoxFormContent.Name = "richTextBoxFormContent";
67 | richTextBoxFormContent.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
68 | richTextBoxFormContent.Size = new System.Drawing.Size(1269, 564);
69 | richTextBoxFormContent.TabIndex = 4;
70 | richTextBoxFormContent.Text = "";
71 | //
72 | // Form_Edit_DataObject
73 | //
74 | AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
75 | AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
76 | ClientSize = new System.Drawing.Size(1293, 634);
77 | Controls.Add(richTextBoxFormContent);
78 | Controls.Add(buttonClose);
79 | Controls.Add(buttonSave);
80 | Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
81 | Name = "Form_Edit_DataObject";
82 | StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
83 | Text = "Edit";
84 | ResumeLayout(false);
85 | }
86 |
87 | #endregion
88 | private System.Windows.Forms.Button buttonSave;
89 | private System.Windows.Forms.Button buttonClose;
90 | private System.Windows.Forms.RichTextBox richTextBoxFormContent;
91 | }
92 | }
--------------------------------------------------------------------------------
/TEAM/Form_Edit_DataObject.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 | using System.Data;
4 | using System.Windows.Forms;
5 |
6 | namespace TEAM
7 | {
8 | public partial class Form_Edit_DataObject : FormBase
9 | {
10 | public DataGridViewCell EditedCell { get; set; }
11 | public DataWarehouseAutomation.DataObject EditedDataObject { get; set; }
12 |
13 | public Form_Edit_DataObject()
14 | {
15 | AutoScaleMode = AutoScaleMode.Dpi;
16 | InitializeComponent();
17 | }
18 |
19 | public Form_Edit_DataObject(DataGridViewCell cell)
20 | {
21 | AutoScaleMode = AutoScaleMode.Dpi;
22 | InitializeComponent();
23 | EditedCell = cell;
24 |
25 | DataRowView dataBoundItem = (DataRowView)EditedCell.OwningRow.DataBoundItem;
26 |
27 | EditedDataObject = (DataWarehouseAutomation.DataObject)dataBoundItem.Row[cell.ColumnIndex];
28 |
29 | richTextBoxFormContent.Text = JsonConvert.SerializeObject(EditedDataObject, Formatting.Indented);
30 | }
31 |
32 | #region Save button delegate
33 |
34 | delegate void ShowSaveButtonCallBack(bool showSaveButton);
35 | public void ShowSaveButton(bool showSaveButton)
36 | {
37 | if (buttonSave.InvokeRequired)
38 | {
39 | var d = new ShowSaveButtonCallBack(ShowSaveButton);
40 | try
41 | {
42 | Invoke(d, showSaveButton);
43 | }
44 | catch
45 | {
46 | // ignored
47 | }
48 | }
49 | else
50 | {
51 | try
52 | {
53 | buttonSave.Visible = false;
54 | }
55 | catch
56 | {
57 | // ignored
58 | }
59 | }
60 | }
61 |
62 | #endregion
63 |
64 | #region Form name delegate
65 | delegate void SetFormNameCallBack(string text);
66 |
67 | public void SetFormName(string text)
68 | {
69 | if (InvokeRequired)
70 | {
71 | var d = new SetFormNameCallBack(SetFormName);
72 | try
73 | {
74 | Invoke(d, text);
75 | }
76 | catch
77 | {
78 | // ignored
79 | }
80 | }
81 | else
82 | {
83 | try
84 | {
85 | Text = text;
86 | }
87 | catch
88 | {
89 | // ignored
90 | }
91 | }
92 | }
93 | #endregion
94 |
95 | // Multi threading delegate for updating the user back in the original form.
96 | delegate void SetTextCallBack(string text);
97 | public void SetText(string text)
98 | {
99 | if (richTextBoxFormContent.InvokeRequired)
100 | {
101 | var d = new SetTextCallBack(SetText);
102 | try
103 | {
104 | Invoke(d, text);
105 | }
106 | catch
107 | {
108 | // ignored
109 | }
110 | }
111 | else
112 | {
113 | try
114 | {
115 | richTextBoxFormContent.AppendText(text);
116 | }
117 | catch
118 | {
119 | // ignored
120 | }
121 | }
122 | }
123 |
124 | #region OnSave event for passing back values to main grid
125 | public delegate void OnSaveEventHandler(object sender, OnSaveEventArgs e);
126 | public event OnSaveEventHandler OnSave;
127 |
128 | public class OnSaveEventArgs : EventArgs
129 | {
130 | public string RichTextBoxContents { get; set; }
131 | public DataGridViewCell CurrentCell { get; set; }
132 |
133 | public OnSaveEventArgs(string value, DataGridViewCell cell)
134 | {
135 | RichTextBoxContents = value;
136 | CurrentCell = cell;
137 | }
138 | }
139 |
140 | private void SaveJson(object sender, EventArgs e)
141 | {
142 | if (OnSave == null)
143 | return;
144 |
145 | OnSaveEventArgs args = new OnSaveEventArgs(richTextBoxFormContent.Text, EditedCell);
146 | OnSave(this, args);
147 |
148 | Close();
149 | }
150 |
151 | #endregion
152 |
153 | private void buttonClose_Click(object sender, EventArgs e)
154 | {
155 | Close();
156 | }
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/TEAM/Form_Edit_DataObjectMapping.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TEAM
2 | {
3 | partial class Form_Edit_DataObjectMapping
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form_Edit_DataObjectMapping));
32 | buttonSave = new System.Windows.Forms.Button();
33 | buttonClose = new System.Windows.Forms.Button();
34 | richTextBoxFormContent = new System.Windows.Forms.RichTextBox();
35 | SuspendLayout();
36 | //
37 | // buttonSave
38 | //
39 | buttonSave.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
40 | buttonSave.Location = new System.Drawing.Point(1057, 648);
41 | buttonSave.Name = "buttonSave";
42 | buttonSave.Size = new System.Drawing.Size(109, 40);
43 | buttonSave.TabIndex = 2;
44 | buttonSave.Text = "Save";
45 | buttonSave.UseVisualStyleBackColor = true;
46 | buttonSave.Click += SaveJson;
47 | //
48 | // buttonClose
49 | //
50 | buttonClose.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
51 | buttonClose.Location = new System.Drawing.Point(1172, 648);
52 | buttonClose.Name = "buttonClose";
53 | buttonClose.Size = new System.Drawing.Size(109, 40);
54 | buttonClose.TabIndex = 3;
55 | buttonClose.Text = "Close";
56 | buttonClose.UseVisualStyleBackColor = true;
57 | buttonClose.Click += buttonClose_Click;
58 | //
59 | // richTextBoxFormContent
60 | //
61 | richTextBoxFormContent.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
62 | richTextBoxFormContent.BackColor = System.Drawing.SystemColors.Window;
63 | richTextBoxFormContent.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
64 | richTextBoxFormContent.HideSelection = false;
65 | richTextBoxFormContent.Location = new System.Drawing.Point(12, 12);
66 | richTextBoxFormContent.Name = "richTextBoxFormContent";
67 | richTextBoxFormContent.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
68 | richTextBoxFormContent.Size = new System.Drawing.Size(1269, 631);
69 | richTextBoxFormContent.TabIndex = 4;
70 | richTextBoxFormContent.Text = "";
71 | //
72 | // Form_Edit_DataObjectMapping
73 | //
74 | AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
75 | AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
76 | ClientSize = new System.Drawing.Size(1293, 700);
77 | Controls.Add(richTextBoxFormContent);
78 | Controls.Add(buttonClose);
79 | Controls.Add(buttonSave);
80 | Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
81 | Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
82 | Name = "Form_Edit_DataObjectMapping";
83 | StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
84 | Text = "Edit";
85 | ResumeLayout(false);
86 | }
87 |
88 | #endregion
89 | private System.Windows.Forms.Button buttonSave;
90 | private System.Windows.Forms.Button buttonClose;
91 | private System.Windows.Forms.RichTextBox richTextBoxFormContent;
92 | }
93 | }
--------------------------------------------------------------------------------
/TEAM/Form_Edit_DataObjectMapping.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 | using System.Windows.Forms;
4 | using DataWarehouseAutomation;
5 |
6 | namespace TEAM
7 | {
8 | public partial class Form_Edit_DataObjectMapping : FormBase
9 | {
10 | public DataGridViewRow EditedRow { get; set; }
11 | public DataObjectMapping EditedDataObjectMapping { get; set; }
12 |
13 | public Form_Edit_DataObjectMapping()
14 | {
15 | AutoScaleMode = AutoScaleMode.Dpi;
16 | InitializeComponent();
17 | }
18 |
19 | public Form_Edit_DataObjectMapping(DataGridViewRow row, DataObjectMapping dataObjectMapping)
20 | {
21 | AutoScaleMode = AutoScaleMode.Dpi;
22 | InitializeComponent();
23 | EditedRow = row;
24 | EditedDataObjectMapping = dataObjectMapping;
25 |
26 | //DataRowView dataBoundItem = (DataRowView)EditedRow.DataBoundItem;
27 |
28 | //EditedDataObjectMapping = (DataWarehouseAutomation.DataObjectMapping)dataBoundItem.Row[cell.ColumnIndex];
29 |
30 | //var dataObjectMapping = DataGridViewDataObjects.GetDataObjectMapping(row);
31 | //string dataObjectMappingJson = JsonConvert.SerializeObject(dataObjectMapping, Formatting.Indented);
32 |
33 | richTextBoxFormContent.Text = JsonConvert.SerializeObject(EditedDataObjectMapping, Formatting.Indented);
34 | }
35 |
36 | #region Save button delegate
37 |
38 | delegate void ShowSaveButtonCallBack(bool showSaveButton);
39 | public void ShowSaveButton(bool showSaveButton)
40 | {
41 | if (buttonSave.InvokeRequired)
42 | {
43 | var d = new ShowSaveButtonCallBack(ShowSaveButton);
44 | try
45 | {
46 | Invoke(d, showSaveButton);
47 | }
48 | catch
49 | {
50 | // ignored
51 | }
52 | }
53 | else
54 | {
55 | try
56 | {
57 | buttonSave.Visible = false;
58 | }
59 | catch
60 | {
61 | // ignored
62 | }
63 | }
64 | }
65 |
66 | #endregion
67 |
68 | #region Form name delegate
69 |
70 | delegate void SetFormNameCallBack(string text);
71 |
72 | public void SetFormName(string text)
73 | {
74 | if (InvokeRequired)
75 | {
76 | var d = new SetFormNameCallBack(SetFormName);
77 | try
78 | {
79 | Invoke(d, text);
80 | }
81 | catch
82 | {
83 | // ignored
84 | }
85 | }
86 | else
87 | {
88 | try
89 | {
90 | Text = text;
91 | }
92 | catch
93 | {
94 | // ignored
95 | }
96 | }
97 | }
98 |
99 | #endregion
100 |
101 | #region Set text delegate
102 |
103 | // Multi threading delegate for updating the user back in the original form.
104 | delegate void SetTextCallBack(string text);
105 | public void SetText(string text)
106 | {
107 | if (richTextBoxFormContent.InvokeRequired)
108 | {
109 | var d = new SetTextCallBack(SetText);
110 | try
111 | {
112 | Invoke(d, text);
113 | }
114 | catch
115 | {
116 | // ignored
117 | }
118 | }
119 | else
120 | {
121 | try
122 | {
123 | richTextBoxFormContent.AppendText(text);
124 | }
125 | catch
126 | {
127 | // ignored
128 | }
129 | }
130 | }
131 |
132 | #endregion
133 |
134 | #region OnSave event for passing back values to main grid
135 |
136 | public delegate void OnSaveEventHandler(object sender, OnSaveEventArgs e);
137 | public event OnSaveEventHandler OnSave;
138 |
139 | public class OnSaveEventArgs : EventArgs
140 | {
141 | public string RichTextBoxContents { get; set; }
142 | public DataGridViewRow CurrentRow { get; set; }
143 |
144 | public OnSaveEventArgs(string value, DataGridViewRow row)
145 | {
146 | RichTextBoxContents = value;
147 | CurrentRow = row;
148 | }
149 | }
150 |
151 | private void SaveJson(object sender, EventArgs e)
152 | {
153 | if (OnSave == null)
154 | return;
155 |
156 | OnSaveEventArgs args = new OnSaveEventArgs(richTextBoxFormContent.Text, EditedRow);
157 | OnSave(this, args);
158 |
159 | Close();
160 | }
161 |
162 | #endregion
163 |
164 | private void buttonClose_Click(object sender, EventArgs e)
165 | {
166 | Close();
167 | }
168 | }
169 | }
170 |
--------------------------------------------------------------------------------
/TEAM/Libraries/Snowflake.Data.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Libraries/Snowflake.Data.dll
--------------------------------------------------------------------------------
/TEAM/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using System.Windows.Forms;
4 |
5 | namespace TEAM
6 | {
7 | static class Program
8 | {
9 | ///
10 | /// The main entry point for the application.
11 | ///
12 | [STAThread]
13 | static void Main()
14 | {
15 | Application.EnableVisualStyles();
16 | Application.SetHighDpiMode(HighDpiMode.SystemAware);
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new FormMain());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/TEAM/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("TEAM")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("TEAM")]
13 | [assembly: AssemblyCopyright("Open Source - Roelant Vos")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("0d140741-01fc-431d-8f81-e52168dd870a")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.6.5.3")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/TEAM/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace TEAM.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TEAM/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TEAM/Properties/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
54 |
--------------------------------------------------------------------------------
/TEAM/Resources/CogIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/CogIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/CubeIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/CubeIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/DocumentationIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/DocumentationIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/ETLIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/ETLIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/ExitApplication.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/ExitApplication.ico
--------------------------------------------------------------------------------
/TEAM/Resources/HelpIconSmall.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/HelpIconSmall.ico
--------------------------------------------------------------------------------
/TEAM/Resources/LinkIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/LinkIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/OpenDirectoryIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/OpenDirectoryIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/OpenFileIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/OpenFileIcon.ico
--------------------------------------------------------------------------------
/TEAM/Resources/Ravos-logo-small.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/Ravos-logo-small.ico
--------------------------------------------------------------------------------
/TEAM/Resources/Ravos-logo-small_transparant.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/Ravos-logo-small_transparant.ico
--------------------------------------------------------------------------------
/TEAM/Resources/SaveFile.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/SaveFile.ico
--------------------------------------------------------------------------------
/TEAM/Resources/Time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/Time.png
--------------------------------------------------------------------------------
/TEAM/Resources/database_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/database_icon.png
--------------------------------------------------------------------------------
/TEAM/Resources/fit-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/fit-16.png
--------------------------------------------------------------------------------
/TEAM/Resources/ghost-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/ghost-icon.png
--------------------------------------------------------------------------------
/TEAM/Resources/log-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/log-file.png
--------------------------------------------------------------------------------
/TEAM/Resources/minus-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/minus-16.png
--------------------------------------------------------------------------------
/TEAM/Resources/plus-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/plus-16.png
--------------------------------------------------------------------------------
/TEAM/Resources/transparent-green-checkmark-hi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/data-solution-automation-engine/TEAM/e30f0cc26f7afda7e8c88081aec4daf618b339bd/TEAM/Resources/transparent-green-checkmark-hi.png
--------------------------------------------------------------------------------
/TEAM/Scripts/generateSampleIntegrationSchemaView.sql:
--------------------------------------------------------------------------------
1 | CREATE OR ALTER VIEW [bdv].[vw_CUSTOMER_DERIVED] AS
2 | SELECT b.CUSTOMER_ID
3 | ,a.[INSCRIPTION_TIMESTAMP]
4 | ,a.[STATE_TIMESTAMP] AS [SOURCE_TIMESTAMP]
5 | --,a.[LOAD_END_DATETIME]
6 | --,a.[CURRENT_RECORD_INDICATOR]
7 | --,a.[ETL_INSERT_RUN_ID]
8 | --,[ETL_UPDATE_RUN_ID]
9 | ,a.[CHANGE_DATA_INDICATOR]
10 | ,a.[INSCRIPTION_RECORD_ID]
11 | ,CASE [REFERRAL_OFFER_MADE_INDICATOR]
12 | WHEN '1' THEN 'True'
13 | WHEN '0' THEN 'False'
14 | ELSE 'Unknown'
15 | END AS REFERRAL_OFFER_CLEAN
16 | FROM dbo.[SAT_CUSTOMER] a
17 | JOIN dbo.[HUB_CUSTOMER] b ON a.CUSTOMER_SK = b.CUSTOMER_SK
--------------------------------------------------------------------------------
/TEAM/Scripts/generateSamplePresentationSchema.sql:
--------------------------------------------------------------------------------
1 | IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DIM_CUSTOMER]') AND type in (N'U')) DROP TABLE [dbo].[DIM_CUSTOMER]
2 |
3 | CREATE TABLE [dbo].[DIM_CUSTOMER](
4 | [DIM_CUSTOMER_SK] [int] IDENTITY(1,1) NOT NULL,
5 | [INSERT_MODULE_INSTANCE_ID] [int] NOT NULL,
6 | [RECORD_CHECKSUM_TYPE1] [char](32) NOT NULL,
7 | [RECORD_CHECKSUM_TYPE2] [char](32) NOT NULL,
8 | [CHANGE_DATETIME] [datetime2](7) NOT NULL,
9 | [CHANGE_EXPIRY_DATETIME] [datetime2](7) NOT NULL,
10 | [CHANGE_DATA_INDICATOR] [varchar](1) NOT NULL,
11 | [CUSTOMER_SK] [binary](16) NOT NULL,
12 | [CUSTOMER_ID] [nvarchar](100) NOT NULL,
13 | [GIVEN_NAME] [nvarchar](100) NOT NULL,
14 | [SURNAME] [nvarchar](100) NOT NULL,
15 | [PREF_GENDER_PRONOUN] [nvarchar](100) NOT NULL,
16 | [SUBURB] [nvarchar](100) NOT NULL,
17 | [POSTCODE] [nvarchar](100) NOT NULL,
18 | [COUNTRY] [nvarchar](100) NOT NULL,
19 | [DATE_OF_BIRTH] [datetime2](7) NOT NULL,
20 | [CONTACT_NUMBER] [nvarchar](100) NULL,
21 | [STATE] [nvarchar](100) NULL,
22 | CONSTRAINT [PK_DIM_CUSTOMER_TBL] PRIMARY KEY CLUSTERED
23 | (
24 | [DIM_CUSTOMER_SK] ASC
25 | )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
26 | ) ON [PRIMARY]
27 |
--------------------------------------------------------------------------------
/TEAM/Support/DataObjectMappingList.sql:
--------------------------------------------------------------------------------
1 | /*
2 | This query prepares a list of data object mappings based on a SQL server catalog.
3 | The resulting JSON file can be imported in TEAM to create a list of mappings that are essentially one-to-one without having to type them in.
4 | */
5 |
6 | SELECT
7 | 1 AS enabledIndicator
8 | ,HASHBYTES('MD5',src.TABLE_SCHEMA+'|'+src.TABLE_CATALOG+'|'+src.TABLE_NAME) AS tableMappingHash
9 | ,src.TABLE_NAME AS sourceTable
10 | ,'StagingConnectionInternalId' AS sourceConnectionKey
11 | ,'STG__'+src.TABLE_NAME as targetTable
12 | ,'PsaConnectionInternalId' as targetConnectionKey
13 | ,COALESCE(pk.KEY_COLUMNS,'') as businessKeyDefinition
14 | ,'' AS filterCriteria
15 | FROM INFORMATION_SCHEMA.TABLES src
16 | LEFT JOIN
17 | (
18 | SELECT
19 | CONSTRAINT_SCHEMA
20 | ,TABLE_NAME
21 | --,CHARINDEX(',',KEY_COLUMNS)
22 | ,CASE
23 | WHEN CHARINDEX(';',KEY_COLUMNS)>0
24 | THEN 'COMPOSITE('+KEY_COLUMNS+')'
25 | ELSE KEY_COLUMNS
26 | END AS KEY_COLUMNS
27 | FROM
28 | (
29 | SELECT
30 | CONSTRAINT_SCHEMA,
31 | TABLE_NAME,
32 | STUFF
33 | (
34 | (
35 | SELECT ';' + US.COLUMN_NAME
36 | FROM
37 | (
38 | SELECT
39 | sch.name AS [CONSTRAINT_SCHEMA]
40 | ,tbl.name AS [TABLE_NAME]
41 | ,COL_NAME(ixc.object_id,ixc.column_id) AS [COLUMN_NAME]
42 | FROM sys.tables tbl
43 | LEFT OUTER JOIN sys.index_columns ixc ON tbl.object_id = ixc.object_id
44 | LEFT OUTER JOIN sys.indexes idx ON tbl.object_id = idx.object_id AND ixc.index_id = idx.index_id
45 | LEFT OUTER JOIN sys.schemas sch ON tbl.schema_id = sch.schema_id
46 | WHERE idx.is_unique=1
47 | ) US
48 | WHERE US.CONSTRAINT_SCHEMA = SS.CONSTRAINT_SCHEMA
49 | AND US.TABLE_NAME = SS.TABLE_NAME
50 | FOR XML PATH('')
51 | ), 1, 1, ''
52 | ) KEY_COLUMNS
53 | FROM
54 | (
55 | SELECT
56 | sch.name AS [CONSTRAINT_SCHEMA]
57 | ,tbl.name AS [TABLE_NAME]
58 | ,COL_NAME(ixc.object_id,ixc.column_id) AS [COLUMN_NAME]
59 | ,idx.*
60 | FROM sys.tables tbl
61 | LEFT OUTER JOIN sys.index_columns ixc ON tbl.object_id = ixc.object_id
62 | LEFT OUTER JOIN sys.indexes idx ON tbl.object_id = idx.object_id AND ixc.index_id = idx.index_id
63 | LEFT OUTER JOIN sys.schemas sch ON tbl.schema_id = sch.schema_id
64 | WHERE idx.is_unique=1
65 | ) SS
66 | --WHERE CONSTRAINT_SCHEMA='dbo'
67 | GROUP BY CONSTRAINT_SCHEMA, TABLE_NAME
68 | ) sub
69 | )pk
70 | ON src.TABLE_NAME = pk.TABLE_NAME
71 | AND src.TABLE_SCHEMA = pk.CONSTRAINT_SCHEMA
72 | --WHERE src.TABLE_NAME IN
73 | --(
74 | --''
75 | --)
76 | --FOR JSON PATH
--------------------------------------------------------------------------------
/TEAM/TeamJsonHandling.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 |
4 | namespace TEAM
5 | {
6 | internal class TeamJsonHandling
7 | {
8 | ///
9 | /// Local class to manage file names and changes thereof.
10 | ///
11 | internal static class JsonFileConfiguration
12 | {
13 | ///
14 | /// Builds and returns the fully qualified name of the attribute mapping Json file.
15 | ///
16 | ///
17 | public static string AttributeMappingJsonFileName()
18 | {
19 | string localJsonFileName = FormBase.globalParameters.MetadataPath + FormBase.globalParameters.ActiveEnvironmentKey + "_" + FormBase.globalParameters.JsonAttributeMappingFileName + FormBase.globalParameters.JsonExtension;
20 | return localJsonFileName;
21 | }
22 |
23 | ///
24 | /// Builds and returns the fully qualified name of the physical model Json file.
25 | ///
26 | ///
27 | public static string PhysicalModelJsonFileName()
28 | {
29 | string localJsonFileName = FormBase.globalParameters.MetadataPath + FormBase.globalParameters.ActiveEnvironmentKey + "_" + FormBase.globalParameters.JsonModelMetadataFileName + FormBase.globalParameters.JsonExtension;
30 | return localJsonFileName; }
31 | }
32 |
33 | ///
34 | /// Create a backup of a given JSON file.
35 | ///
36 | ///
37 | internal string BackupJsonFile(string inputFileName, string inputFilePath)
38 | {
39 | var shortDatetime = DateTime.Now.ToString("yyyyMMddHHmmss");
40 |
41 | var targetFilePathName = inputFilePath + string.Concat("Backup_" + shortDatetime + "_", inputFileName);
42 |
43 | File.Copy( inputFilePath+inputFileName, targetFilePathName);
44 |
45 | var result = targetFilePathName;
46 |
47 | return result;
48 | }
49 |
50 | ///
51 | /// Clear out (remove) an existing Json file, to facilitate overwriting.
52 | ///
53 | internal static void RemoveExistingJsonFile(string inputFileName)
54 | {
55 | File.Delete(FormBase.globalParameters.ConfigurationPath + inputFileName);
56 | }
57 | }
58 | }
--------------------------------------------------------------------------------
/TEAM/ThreadHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TEAM
5 | {
6 | public static class ThreadHelper
7 | {
8 | delegate void SetControlCallback(Form form, Control control, string text);
9 |
10 | ///
11 | /// Set text property of various controls.
12 | ///
13 | /// The calling form
14 | ///
15 | ///
16 | public static void SetText(Form form, Control control, string text)
17 | {
18 | // InvokeRequired required compares the thread ID of the calling thread to the thread ID of the creating thread.
19 | // If these threads are different, it returns true.
20 | if (control.InvokeRequired)
21 | {
22 | SetControlCallback callBack = SetText;
23 | form.Invoke(callBack, form, control, text);
24 | }
25 | else
26 | {
27 | control.Text += text;
28 | }
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/Team_Library/EventLog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Text;
5 |
6 | namespace TEAM_Library
7 | {
8 | ///
9 | /// An event log is a list of events.
10 | ///
11 | public class EventLog : List
12 | {
13 | public int errorReportedHighWaterMark { get; set; } = 0;
14 |
15 | ///
16 | /// Default constructor.
17 | ///
18 | public EventLog()
19 | {
20 | //EventList = null;
21 | }
22 |
23 | ///
24 | /// Merge another event log into the class.
25 | ///
26 | ///
27 | public void MergeEventLog(EventLog otherEventLog)
28 | {
29 | foreach (Event mergeEvent in otherEventLog)
30 | {
31 | this.Add(mergeEvent);
32 | }
33 | }
34 |
35 | ///
36 | /// Spool the Event Log to disk.
37 | ///
38 | ///
39 | public void SaveEventLogToFile(string targetFile)
40 | {
41 | StringBuilder output = new StringBuilder();
42 |
43 | try
44 | {
45 | //Output to file
46 | using (var outfile = new StreamWriter(targetFile))
47 | {
48 | foreach (Event localEvent in this)
49 | {
50 | output.AppendLine($"{localEvent.eventTime} - {localEvent.eventCode} : {localEvent.eventDescription}");
51 | }
52 |
53 | outfile.Write(output.ToString());
54 | outfile.Close();
55 | }
56 |
57 | Add(Event.CreateNewEvent(EventTypes.Information, "The file was successfully saved to disk.\r\n"));
58 | }
59 | catch (Exception ex)
60 | {
61 | Add(Event.CreateNewEvent(EventTypes.Error, "There was an issue saving the output to disk. The message is: " + ex + ".\r\n"));
62 | }
63 | }
64 |
65 | public int ReportErrors(EventLog eventLog)
66 | {
67 | // Report the events (including errors) back to the user.
68 | int errorCounter = 0;
69 | int highWaterMarkCounter = errorReportedHighWaterMark-1;
70 | int eventCounter = 1;
71 |
72 | foreach (Event individualEvent in eventLog)
73 | {
74 | if (eventCounter > highWaterMarkCounter)
75 | {
76 | if (individualEvent.eventType == EventTypes.Error)
77 | {
78 | errorCounter++;
79 | }
80 | }
81 |
82 | eventCounter++;
83 | }
84 |
85 | // Errors have been reported up to this point, to prevent re-reporting.
86 | errorReportedHighWaterMark = eventCounter;
87 |
88 | return errorCounter;
89 | }
90 | }
91 |
92 | ///
93 | /// Enumerator containing the types of allowed events (classifications).
94 | ///
95 | public enum EventTypes
96 | {
97 | Information = 0,
98 | Error = 1,
99 | Warning = 2
100 | }
101 |
102 | ///
103 | /// Individual event.
104 | ///
105 | public class Event
106 | {
107 | ///
108 | /// The classification of an event, following the EventTypes enumerator.
109 | ///
110 | public int eventCode { get; set; }
111 |
112 | public EventTypes eventType { get; set; }
113 |
114 | ///
115 | /// Free-format description for an event.
116 | ///
117 | public string eventDescription { get; set; }
118 |
119 | ///
120 | /// Logging date/time for the event.
121 | ///
122 | public DateTime eventTime { get; set; } = DateTime.Now;
123 |
124 | ///
125 | /// Constructor that only captures type and description of an event. This will assume 'now' as date/time of the event.
126 | ///
127 | ///
128 | ///
129 | ///
130 | public static Event CreateNewEvent(EventTypes eventType, string eventDescription)
131 | {
132 | var localEvent = new Event
133 | {
134 | eventCode = (int)eventType,
135 | eventType = eventType,
136 | eventTime = DateTime.Now,
137 | eventDescription = eventDescription
138 | };
139 |
140 | return localEvent;
141 | }
142 |
143 | ///
144 | /// Constructor that can override the date / time.
145 | ///
146 | ///
147 | ///
148 | ///
149 | ///
150 | public static Event CreateNewEvent(EventTypes eventType, DateTime eventDateTime, string eventDescription)
151 | {
152 | var localEvent = new Event
153 | {
154 | eventCode = (int)eventType,
155 | eventType = eventType,
156 | eventTime = eventDateTime,
157 | eventDescription = eventDescription
158 | };
159 |
160 | return localEvent;
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/Team_Library/GlobalParameters.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 |
3 | namespace TEAM_Library
4 | {
5 | public class GlobalParameters
6 | {
7 | // TEAM core path parameters
8 | public string RootPath { get; } = Application.StartupPath + @"\";
9 | public string ConfigurationPath { get; set; } = Application.StartupPath + @"\" + @"Configuration\";
10 | public string MetadataPath { get; set; } = Application.StartupPath + @"\" + @"Metadata\";
11 |
12 | public string PhysicalModelDirectory { get; set; } = @"PhysicalModel\";
13 | public string CorePath { get; } = Application.StartupPath + @"\" + @"Core\";
14 |
15 | public string SchemaPath { get; } = Application.StartupPath + @"\" + @"Schema\";
16 |
17 | public string BackupPath { get; } = Application.StartupPath + @"\" + @"Backup\";
18 |
19 | public string ModelLayerPath { get; } = Application.StartupPath + @"\" + @"ModelLayers\";
20 | public string ScriptPath { get; set; } = Application.StartupPath + @"\" + @"Scripts\";
21 | public string FilesPath { get; set; } = Application.StartupPath + @"\" + @"Files\";
22 | public string ConfigFileName { get; set; } = "TEAM_configuration";
23 | public string PathFileName { get; set; } = "TEAM_Path_configuration";
24 | public string ValidationFileName { get; set; } = "TEAM_validation";
25 | public string JsonExportConfigurationFileName { get; set; } = "TEAM_jsonconfiguration";
26 | public string FileExtension { get; set; } = ".txt";
27 | public string ActiveEnvironmentInternalId { get; set; } = Utility.CreateMd5(new[] { "Development" }, "%$@");
28 | public string ActiveEnvironmentKey { get; set; }
29 |
30 | // JSON file name parameters
31 | public string JsonSchemaForDataWarehouseAutomationFileName { get; } = "interfaceDataWarehouseAutomationMetadata.json";
32 | public static string JsonTableMappingFileName { get; } = "TEAM_Table_Mapping";
33 | public string JsonAttributeMappingFileName { get; } = "TEAM_Attribute_Mapping";
34 | public string JsonModelMetadataFileName { get; } = "TEAM_Model_Metadata";
35 | public string JsonConnectionFileName { get; } = "TEAM_connections";
36 | public string JsonEnvironmentFileName { get; } = "TEAM_environments";
37 | public string JsonExtension { get; } = ".json";
38 |
39 | ///
40 | /// Extension method to infer the target path for a given string value (should be a target data object name).
41 | ///
42 | ///
43 | ///
44 | public string GetMetadataFilePath(string fileName)
45 | {
46 | return MetadataPath + fileName + ".json";
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Team_Library/SortableBindingList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 |
5 | namespace TEAM_Library
6 | {
7 | public class SortableBindingList : BindingList where T : class
8 | {
9 | private bool _isSorted;
10 | private ListSortDirection _sortDirection = ListSortDirection.Ascending;
11 | private PropertyDescriptor _sortProperty;
12 |
13 | ///
14 | /// Initializes a new instance of the class.
15 | ///
16 | public SortableBindingList()
17 | {
18 | }
19 |
20 | ///
21 | /// Initializes a new instance of the class.
22 | ///
23 | /// An of items to be contained in the .
24 | public SortableBindingList(IList list) : base(list)
25 | {
26 | }
27 |
28 | ///
29 | /// Gets a value indicating whether the list supports sorting.
30 | ///
31 | protected override bool SupportsSortingCore
32 | {
33 | get { return true; }
34 | }
35 |
36 | ///
37 | /// Gets a value indicating whether the list is sorted.
38 | ///
39 | protected override bool IsSortedCore
40 | {
41 | get { return _isSorted; }
42 | }
43 |
44 | ///
45 | /// Gets the direction the list is sorted.
46 | ///
47 | protected override ListSortDirection SortDirectionCore
48 | {
49 | get { return _sortDirection; }
50 | }
51 |
52 | ///
53 | /// Gets the property descriptor that is used for sorting the list if sorting is implemented in a derived class; otherwise, returns null
54 | ///
55 | protected override PropertyDescriptor SortPropertyCore
56 | {
57 | get { return _sortProperty; }
58 | }
59 |
60 | ///
61 | /// Removes any sort applied with ApplySortCore if sorting is implemented
62 | ///
63 | protected override void RemoveSortCore()
64 | {
65 | _sortDirection = ListSortDirection.Ascending;
66 | _sortProperty = null;
67 | _isSorted = false; //thanks Luca
68 | }
69 |
70 | ///
71 | /// Sorts the items if overridden in a derived class
72 | ///
73 | ///
74 | ///
75 | protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction)
76 | {
77 | _sortProperty = prop;
78 | _sortDirection = direction;
79 |
80 | List list = Items as List;
81 | if (list == null) return;
82 |
83 | list.Sort(Compare);
84 |
85 | _isSorted = true;
86 | //fire an event that the list has been changed.
87 | OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
88 | }
89 |
90 |
91 | private int Compare(T lhs, T rhs)
92 | {
93 | var result = OnComparison(lhs, rhs);
94 | //invert if descending
95 | if (_sortDirection == ListSortDirection.Descending)
96 | result = -result;
97 | return result;
98 | }
99 |
100 | private int OnComparison(T lhs, T rhs)
101 | {
102 | object lhsValue = lhs == null ? null : _sortProperty.GetValue(lhs);
103 | object rhsValue = rhs == null ? null : _sortProperty.GetValue(rhs);
104 | if (lhsValue == null)
105 | {
106 | return (rhsValue == null) ? 0 : -1; //nulls are equal
107 | }
108 | if (rhsValue == null)
109 | {
110 | return 1; //first has value, second doesn't
111 | }
112 | if (lhsValue is IComparable)
113 | {
114 | return ((IComparable)lhsValue).CompareTo(rhsValue);
115 | }
116 | if (lhsValue.Equals(rhsValue))
117 | {
118 | return 0; //both are the same
119 | }
120 | //not comparable, compare ToString
121 | return lhsValue.ToString().CompareTo(rhsValue.ToString());
122 | }
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/Team_Library/TEAM_Library.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net8.0
4 | AnyCPU;x64
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | all
15 |
16 |
17 |
18 |
19 |
20 | ..\TEAM\Libraries\DataWarehouseAutomation.dll
21 |
22 |
23 | C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Windows.Forms.dll
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Team_Library/TeamClassification.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace TEAM_Library
6 | {
7 | public class TeamClassification
8 | {
9 | public enum TeamClassificationTypes
10 | {
11 | ModelLayer
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Team_Library/TeamDataItemMapping.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Data;
3 | using System.IO;
4 | using Newtonsoft.Json;
5 |
6 | namespace TEAM_Library
7 | {
8 | public class DataItemMappingJson
9 | {
10 | //JSON representation of the attribute mapping metadata.
11 | public string attributeMappingHash { get; set; }
12 | public string sourceTable { get; set; }
13 | public string sourceAttribute { get; set; }
14 | public string targetTable { get; set; }
15 | public string targetAttribute { get; set; }
16 |
17 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
18 | public string notes { get; set; }
19 | }
20 | ///
21 | /// Enumerator to hold the column index for the columns (headers) in the Table Metadata data grid view.
22 | ///
23 | public enum DataItemMappingGridColumns
24 | {
25 | HashKey = 0,
26 | SourceDataObject = 1,
27 | SourceDataItem = 2,
28 | TargetDataObject = 3,
29 | TargetDataItem = 4,
30 | Notes = 5
31 | }
32 |
33 | public class TeamDataItemMapping
34 | {
35 | public EventLog EventLog { get; set; }
36 |
37 | public List JsonList { get; set; }
38 |
39 | public DataTable DataTable { get; set; }
40 |
41 | public TeamDataItemMapping()
42 | {
43 | EventLog = new EventLog();
44 | DataTable = new DataTable();
45 | JsonList = new List();
46 | }
47 |
48 | public static void CreateEmptyDataItemMappingJson(string fileName, EventLog eventLog)
49 | {
50 | File.WriteAllText(fileName, "[]");
51 | eventLog.Add(Event.CreateNewEvent(EventTypes.Information, "A new data item mapping file is created, because it did not exist yet."));
52 | }
53 |
54 | ///
55 | /// Set the sort order for the data table.
56 | ///
57 | public void SetDataTableSorting()
58 | {
59 | DataTable.DefaultView.Sort = $"[{DataItemMappingGridColumns.TargetDataObject}] ASC, [{DataItemMappingGridColumns.TargetDataItem}] ASC, [{DataItemMappingGridColumns.TargetDataObject}] ASC, [{DataItemMappingGridColumns.SourceDataObject}] ASC";
60 | }
61 |
62 | ///
63 | /// Set the column names for the data table.
64 | ///
65 | public void SetDataTableColumns()
66 | {
67 | DataTable.Columns[(int)DataItemMappingGridColumns.HashKey].ColumnName = DataItemMappingGridColumns.HashKey.ToString();
68 | DataTable.Columns[(int)DataItemMappingGridColumns.SourceDataObject].ColumnName = DataItemMappingGridColumns.SourceDataObject.ToString();
69 | DataTable.Columns[(int)DataItemMappingGridColumns.SourceDataItem].ColumnName = DataItemMappingGridColumns.SourceDataItem.ToString();
70 | DataTable.Columns[(int)DataItemMappingGridColumns.TargetDataObject].ColumnName = DataItemMappingGridColumns.TargetDataObject.ToString();
71 | DataTable.Columns[(int)DataItemMappingGridColumns.TargetDataItem].ColumnName = DataItemMappingGridColumns.TargetDataItem.ToString();
72 | DataTable.Columns[(int)DataItemMappingGridColumns.Notes].ColumnName = DataItemMappingGridColumns.Notes.ToString();
73 | }
74 |
75 | ///
76 | /// Creates a object (Json List and DataTable) from a Json file.
77 | ///
78 | ///
79 | public void GetMetadata(string fileName)
80 | {
81 | EventLog.Add(Event.CreateNewEvent(EventTypes.Information, $"Retrieving metadata from {fileName}."));
82 |
83 | // Check if the file exists
84 | if (!File.Exists(fileName))
85 | {
86 | EventLog.Add(Event.CreateNewEvent(EventTypes.Warning, "No Json Table Mapping file was found."));
87 | DataTable.Clear();
88 | }
89 | else
90 | {
91 | EventLog.Add(Event.CreateNewEvent(EventTypes.Information, $"Reading file {fileName}"));
92 | // Load the file, convert it to a DataTable and bind it to the source
93 | List jsonArray = JsonConvert.DeserializeObject>(File.ReadAllText(fileName));
94 |
95 | // Commit to the object
96 | JsonList = jsonArray;
97 | var dataTable = Utility.ConvertToDataTable(jsonArray);
98 |
99 | //Make sure the changes are seen as committed, so that changes can be detected later on.
100 | dataTable.AcceptChanges();
101 |
102 | // Commit it to the object itself
103 | DataTable = dataTable;
104 |
105 | // Set the column names.
106 | SetDataTableColumns();
107 |
108 | // Set the sort order.
109 | //SetDataTableSorting();
110 | }
111 | }
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/Team_Library/TeamModelLayer.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace TEAM_Library
7 | {
8 | public class TeamModelLayer
9 | {
10 | ///
11 | /// Name of the layer, used for identification and must be unique.
12 | ///
13 | public string Name { get; set; }
14 |
15 | public string Description { get; set; }
16 |
17 | ///
18 | /// When true, the layer is automatically added to a new object.
19 | ///
20 | public bool IsDefault { get; set; }
21 |
22 | [JsonIgnore]
23 | public string DefaultName => "MyNewLayer";
24 |
25 | [JsonIgnore]
26 | public string DefaultDescription => "Click on the tab to create a new layer.\r\n\r\nLayers are saved against the active environment.";
27 |
28 | ///
29 | /// Default constructor.
30 | ///
31 | public TeamModelLayer()
32 | {
33 | Name = DefaultName;
34 | Description = DefaultDescription;
35 | }
36 |
37 | public TeamModelLayer(string layerName)
38 | {
39 | Name = layerName;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Team_Library/TeamObjectModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using DataWarehouseAutomation;
3 | using TEAM_Library;
4 |
5 | namespace TEAM
6 | {
7 | ///
8 | /// The parent object containing the list of source-to-target mappings. This is the highest level and contains the list of mappings (as individual objects
9 | /// but also the parameters inherited from TEAM and VEDW.
10 | ///
11 | public class VDW_DataObjectMappingList : DataObjectMappingList
12 | {
13 | // Generic interface definitions
14 | //public List dataObjectMapping { get; set; }
15 |
16 | // TEAM and VDW specific details
17 | public MetadataConfiguration metadataConfiguration { get; set; }
18 | public GenerationSpecificMetadata generationSpecificMetadata { get; set; }
19 | }
20 |
21 | ///
22 | /// Specific metadata related for generation purposes, but which is relevant to use in templates.
23 | ///
24 | public class GenerationSpecificMetadata
25 | {
26 | public DataObject selectedDataObject { get; set; }
27 | //public DateTime generationDateTime { get; } = DateTime.Now;
28 |
29 | public GenerationSpecificMetadata(DataObject dataObject)
30 | {
31 | selectedDataObject = dataObject;
32 | }
33 | }
34 |
35 | ///
36 | /// The parameters that have been inherited from TEAM or are set in VDW, passed as properties of the metadata - and can be used in the templates.
37 | ///
38 | public class MetadataConfiguration
39 | {
40 | // Attributes
41 | public string changeDataCaptureAttribute { get; set; }
42 | public string recordSourceAttribute { get; set; }
43 | public string loadDateTimeAttribute { get; set; }
44 | public string expiryDateTimeAttribute { get; set; }
45 | public string eventDateTimeAttribute { get; set; }
46 | public string recordChecksumAttribute { get; set; }
47 | public string etlProcessAttribute { get; set; }
48 | public string sourceRowIdAttribute { get; set; }
49 |
50 | public MetadataConfiguration(TeamConfiguration teamConfiguration)
51 | {
52 | changeDataCaptureAttribute = teamConfiguration.ChangeDataCaptureAttribute;
53 | recordSourceAttribute = teamConfiguration.RecordSourceAttribute;
54 | loadDateTimeAttribute = teamConfiguration.LoadDateTimeAttribute;
55 | expiryDateTimeAttribute = teamConfiguration.ExpiryDateTimeAttribute;
56 | eventDateTimeAttribute = teamConfiguration.EventDateTimeAttribute;
57 | recordChecksumAttribute = teamConfiguration.RecordChecksumAttribute;
58 | etlProcessAttribute = teamConfiguration.EtlProcessAttribute;
59 | sourceRowIdAttribute = teamConfiguration.RowIdAttribute;
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------