Transfer Data to the Synthesis Data Warehouse (SDW)
Synthesis Data Warehouse (SDW) Tutorial
The Synthesis Data Warehouse (SDW) — formerly called "Reliability Data Warehouse" — is a temporary data storage location in a Synthesis repository. It allows you to connect to external data sources and extract data for use in Weibull++, ALTA or RGA standard folios.
In this tutorial, you'll learn how to use the Synthesis API to create a custom solution for moving data from an external source over to a Synthesis repository. We'll use data from an Excel file to demonstrate this capability. Download the sample Excel file used in this example: SDW_SampleData.xls (30 KB).
Transfer Data from an Excel File to the SDW
1. Let's begin with the RawDataSet
class, which represents an SDW data collection. In this example, we'll create a data collection for use with Weibull++.
Create a new module and start with the following code to create an SDW data collection.
VBA 'Declare a new instance of the RawDataSet class. Dim DataCollection As New RawDataSet 'Name the data collection "New Data Collection," and then specify that 'it is for use with Weibull++. DataCollection.ExtractedName = "New Data Collection" DataCollection.ExtractedType = RawDataSetType_Weibull
VB.NET 'Declare a new instance of the RawDataSet class. Dim DataCollection As New RawDataSet 'Name the data collection "New Data Collection," and then specify that 'it is for use with Weibull++. DataCollection.ExtractedName = "New Data Collection" DataCollection.ExtractedType = RawDataSetType.Weibull
2. Next, we'll use the RawData
class to represent a single row of data, and then use the AddDataRow
method to add the row to the data collection.
The following code demonstrates one way to extract a row of data from the Excel sheet. For i = 2
, the code creates a new RawData
object, sets the object's properties with the data from row #2 of the Excel file, and then adds that object to the data collection. When the code reaches Next i
, it increases i
with 1 and jumps back to the For
statement, which adds another new RawData
object, sets its properties with the data from row #3 of the Excel sheet, and adds the row to the data collection. The loop continues until i
reaches the specified number of rows (MaxRow).
VBA 'Declare a new instance of the RawData class. Dim Row As New RawData 'Read each row of data from the Excel sheet. Dim i As Integer, MaxRow As Integer MaxRow = 100 For i = 2 to MaxRow Set Row = New RawData 'Set the desired properties for the current row of data. Row.StateFS = Sheet1.Cells(i, 1) Row.StateTime = Sheet1.Cells(i,2) Row.FailureMode = Sheet1.Cells(i,3) 'Add the current row to the data collection. Call DataCollection.AddDataRow(Row) Next i
VB.NET 'Declare a new instance of the RawData class. Dim Row As New RawData 'Read each row of data from the Excel sheet. Dim i As Integer, MaxRow As Integer MaxRow = 100 For i = 2 to MaxRow Row = New RawData 'Set the desired properties for the current row of data. Row.StateFS = Sheet1.Cells(i, 1) Row.StateTime = Sheet1.Cells(i,2) Row.FailureMode = Sheet1.Cells(i,3) 'Add the current row to the data collection. DataCollection.AddDataRow(Row) Next i
3. Now that the data from the Excel file have been added to the data collection, the next step is to save the data collection to the Synthesis repository.
First, connect to the Synthesis repository and then use the SaveRawDataSet
method to save the data collection to the repository.
VBA 'Connect to the Synthesis repository. The following code assumes that 'a standard repository called "RSRepository1.rsr10" exists in the C: drive. Dim MyRepository As New Repository MyRepository.ConnectToRepository ("C:\RSRepository1.rsr10") 'Save the extracted data collection to the repository. Call MyRepository.SaveRawDataSet(DataCollection)
VB.NET 'Connect to the Synthesis repository. The following code assumes that 'a standard repository called "RSRepository1.rsr10" exists in the C: drive. Dim MyRepository As New Repository MyRepository.ConnectToRepository ("C:\RSRepository1.rsr10") 'Save the extracted data collection to the repository. MyRepository.SaveRawDataSet(DataCollection)
Test the Code
Let's verify whether the code can import the data successfully into the SDW.
Below are the VBA and VB.NET code lists for this example. On the Debug menu, click Start to run the application. Then verify that the data were imported by launching Weibull++, opening the SDW (Home > Synthesis > Synthesis Data Warehouse) and then selecting the new data collection.
VBA Sub Main() 'Declare a new instance of the RawDataSet class. Dim DataCollection As New RawDataSet 'Name the data collection "New Data Collection," and then specify that 'it is for use with Weibull++. DataCollection.ExtractedName = "New Data Collection" DataCollection.ExtractedType = RawDataSetType_Weibull 'Declare a new instance of the RawData class. Dim Row As New RawData 'Read each row of data from the Excel sheet. Dim i As Integer, MaxRow As Integer MaxRow = 100 For i = 2 to MaxRow Set Row = New RawData 'Set the desired properties for the current row of data. Row.StateFS = Sheet1.Cells(i, 1) Row.StateTime = Sheet1.Cells(i,2) Row.FailureMode = Sheet1.Cells(i,3) 'Add the current row to the data collection. Call DataCollection.AddDataRow(Row) Next i 'Connect to the Synthesis repository. The following code assumes that 'a standard repository called "RSRepository1.rsr10" exists in the C: drive. Dim MyRepository As New Repository MyRepository.ConnectToRepository ("C:\RSRepository1.rsr10") 'Save the extracted data collection to the repository. Call MyRepository.SaveRawDataSet(DataCollection) End Sub
VB.NET Sub Main() 'Declare a new instance of the RawDataSet class. Dim DataCollection As New RawDataSet 'Name the data collection "New Data Collection," and then specify that 'it is for use with Weibull++. DataCollection.ExtractedName = "New Data Collection" DataCollection.ExtractedType = RawDataSetType.Weibull 'Declare a new instance of the RawData class. Dim Row As New RawData 'Read each row of data from the Excel sheet. Dim i As Integer, MaxRow As Integer MaxRow = 100 For i = 2 to MaxRow Row = New RawData 'Set the desired properties for the current row of data. Row.StateFS = Sheet1.Cells(i, 1) Row.StateTime = Sheet1.Cells(i,2) Row.FailureMode = Sheet1.Cells(i,3) 'Add the current row to the data collection. DataCollection.AddDataRow(Row) Next i 'Connect to the Synthesis repository. The following code assumes that 'a standard repository called "RSRepository1.rsr10" exists in the C: drive. Dim MyRepository As New Repository MyRepository.ConnectToRepository ("C:\RSRepository1.rsr10") 'Save the extracted data collection to the repository. MyRepository.SaveRawDataSet(DataCollection) End Sub
References
To learn more, see the reference documentation for the classes and methods discussed in this section: