Transfer Data to the Synthesis Data Warehouse (SDW): Difference between revisions

From ReliaWiki
Jump to navigation Jump to search
(Created page with '{{DISPLAYTITLE:Synthesis Data Warehouse (SDW) Tutorial}}{{Template:API}}{{InProgress}} <div style="border:1px solid #AAA; background:#f9f9f9; border-radius:10px; width:auto; marg…')
 
No edit summary
Line 1: Line 1:
{{DISPLAYTITLE:Synthesis Data Warehouse (SDW) Tutorial}}{{Template:API}}{{InProgress}}
{{InProgress}}{{DISPLAYTITLE:Synthesis Data Warehouse (SDW) Tutorial}}{{Template:API}}
<div style="border:1px solid #AAA; background:#f9f9f9; border-radius:10px; width:auto; margin:0 0 1em 1em; padding:1em; float:right;">
<div style="border:1px solid #AAA; background:#f9f9f9; border-radius:10px; width:auto; margin:0 0 1em 1em; padding:1em; float:right;">
<nowiki><<</nowiki> [[APIQuickStartGuide|Back to Quick Start Guide]]
<nowiki><<</nowiki> [[APIQuickStartGuide|Back to Quick Start Guide]]


'''Synthesis Data Warehouse (SDW) Tutorial'''
'''Synthesis Data Warehouse (SDW) Tutorial'''
#Connect to a Synthesis Repository and Project
#[[APISynthesisResourcesTutorial2|Create a New Synthesis Resource]]
#[[APISynthesisResourcesTutorial3|Update an Existing Resource]]
#[[APISynthesisResourcesTutorial4|Calculate Results from a Model]]
</div>
</div>


