Transfer Data to the Synthesis Data Warehouse (SDW)

From ReliaWiki
Revision as of 18:09, 10 February 2016 by Kate Racaza (talk | contribs)
Jump to navigation Jump to search
APIWiki.png


<< Back to API Tutorials

Transfer Data to the SDW

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 the following tutorial, you'll learn how to use the Synthesis API to create a custom solution for moving data from an external data source over to the SDW. To keep things simple, we'll use data from an Excel file to demonstrate this capability.

The tutorial is available for both VBA and VB.NET. Note that the tutorial demonstrates one particular approach to read data from an Excel file and extract it for the SDW. It is for demonstration purposes only; the approach does not take efficiency into account and does not include any exception handling. To complete the tutorial successfully, please use the sample Excel data given below.

Create an Excel file for this tutorial

Before you begin the tutorial, please create an Excel file to use as your sample data.

Create an Excel file, then copy and paste the following data to the file. Be sure to select cell A1 in Sheet1 of the workbook when pasting the data. Save the Excel file as "SampleData."

Failure State Time to F or S Failure Mode
F 7380 Cracked
F 4956 Cracked
F 5451 Cracked
F 6779 Failed
F 7713 Aging
F 1807 Bending
F 5940 Chafing
F 2071 Arcing
F 8178 Loose
F 3006 Burned
F 1385 Broken
F 2432 No Contact
F 1169 No Contact
F 592 Shorted
F 24 Burned
F 453 Burned
F 382 Burned
F 774 Burned
F 53 Burned


VBA Tutorial: Transfer Data from an Excel File to the SDW

Before you begin, be sure to reference the Microsoft Excel Object Library. Choose Tools > Reference, and then select the library from the list. Click OK.

1. Create a new module and start with the following code to create an SDW data collection. The code uses the RawDataSet object to represent the SDW data collection, and the ExtractedType property to specify that the data collection is for use with Weibull++.

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

2. Use the RawData object 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, and then sets its properties by using the values from row #2 of the Excel file. After the code finishes reading the row of data, it adds the 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 for the data in row #3 of the Excel sheet, and so on. 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 = 20

  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

3. The next step is to save the data collection to the Synthesis repository.

Connect to the Synthesis repository and then use the DataWarehouse.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.DataWarehouse.SaveRawDataSet(DataCollection)

Test the Code

Below is the complete code list for this VBA 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. (You may need to display the StateTime, StateFS and FailureMode columns by right-clicking a column header and choosing Select Columns.)

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 = 20

  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.DataWarehouse.SaveRawDataSet(DataCollection)

End Sub


VB.NET Tutorial: Transfer Data from an Excel File to the SDW

Before you begin, be sure to reference the Microsoft Excel Object Library. Choose Project > Add Reference, and then select the library from the COM tab. Click OK.

Create a new form. On the code page, add an Imports statement for Microsoft.Office.Interop.Excel.

1. Start with the following code to create an SDW data collection. The code uses the RawDataSet object to represent an SDW data collection, and the ExtractedType property to specify that the data collection is for use with 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. Use the RawData object 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 file. First, the code opens a connection to the Excel file and specifies the active sheet (in this case, Sheet1). Then For i = 2, the code creates a new RawData object and sets its properties by using the values from row #2 of the Excel file. After the code finishes reading the row of data, it adds the 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 for the data in row #3 of the Excel sheet, and so on. The loop continues until i reaches the specified number of rows (MaxRow). Finally, the code closes the connection to the Excel file.

VB.NET

 'Declare a new instance of the RawData class. 
  Dim Row As New RawData

 'Open the Excel file. The following code assumes that the 
 'Excel file is saved in the C drive. 
  Dim Excel As New Application
  Dim Workbook As Workbook
  Dim Sheet As Worksheet

  Workbook = Excel.Workbooks.Open("C:\SampleData.xlsx")
  Sheet = Workbook.Sheets(1)

 'Read each row of data in the Excel file. 
  Dim i As Integer, MaxRow As Integer
  MaxRow = 20

  For i = 2 To MaxRow
      Row = New RawData

     'Set the properties for the current row of data. 
      Row.StateFS = sheet.Cells(i, 1).text
      Row.StateTime = sheet.Cells(i, 2).value
      Row.FailureMode = sheet.Cells(i, 3).text

     'Add the current row to the data collection. 
      Call DataCollection.AddDataRow(Row)
  Next i

 'Close the Excel file. 
  Workbook.Close()
  Excel.Quit()

3. The next step is to save the data collection to the Synthesis repository.

Connect to the Synthesis repository and then use the DataWarehouse.SaveRawDataSet method to save the data collection to the repository.

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.DataWarehouse.SaveRawDataSet(DataCollection)

Test the Code

Below is the complete code list for this VB.NET 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. (You may need to display the StateTime, StateFS and FailureMode columns by right-clicking a column header and choosing Select Columns.)

VB.NET

Imports SynthesisAPI 
Imports Microsoft.Office.Interop.Excel

 Public Class Form1
     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

      '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
 
      'Open the Excel file. The following code assumes that the 
      'Excel file is saved in the C drive. 
       Dim Excel As New Application
       Dim Workbook As Workbook
       Dim Sheet As Worksheet

       Workbook = Excel.Workbooks.Open("C:\SampleData.xlsx")
       Sheet = Workbook.Sheets(1)

      'Read each row of data in the Excel file. 
       Dim i As Integer, MaxRow As Integer
       MaxRow = 20
 
       For i = 2 To MaxRow
           Row = New RawData

           'Set the properties for the current row of data. 
            Row.StateFS = sheet.Cells(i, 1).text
            Row.StateTime = sheet.Cells(i, 2).value
            Row.FailureMode = sheet.Cells(i, 3).text

          'Add the current row to the data collection. 
           Call DataCollection.AddDataRow(Row)
       Next i

      'Close the Excel file. 
       Workbook.Close()
       Excel.Quit()

      '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.DataWarehouse.SaveRawDataSet(DataCollection)

     End Sub
End Class


References

To learn more, see the reference documentation for the classes and methods discussed in this section: