diff --git a/PresentValueSeries/InitializeData.ipynb b/PresentValueSeries/InitializeData.ipynb index 8fc5e0c7..bb01a0f9 100644 --- a/PresentValueSeries/InitializeData.ipynb +++ b/PresentValueSeries/InitializeData.ipynb @@ -37,6 +37,15 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "#!import \"//ifrs17/v1.0.0/CalculationEngine\"" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ diff --git a/ifrs17-template/Test/MapTemplateAndImportTest.ipynb b/ifrs17-template/Test/MapTemplateAndImportTest.ipynb index cbb0166b..f06f2428 100644 --- a/ifrs17-template/Test/MapTemplateAndImportTest.ipynb +++ b/ifrs17-template/Test/MapTemplateAndImportTest.ipynb @@ -304,9 +304,10 @@ "\ndataNodeStateCols.Intersect(tables.Tables[\"DataNodeState\"].Columns.Select(x => x.ColumnName).ToArray()).Count().Should().Be(dataNodeStateCols.Length);", "\n", "\n// check that imported data matches the exported data ", + "\nvar dataNodeStates = Workspace.Query().ToArray();", "\nawait Import.FromFile(filename+\".xlsx\").WithFormat(ImportFormats.DataNodeState).WithTarget(Workspace).ExecuteAsync();", "\n// Workspace is empty because ValidateDataNodeStatesAsync removes the entry, since this is already present in the DataSource.", - "\nWorkspace.Query().ToArray().Should().BeEmpty();", + "\n(Workspace.Query().ToArray().Except(dataNodeStates)).Should().BeEmpty();", "\n*/" ], "metadata": {}, diff --git a/ifrs17/DataModel/DataStructure.ipynb b/ifrs17/DataModel/DataStructure.ipynb index 79f3dd04..aa4cf4e1 100644 --- a/ifrs17/DataModel/DataStructure.ipynb +++ b/ifrs17/DataModel/DataStructure.ipynb @@ -1215,6 +1215,10 @@ "\n [Dimension(typeof(Scenario))]", "\n public string Scenario { get; init; }", "\n", + "\n [IdentityProperty]", + "\n [Display(Order = 37)]", + "\n public string Name { get; init; }", + "\n ", "\n [Conversion(typeof(PrimitiveArrayConverter))]", "\n [Display(Order = 40)]", "\n public double[] Values { get; init; }", @@ -1492,6 +1496,10 @@ "\n [Dimension(typeof(Portfolio))]", "\n //[Immutable]", "\n public string Portfolio { get; init; }", + "\n", + "\n [NotVisible]", + "\n //[Immutable]", + "\n public string YieldCurveName { get; init; }", "\n ", "\n public virtual string Partner { get; init; }", "\n}" diff --git a/ifrs17/Import/Importers.ipynb b/ifrs17/Import/Importers.ipynb index 3cd1de4a..9e10fe50 100644 --- a/ifrs17/Import/Importers.ipynb +++ b/ifrs17/Import/Importers.ipynb @@ -633,7 +633,10 @@ "\n AnnualCohort = Convert.ToInt32(datarow.Field(nameof(GroupOfContract.AnnualCohort))),", "\n LiabilityType = datarow.Field(nameof(GroupOfContract.LiabilityType)),", "\n Profitability = datarow.Field(nameof(GroupOfContract.Profitability)),", - "\n Portfolio = pf", + "\n Portfolio = pf,", + "\n YieldCurveName = dataset.Tables[nameof(GroupOfInsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfContract.YieldCurveName)) ", + "\n ? datarow.Field(nameof(GroupOfContract.YieldCurveName)) ", + "\n : (string)null,", "\n };", "\n return ExtendGroupOfContract(gic, datarow);", "\n })", @@ -658,7 +661,10 @@ "\n LiabilityType = datarow.Field(nameof(GroupOfContract.LiabilityType)),", "\n Profitability = datarow.Field(nameof(GroupOfContract.Profitability)),", "\n Portfolio = pf,", - "\n Partner = datarow.Field(nameof(GroupOfContract.Partner))", + "\n Partner = datarow.Field(nameof(GroupOfContract.Partner)),", + "\n YieldCurveName = dataset.Tables[nameof(GroupOfReinsuranceContract)].Columns.Any(x => x.ColumnName == nameof(GroupOfContract.YieldCurveName)) ", + "\n ? datarow.Field(nameof(GroupOfContract.YieldCurveName)) ", + "\n : (string)null,", "\n };", "\n return ExtendGroupOfContract(gric, datarow);", "\n })", diff --git a/ifrs17/README.md b/ifrs17/README.md index 4f6f5b7d..f3229e57 100644 --- a/ifrs17/README.md +++ b/ifrs17/README.md @@ -1,6 +1,6 @@ **The Systemorph IFRS 17 Calculation Engine** provides the functionality to develop and maintain an IFRS 17 solution based on Systemorph Cloud. It includes specifications and corresponding implementations of data importers, data transformations, calculations, reports and much more. @@ -18,7 +18,7 @@ Open our [**IFRS 17 Template**](https://portal.systemorph.cloud/project/ifrs17-t If you want to know more about the Calculation Engine than just its standard technical use, you are recommended to look at [Overview Calculation Engine](./OverviewCalculationEngine) notebook. You will be introduced to: - [DataModel](./DataModel/DataStructure) with links to detailed description of individual data types, dimensions and partitions employed -- [Calculation](./Import/ImportScopeCalculation) with in detail description using mathematical formulas and links to supporting material +- [Import Calculation](./Import/ImportScopeCalculation) with in detail description using mathematical formulas and links to supporting material

IFRS 17 Solution Overview