The Synthesis Data Warehouse (SDW) — formerly called "Reliability Data Warehouse" — is a temporary data storage location in a Synthesis repository. The SDW can connect to various third-party sources and extract data for use in Weibull++, ALTA or RGA standard folios.  
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 over to a Synthesis repository. We'll use data from an Excel file to demonstrate this capability.


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: [http://reliasoft.com/synthesis/api/tutorials/SDW_SampleData.xls SDW_SampleData.xls] (30 KB)''.


== Transfer Analysis Data to a Synthesis Repository==
== Transfer Data from an Excel File to the SDW ==


1. We'll begin with the <code>RawDataSet</code> class, which represents an SDW data collection. In this example, we'll create a data collection for use with Weibull++
1. Let's begin with the <code>RawDataSet</code> 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 basic code for creating an SDW data collection.
Create a new module and start with the following code to create an SDW data collection.
 
'''VBA'''
{{APIComment|'Declare a new instance of the RawDataSet class.}}
  {{APIPrefix|Dim}} DataCollection {{APIPrefix|As New}} RawDataSet
{{APIComment|'Name the data collection "New Data Collection," and then specify that}}
{{APIComment|'it is for use with Weibull++.}}
  DataCollection.ExtractedName = {{APIString|"New Data Collection"}}
  DataCollection.ExtractedType = RawDataSetType_Weibull
 
'''VB.NET'''
{{APIComment|'Declare a new instance of the RawDataSet class.}}
  {{APIPrefix|Dim}} DataCollection {{APIPrefix|As New}} RawDataSet
{{APIComment|'Name the data collection "New Data Collection," and then specify that}}
{{APIComment|'it is for use with Weibull++.}}
  DataCollection.ExtractedName = {{APIString|"New Data Collection"}}
  DataCollection.ExtractedType = RawDataSetType.Weibull
 
 
2. Next, we'll use the <code>RawData</code> class to represent a single row of data, and then use the <code>AddDataRow</code> 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 <code>i = 2</code>, the code creates a new <code>RawData</code> 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 <code>Next i</code>, it increases <code>i</code> with 1 and jumps back to the <code>For</code> statement, which adds another new <code>RawData</code> 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 <code>i</code> reaches the specified number of rows (MaxRow). 
 
'''VBA'''
{{APIComment|'Declare a new instance of the RawData class.}}
  {{APIPrefix|Dim}} Row {{APIPrefix|As New}} RawData
{{APIComment|'Read each row of data from the Excel sheet.}}
  {{APIPrefix|Dim}} i {{APIPrefix|As}} Integer, MaxRow {{APIPrefix|As}} Integer
  MaxRow = 100
  {{APIPrefix|For}} i = 2 {{APIPrefix|to}} MaxRow
      {{APIPrefix|Set}} Row = {{APIPrefix|New}} RawData
    {{APIComment|'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)
    {{APIComment|'Add the current row to the data collection.}}
      {{APIPrefix|Call}} DataCollection.AddDataRow(Row)
  {{APIPrefix|Next}} i
 
'''VB.NET'''
{{APIComment|'Declare a new instance of the RawData class.}}
  {{APIPrefix|Dim}} Row {{APIPrefix|As New}} RawData
{{APIComment|'Read each row of data from the Excel sheet.}}
  {{APIPrefix|Dim}} i {{APIPrefix|As}} Integer, MaxRow {{APIPrefix|As}} Integer
  MaxRow = 100
  {{APIPrefix|For}} i = 2 to MaxRow
      Row = {{APIPrefix|New}} RawData
    {{APIComment|'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)
    {{APIComment|'Add the current row to the data collection.}}
      DataCollection.AddDataRow(Row)
  {{APIPrefix|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 <code>SaveRawDataSet</code> method to save the data collection to the repository.
 
'''VBA'''
{{APIComment|'Connect to the Synthesis repository. The following code assumes that}}
{{APIComment|'a standard repository called "RSRepository1.rsr10" exists in the C: drive.}} 
  {{APIPrefix|Dim}} MyRepository {{APIPrefix|As New}} Repository 
  MyRepository.ConnectToRepository ({{APIString|"C:\RSRepository1.rsr10"}})
{{APIComment|'Save the extracted data collection to the repository.}}
  {{APIPrefix|Call}} MyRepository.SaveRawDataSet(DataCollection)
 
'''VB.NET'''
{{APIComment|'Connect to the Synthesis repository. The following code assumes that}}
{{APIComment|'a standard repository called "RSRepository1.rsr10" exists in the C: drive.}}
  {{APIPrefix|Dim}} MyRepository {{APIPrefix|As New}} Repository
  MyRepository.ConnectToRepository ({{APIString|"C:\RSRepository1.rsr10"}})
{{APIComment|'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()
{{APIComment|'Declare a new instance of the RawDataSet class.}}
  {{APIPrefix|Dim}} DataCollection {{APIPrefix|As New}} RawDataSet
{{APIComment|'Name the data collection "New Data Collection," and then specify that}}
{{APIComment|'it is for use with Weibull++.}}
  DataCollection.ExtractedName = {{APIString|"New Data Collection"}}
  DataCollection.ExtractedType = RawDataSetType_Weibull
{{APIComment|'Declare a new instance of the RawData class.}}
  {{APIPrefix|Dim}} Row {{APIPrefix|As New}} RawData
{{APIComment|'Read each row of data from the Excel sheet.}}
  {{APIPrefix|Dim}} i {{APIPrefix|As}} Integer, MaxRow {{APIPrefix|As}} Integer
  MaxRow = 100
  {{APIPrefix|For}} i = 2 {{APIPrefix|to}} MaxRow
      {{APIPrefix|Set}} Row = {{APIPrefix|New}} RawData
    {{APIComment|'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)
    {{APIComment|'Add the current row to the data collection.}}
      {{APIPrefix|Call}} DataCollection.AddDataRow(Row)
  {{APIPrefix|Next}} i
{{APIComment|'Connect to the Synthesis repository. The following code assumes that}}
{{APIComment|'a standard repository called "RSRepository1.rsr10" exists in the C: drive.}}
  {{APIPrefix|Dim}} MyRepository {{APIPrefix|As New}} Repository
  MyRepository.ConnectToRepository ({{APIString|"C:\RSRepository1.rsr10"}})
{{APIComment|'Save the extracted data collection to the repository.}}
  {{APIPrefix|Call}} MyRepository.SaveRawDataSet(DataCollection)
End Sub
 
'''VB.NET'''
Sub Main()
{{APIComment|'Declare a new instance of the RawDataSet class.}}
  {{APIPrefix|Dim}} DataCollection {{APIPrefix|As New}} RawDataSet
{{APIComment|'Name the data collection "New Data Collection," and then specify that}}
{{APIComment|'it is for use with Weibull++.}}
  DataCollection.ExtractedName = {{APIString|"New Data Collection"}}
  DataCollection.ExtractedType = RawDataSetType.Weibull
{{APIComment|'Declare a new instance of the RawData class.}}
  {{APIPrefix|Dim}} Row {{APIPrefix|As New}} RawData
{{APIComment|'Read each row of data from the Excel sheet.}}
  {{APIPrefix|Dim}} i {{APIPrefix|As}} Integer, MaxRow {{APIPrefix|As}} Integer
  MaxRow = 100
  {{APIPrefix|For}} i = 2 to MaxRow
      Row = {{APIPrefix|New}} RawData
    {{APIComment|'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)
    {{APIComment|'Add the current row to the data collection.}}
      DataCollection.AddDataRow(Row)
  {{APIPrefix|Next}} i
{{APIComment|'Connect to the Synthesis repository. The following code assumes that}}
{{APIComment|'a standard repository called "RSRepository1.rsr10" exists in the C: drive.}}
  {{APIPrefix|Dim}} MyRepository {{APIPrefix|As New}} Repository
  MyRepository.ConnectToRepository ({{APIString|"C:\RSRepository1.rsr10"}})
{{APIComment|'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:
*[[RawDataSet Class]]
*[[RawData Class]]
*[[AddDataRow Method|RawDataSet.AddDataRow Method]]
*[[Repository.DataWarehouse.SaveRawDataSet|Repository.DataWarehouse.SaveRawDataSet Method]]

Revision as of 21:37, 27 October 2015

Template:InProgress

APIWiki.png


<< Back to Quick Start Guide

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: