PI AF Database Upgrade
PI AF Database Upgrade
OSIsoft, LLC
777 Davis St., Suite 250
San Leandro, CA 94577 USA
Tel: (01) 510-297-5800
Fax: (01) 510-357-8136
Web: http://www.osisoft.com
OSIsoft Australia Perth, Australia
OSIsoft Europe GmbH Frankfurt, Germany
OSIsoft Asia Pte Ltd. Singapore
OSIsoft Canada ULC Montreal & Calgary, Canada
OSIsoft, LLC Representative Office Shanghai, Peoples Republic of China
OSIsoft Japan KK Tokyo, Japan
OSIsoft Mexico S. De R.L. De C.V. Mexico City, Mexico
OSIsoft do Brasil Sistemas Ltda. Sao Paulo, Brazil
OSIsoft France EURL Paris, France
Table of Contents
Chapter 1 Introduction and Guidelines .......................................................................................5
Chapter 2 Running the Utility .......................................................................................................7
Chapter 3 Compatibility Layer....................................................................................................11
Installing / Uninstalling the Compatibility Layer................................................................11
Using the AF Compatibility Layer.....................................................................................12
AF Plug-Ins.......................................................................................................................12
Known Changes in Functionality......................................................................................12
Bypassing the AF Compatibility Layer .............................................................................13
Chapter 4 Upgrading Custom AFSDK Programs .....................................................................17
Chapter 5 AFControls Upgrade for Custom Applications.......................................................19
Appendix A AF 1.x and AF 2.x Differences...............................................................................21
Table 1 - AFSDK Changes...............................................................................................21
Table 2 - Change Reason Descriptions ...........................................................................31
Table 3 - Obsoleted Classes, Properties, and Methods ..................................................33
Appendix B Technical Support and Resources .......................................................................35
iii
Chapter 1
You can delay upgrading your 1.x databases and 1.x programs to any time after you have
installed AF 2.x. Until that time, you can run AF 1.x and AF 2.x side by side.
You must upgrade your AF 1.x databases before AF 2.x programs will be able to access
your AF 1.x data.
1.x programs can be redirected to use AF 2.x databases without being recompiled by
installing the Compatibility Layer. After the Compatibility Layer is installed, by default
all AF 1.x programs are redirected to AF 2.x. This includes existing OSIsoft tools, such
as AFExplorer and the AFModeler Add-In to ProcessBook. This behavior can be
overridden on a program-by-program basis
AF 2.x Client Programs will not have access to AF 1.x Databases until after they have
been upgraded. It is recommended that the Compatibility Layer be installed at the time
you upgrade your AF 1.x Databases. If the Compatibility Layer is not installed, then AF
2.x applications will not be able to load Data References, Analysis Rules, or Time Rules
that are built against AF 1.x.
It is recommended that you install the database upgrade utility on the computer where the
AF 1.x Server is installed. If you run the utility on a different computer, you must have
administrative privileges on the AF 1.x Server's computer as it is necessary for the utility
to have both file and registry access to the AF 1.x Server installation. After running the
upgrade utility, client AF 1.x applications will continue to connect to the AF 1.x Server
until the Compatibility Layer is installed.
Plug-ins developed for AF 1.x and installed in AF 1.x are made available in AF 2.x at the
time the databases are upgraded. However, these plug-ins only run in client applications
where the AF 1.x Compatibility Layer is installed.
Note: The AF 2.x installation program does not install the Upgrade Utility. You must
install the utility separately, and then run the utility as described in section
"Running the Utility (page 7)."
Chapter 2
2. The utility registers any custom AF 1.x plug-ins into the AF 2.x database.
3. The utility reads the XML files and recreates the database in AF 2.x format.
At the end of the upgrade, both AF 1.x and 2.x databases remain intact. However, subsequent
changes made to the AF 1.x database or plug-ins are not replicated to the 2.x database.
To upgrade the database, follow the steps below.
1. Click Programs>PI System>PI-AF 1.x to AF 2.x Upgrade Utility to run the utility.
The Upgrade Analysis Framework 1.x Data dialog box appears, as shown below.
2. Click
by the 1.x PI System field to select the AF 1.x system with the database to
upgrade.
Note: If the system is not listed, exit the Upgrade Utility. Run the About PI-SDK
Utility to add the system to the Known Servers Table. Then restart the
Upgrade Utility.
The Upgrade Utility must have both File and Registry access to the computer
on which the AF 1.x Server is installed. For this reason, it is recommended
that you run the utility on the same computer as the AF 1.x Server. If run from
a remote computer, you must typically have administrator privileges on the AF
1.x computer.
3. Click
by the 2.x PI System field to select the AF 2.x destination system. If the system
is not listed, click . The Systems dialog box appears, shown in the following figure,
and you can select from the systems in this dialog box.
If the system does not appear in the Systems dialog box, right-click in the Name field,
and select New PI System, a shown in the following figure.
Enter any name you prefer in the Name field and enter the host/server in the Host
field.
Unless your particular application requires another port, accept the default value in
the Port field.
For the Account field, enter the account name under which the AF Server for this PI
System is executing. Note that you can modify the account only when disconnected
from the server. The account is used to authenticate the connection to the AF Server.
If left blank, then an attempt is made to determine the server's host name from the
DNS and authenticate using the server's host name.
The default value of 300 seconds is acceptable in most cases. If you experience
timeout errors as you work in the PI System Explorer, increase the time in the
Timeout box.
If you want to assign an optional alias to the server, enter it in the Aliases field
.Aliases are alternate names that can be used for the PI System when looking up a PI
System. Aliases for a PI System are stored only locally on the client where they are
configured.
4. After you have selected the systems, click Next. The Select Databases dialog box
appears.
5. Select the databases that you want to upgrade and enter the start/end times for cases and
transfers. Then click Next.The utility displays the progress as shown in the following
figure.
10
Chapter 3
Compatibility Layer
The AF Compatibility Layer provides users a way to maintain existing applications built on
PI Analysis Framework 1.x after upgrading to AF 2.x. This allows applications built on
previous PI Analysis Framework releases to continue to run without code changes after the
AF 2.x upgrade. The AF Compatibility Layer consists of three .Net assemblies and three
policy files. When installed, the policy files redirect all applications compiled against AF 1.x
assemblies to the appropriate AF Compatibility Layer assemblies. The AF Compatibility
Layer assemblies work by redirecting PI Analysis Framework 1.x methods and properties to
their corresponding AF 2.x methods and properties. This interaction is automatically done
and prevents the user from having to manually make code changes or recompile their code
with the new assemblies.
policy.1.0.OSIsoft.PI.Modeling.dll
policy.1.0.OSIsoft.PI.System.dll
policy.1.0.OSIsoft.PI.UnitsOfMeasure.dll
The AF Compatibility Layer is optionally installed by the PI-AF Client Installation package.
You must explicitly select it in order for it to be installed.
The compatibility layer requires build 1434 or later of the Analysis Framework to enable the
installation option.
During the PI-AF Client Installation, an AF Compatibility dialog box appears.
1. To install the AF Compatibility Layer, click Install. If you decide not to install the AF
Compatibility Layer, none of the AF Compatibility Layer will be installed. This means
that any previously installed PI Analysis Framework 1.x applications will continue to use
the PI-AF 1.x server and database.
2. If you continue with installation, you are prompted to select a Typical or Custom
installation. A Typical installation installs all files listed above without installing the
debug (.PDB) files. A Custom installation installs the files listed above and all
corresponding debug (.PDB) files. Make your choice and click Next.
11
Compatibility Layer
To remove the AF Compatibility Layer from your system, use the standard Windows
Add/Remove Programs utility in the Control Panel.
1. Locate the PI AF Client installation and click Change.
2. Deselect the AF Compatibility Layer Files in the Set Up dialog box. This removes the
AF Compatibility Layer assemblies and policy files from your system.
3. If the PI Analysis Framework Client 1.x is still installed on your system, select that client,
click Change, and run an installation repair. This ensures that the AF Client 1.x
continues to work as expected.
AF Plug-Ins
For the PI Analysis Framework 1.x Plug-Ins to function after you upgrade to AF 2.x, you
must install the AF Compatibility Layer.
12
IsDirty flags
In PI Analysis Framework 1.x, almost every object contains an IsDirty flag, which is
set to TRUE when an object is changed or to FALSE when the change is saved. In
AF 2.x, several of the IsDirty flags have been removed.
The IsDirty flag on a collection will be TRUE only if an object in the collection has
its IsDirty flag set to TRUE. In AF 1.x, the IsDirty flag on a collection is set to
TRUE if the collection is changed as a result of an Add or Remove operation,
regardless of the IsDirty flag on each object in the collection.
In the event that an IsDirty flag has been removed from an object in AF 2.x, the AF
Compatibility Layer will always return FALSE for the value of the IsDirty flag.
In AF 1.3, a 'Node' type of element has 'In' and 'Out' ports by default. In AF 2.x, it also
has a 'Measurement' port by default.
The name of the default port for a Measurement has been changed from 'Measure' to
'Measurement'.
The Pi Point Data Reference Auto Create Point functionality has changed. This change is
also visible through the compatibility layer. With 2.x and through the compatibility layer
you must open PISystem Explorer, right-click the attribute, and select Create or Update'
PI Point. An alternate approach is to create a utility that goes through the elements and
calls the attributes' CreateConfig method.
The security model in AF 2.x has changed significantly. Objects, such as elements,
tables, and element templates are independently securable. AF 1.x applications running
through the compatibility layer may base their behavior on the limited security model of
AF 1.x, and thus may not always correctly enable or disable features of the application.
The AF 2.x Server will correctly enforce the new security model.
13
Compatibility Layer
When you have configured each of these assemblies for use by the specified application, a
configuration file will exist in the same directory as the specified application. It will have the
same name as the application being configured, but with a .config file extension. The
following XML file shows the contents of the configuration file. Verify that the
<publisherPolicy apply= no /> lines appear for each assembly. These lines
cause the AF Compatibility Layer to be bypassed.
Example Configuration File:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="OSIsoft.PI.System"
publicKeyToken="6238be57836698e6" />
<publisherPolicy apply="no" />
<bindingRedirect oldVersion="1.5.0.0" newVersion="1.0.0.0"
/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="OSIsoft.PI.UnitsOfMeasure"
publicKeyToken="6238be57836698e6" />
<publisherPolicy apply="no" />
<bindingRedirect oldVersion="1.5.0.0" newVersion="1.0.0.0"
/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="OSIsoft.PI.Modeling"
publicKeyToken="6238be57836698e6" />
<publisherPolicy apply="no" />
<bindingRedirect oldVersion="1.5.0.0" newVersion="1.0.0.0"
/>
</dependentAssembly>
</assemblyBinding>
</runtime>
14
</configuration>
15
Chapter 4
using OSIsoft.AF.Modeling;
VB.NET:
Imports OSIsoft.AF.Modeling
OSIsoft.AF.Modeling.AFModel m1;
VB.NET:
Dim m1 as OSIsoft.AF.Modeling.AFModel
A limited set of features in AF 1.x have been deprecated. It is unlikely that users will
encounter many of these features. See Appendix A (page 21) for a detailed list. A number of
methods or properties have been obsoleted but are still supported. These will generate
warnings and can be addressed at the programmers convenience.
Alternately, users can continue to program against the AF 1.5 Assemblies, and use the
AFSDK 2.x only as necessary to access new features. All AF 1.5 objects support automatic
conversion to the corresponding AFSDK 2.x object. For example, to access the new feature
of versioning from an AF 1.x program in C#, use the following code:
using OSIsoft.PI.Modeling; // using AF 1.x
17
18
Chapter 5
19
Appendix A
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
PISystems
Add(string)
Connection
information
PISystems
ComAdvise()
MISSING
Internal
PISystems
ComUnadvise()
MISSING
Internal
PISystems
Dispose
MISSING
No longer a
disposable
object.
PISystems
FindObject(string)
MISSING
Internal
PISystems
Remove(string)
returns bool
Return added
PISystems
Remove(PISystem)
returns bool
Return added
PISystem
ClientID
MISSING
Internal
PISystem
ClientIDGuid
MISSING
Internal
PISystem
ComAdvise
MISSING
Event Handling
PISystem
ComUnadvise
MISSING
Event Handling
PISystem
ConnectChanged
ConnectChanged
Event Handling
PISystem
ConnectionInfo(string, string,
int)
ConnectionInfo property
Connection
information
PISystem
FindObject(string)
FindObject(string,
AFObject)
Internal
PISystem
FullPathName
AFObject.GetPath()
Internal
PISystem
OpenRegKeyServers(bool)
MISSING
Internal
PISystem
PIAFServer
MISSING
Internal
Interfaces not
used
IPISubSystem
21
AF 1.0 Class
AF 1.0 Methods/Properties
IPIVersionControl
Reason
IAFVersionable,
IAFTransactable
Old Versioning
Removed
IPIVersionControl
CheckOutInfo
CheckOutInfo
CheckoutInfo
Class Change
IPIVersionControl
VersionInfo
IAFVersionable.Version
Old Versioning
Removed
IPIVersionControl
CheckIn
returns bool
Return added
IPIVersionControl
CheckOut
returns bool
Return added
IPIVersionControl
CreateVersion(System.DateT
ime,string)
AFVersion.Create
Old Versioning
Removed
IPIVersionControl
UndoCheckout(bool)
IAFTransactable.UndoCh
eckOut(bool)
Old Versioning
Removed
AFCheckOutInfo
CheckoutInfo
Class Change
returns AFTime
AFTime
AFVersion
Old Versioning
Removed
PICheckOutInfo
PICheckOutInfo
CheckOutTime
PIVersionInfo
22
AF 2.x Difference
PIVersionInfo
EffectiveDate
returns AFTime
AFTime
UniversalComparer
Compare(object,object)
Compare(T, T)
Internal
UniversalComparer
UniversalComparer(System.T
ype, string)
UniversalComparer<T>(st
ring)
Internal
InsertedEventArgs
AFChangedEventArgs
Event Handling
RemovedEventArgs
AFChangedEventArgs
Event Handling
RenamedEventArgs
AFChangedEventArgs
Event Handling
ConnectChangedEv
entHandler
ConnectChangedEventHandl
er
EventHandler
Event Handling
DirtyChangedEvent
Handler
DirtyChangedEventHandler
EventHandler<AFChange
dEventArgs>
Event Handling
AFAdjustment
CreationTime
returns AFTime
AFTime
AFAdjustments
Add(string, string,
AFAttribute, object, UOM)
Adjustments
AFAdjustments
Add(string, string,
AFAttribute, object)
MISSING
Adjustments
AFAdjustments
Clear(string, string
AFAttribute)
Clear(string, string)
Adjustments
AFAttribute
DataReference
returns AFDataReference
Plugins not
Interfaces
AFAttribute
Element
returns AFBaseElement
AFBaseElement
AFAttribute
SupportedContexts
Enum Renamed
AFAttribute
SupportedMethods
Enum Renamed
AFAttributes
AFAttributes
AFAttributeList
Use List
Collections
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFAttributes
Element
returns AFBaseElement
AFBaseElement
AFAttributeTemplate
DataReference
returns AFDataReference
Plugins not
Interfaces
AFAttributeTemplate
s
AFAttributeTemplates
AFNamedCollection<AFAt
tributeTemplate>
Use List
Collections
AFAttributeTemplate
s
Remove(string)
returns bool
Return added
AFAttributeTemplate
s
Remove(AFAttributeTemplat
e)
returns bool
Return added
AFCase
AddInput(AFAttribute, object,
UOM)
returns AFResult
Return added
AFCase
AddInput(AFAttribute,
AFValue)
returns AFResult
Return added
AFCase
AfterCollectElements
After(AFCaseAction)
Event Handling
AFCase
AfterCollectInputs
After(AFCaseAction)
Event Handling
AFCase
AfterCollectTransfers
After(AFCaseAction)
Event Handling
AFCase
AfterPublish
After(AFCaseAction)
Event Handling
AFCase
AfterRun
After(AFCaseAction)
Event Handling
AFCase
AfterValidate
After(AFCaseAction)
Event Handling
AFCase
BeforeCollectElements
Before(AFCaseAction)
Event Handling
AFCase
BeforeCollectInputs
Before(AFCaseAction)
Event Handling
AFCase
BeforeCollectTransfers
Before(AFCaseAction)
Event Handling
AFCase
BeforePublish
Before(AFCaseAction)
Event Handling
AFCase
BeforeRun
Before(AFCaseAction)
Event Handling
AFCase
BeforeValidate
Before(AFCaseAction)
Event Handling
AFCase
CheckInTime
MISSING
Old Versioning
Removed
AFCase
CheckOut
returns bool
Return added
AFCase
CheckOutInfo
CheckoutInfo
Class Change
AFCase
CollectElements
returns bool
Return added
AFCase
CollectElementsTime
returns AFTime
AFTime
AFCase
Collectinputs(object)
MISSING
Obsolete in 1.x
AFCase
CollectInputsTime
returns AFTime
AFTime
AFCase
CollectTransfers
returns bool
Return added
AFCase
CollectTransfersTime
returns AFTime
AFTime
AFCase
CreateVersion(System.DateT
ime, string)
MISSING
Old Versioning
Removed
AFCase
Elements
returns AFBaseElement
AFBaseElement
AFCase
EndTime
returns AFTime
AFTime
23
24
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFCase
GetConnectedElements(AFEl
ement,string)
GetConnectedElements(A
FBaseElement, string)
AFBaseElement
AFCase
GetConnectedElements(AFEl
ement, AFPortType)
GetConnectedElements(A
FBaseElement,
AFPortType)
AFBaseElement
AFCase
GetConnectedElements(AFEl
ement)
GetConnectedElements(A
FBaseElement)
AFBaseElement
AFCase
GetConnections(AFElement,
string)
GetConnections(AFBase
Element, string)
AFBaseElement
AFCase
GetConnections(AFElement,
AFPortType)
GetConnections(AFBase
Element, AFPortType)
AFBaseElement
AFCase
GetConnections(AFElement)
GetConnections(AFBase
Element)
AFBaseElement
AFCase
GetLayers(AFElement)
GetLayers(AFBaseEleme
nt)
AFBaseElement
AFCase
ModelVersionInfo
MISSING
Old Versioning
Removed
AFCase
PublishTime
returns AFTime
AFTime
AFCase
Reset(bool, AFAttribute)
Reset(AFAttribute)
Obsolete in 1.x
AFCase
Run(object)
Run()
Obsolete in 1.x
AFCase
RunTime
returns AFTime
AFTime
AFCase
StartTime
returns AFTime
AFTime
AFCase
Validate(object)
MISSING
Obsolete in 1.x
AFCase
VersionInfo
MISSING
Old Versioning
Removed
AFCaseLog
Recordset
MISSING
Recordset
Removed
AFCaseLog
WriteLine(AFLogSeverify,
AFElement, AFAttribute,
string)v
WriteLine(AFLogSeverity,
AFBaseElement,
AFAttribute, string)
AFBaseElement
AFCases
AFCases
AFNamedCollection<AFC
ase>
Use List
Collections
AFCases
Remove(string)
returns bool
Return added
AFCases
Remove(AFCase)
returns bool
Return added
AFCategories
Remove(string)
returns bool
Return added
AFCategories
Remove(AFCategory)
returns bool
Return added
AFCategory
CheckOut
returns bool
Return added
AFCategory
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFCategory
CreateVersion(System.DateT
ime, string)
MISSING
Old Versioning
Removed
AFCategory
PIUniqueID
MISSING
PIUniqueID
Removed
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFCategory
VersionInfo
MISSING
Old Versioning
Removed
AFConnection
Destination
returns AFBaseElement
AFBaseElement
AFConnection
Source
returns AFBaseElement
AFBaseElement
AFConnections
Remove(AFConnection)
returns bool
Return added
AFDatabase
Inserted
Changed
Event Handling
AFDatabase
Removed
Changed
Event Handling
AFDatabase
Renamed
Changed
Event Handling
AFDatabases
Remove(string)
returns bool
Return added
AFDatabases
Remove(AFDatabase)
returns bool
Return added
AFElement
CheckOut
returns bool
Return added
AFElement
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFElement
CreateVersion(System.DateT
ime, string)
Version.Create(object,
string)
Old Versioning
Removed
AFElement
ExtendedProperties
ExtendedPropert
ies
AFElement
PIUniqueID
MISSING
PIUniqueID
Removed
AFElement
VersionInfo
Version
Old Versioning
Removed
AFElements
AFElements
MISSING
Use List
Collections
AFElements
Remove(string)
Remove
Return added
AFElements
Remove(AFElement)
Remove
Return added
AFElements
Removed
Changed
Event Handling
AFElements
Renamed
Changed
Event Handling
AFElementTemplate
CheckOut
returns bool
Return added
AFElementTemplate
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFElementTemplate
CreateVersion(System.DateT
ime, string)
MISSING
Old Versioning
Removed
AFElementTemplate
DerivedTemplates
returns
AFNameCollection<AFEle
mentTemplate>
Return changed
AFElementTemplate
ExtendedProperties
ExtendedPropert
ies
AFElementTemplate
PIUniqueID
MISSING
PIUniqueID
Removed
AFElementTemplate
VersionInfo
MISSING
Old Versioning
Removed
25
26
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFElementTemplate
s
AFElementTemplates
MISSING
Use List
Collections
AFElementTemplate
s
Remove(string)
returns bool
Return added
AFElementTemplate
s
Remove(AFElementTemplate
)
returns bool
Return added
AFIdentity
Cases
MISSING
Use List
Collections
AFIdentity
ModelAnalyses
Analyses
Enum Renamed
AFIdentity
ModelAnalysis
Analysis
Enum Renamed
AFIdentity
ModelFramework
MISSING
Obsolete
AFIdentity
Models
MISSING
Use List
Collections
AFIdentity
Transfers
MISSING
Use List
Collections
AFLayers
Remove(string)
returns bool
Return added
AFLayers
Remove(AFLayer)
returns bool
Return added
AFLibrary
Created
returns AFTime
AFTime
AFModel
CheckOut
returns bool
Return added
AFModel
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFModel
CreateVersion(System.DateT
ime, string)
Version.Create(object,
string)
Old Versioning
Removed
AFModel
ExtendedProperties
ExtendedPropert
ies
AFModel
GetConnectedElements(AFEl
ement, string)
GetConnectedElements(A
FElement,string)
Return changed
AFModel
GetConnectedElement(AFEle
ment, AFPortType)
GetconnectedElements(A
FElement, AFPortType)
Return changed
AFModel
GetConnectedElements(AFEl
ement)
GetConnectedElement(A
FElement)
Return changed
AFModel
GetConnections(AFElement,
string)
GetConnections(AFEleme
nt, string)
Return changed
AFModel
GetConnections(AFElement,
AFPortType)
GetConnections(AFEleme
nt, AFPortType)
Return changed
AFModel
GetConnections(AFElement)
GetConnections(AFEleme
nt)
Return changed
AFModel
GetLayers(AFElement)
GetLayers(AFElement)
Return changed
AFModel
PIUniqueID
MISSING
PIUniqueID
Removed
AFModel
VersionInfo
Version
Old Versioning
Removed
AFModelAnalyses
Remove(string)
returns bool
Return added
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFModelAnalyses
Remove(AFModelAnalysis)
returns bool
Return added
AFModelAnalysis
AnalysisRule
returns AFAnalysisRule
Plugins not
Interfaces
AFModelAnalysis
Inserted
Changed
Event Handling
AFModelAnalysis
Removed
Changed
Event Handling
AFModelAnalysis
TimeRule
returns AFTimeRule
Plugins not
Interfaces
AFModelAnalysis
Validate(object)
MISSING
Obsolete in 1.x
AFModelFramework
GetObjectData(System.Runti
me.Serialization.SerializationI
nfo,
System.Runtime.Serialization
.StreamingContext)
MISSING
Internal
AFModelFramework
Identity
MISSING
Obsolete
AFModelFramework
InitializeResultsLog(object)
MISSING
Obsolete in 1.x
AFModelFramework
OnConnected(bool)
PISystem.ConnectChang
ed
Internal
AFModelFramework
Persist
MISSING
Obsolete
AFModelFramework
ServerVersion
MISSING
Obsolete
AFModelFramework
Version
MISSING
Obsolete
AFModels
AFModels
AFNamedCollection<AFM
odel>
Use List
Collections
AFModels
Remove(string)
returns bool
Return added
AFModels
Remove(AFModel)
returns bool
Return added
AFPlugIn
Database
MISSING
Not Valid,
Removed
OSIsoft.AF.UI.AFPlugInE
ditor
Moved to .UI
assembly
AFPlugInEditor
AFPlugIns
Database
MISSING
Not Valid,
Removed
AFPort
Model
Element
Not Valid,
Removed
AFPorts
Remove(string)
returns bool
Return added
AFPorts
Remove(AFPort)
returns bool
Return added
returns
AFDataReferenceContext
Enum Renamed
Analysis
Enum Renamed
returns
AFDataReferenceMethod
Enum Renamed
AFDataReference.ValueT
ypeEditor != null
Plugins not
Interfaces
AFReferenceContex
t
AFReferenceContex
t
ModelAnalysis
AFReferenceMetho
d
AFReferenceMetho
d
ValueEditor
27
28
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFReferenceMetho
d
ValueEx
MISSING
ValueEx
Removed
AFTable
CheckOut
returns bool
Return added
AFTable
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFTable
CreateVersion(System.DateT
ime, string)
Version.Create(object,
string)
Old Versioning
Removed
AFTable
DataAdapterLink
MISSING
DataAdapterLink
Removed
AFTable
GetExtendedProperty(string,
string)
returns object
ExtendedPropert
ies
AFTable
LinkExternal(object)
LinkExternal(System.Data
.IDbDataAdapter)
Recordset
Removed
AFTable
PIUniqueID
MISSING
PIUniqueID
Removed
AFTable
Recordset
MISSING
Recordset
Removed
AFTable
SetExtendedProperty(string,
string, string)
SetExtendedProperty(stri
ng,string,object)
ExtendedPropert
ies
AFTable
VersionInfo
Version
Old Versioning
Removed
AFTables
Remove(string)
returns bool
Return added
AFTables
Remove(AFTable)
returns bool
Return added
AFTimeRange
AFTimeRange(System.DateT
ime, System.DateTime)
AFTimeRange(AFTime,A
FTime)
AFTime
AFTimeRange
EndTime
returns AFTime
AFTime
AFTimeRange
StartTime
returns AFTime
AFTime
AFTransfer
CheckOut
returns bool
Return added
AFTransfer
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
AFTransfer
CreateVersion(System.DateT
ime, string)
MISSING
Old Versioning
Removed
AFTransfer
Destination
returns AFBaseElement
AFBaseElement
AFTransfer
Elements
MISSING
AFBaseElement
AFTransfer
EndTime
returns AFTime
AFTime
AFTransfer
ExtendedProperties
ExtendedPropert
ies
AFTransfer
Parent
MISSING
AFBaseElement
AFTransfer
PIUniqueID
MISSING
PIUniqueID
Removed
AFTransfer
Source
returns AFBaseElement
AFBaseElement
AFTransfer
StartTime
returns AFTime
AFTime
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
AFTransfer
VersionInfo
MISSING
Old Versioning
Removed
AFTransfers
AFTransfers
AFNamedCollection<AFTr
ansfer>
Use List
Collections
AFTransfers
Remove(string)
returns bool
Return added
AFTransfers
Remove(AFTransfer)
returns bool
Return added
AFValue
AFValue(object,System.Date
Time)
AFValue(object, AFTime)
AFTime
AFValue
AFValue(object,
System.DateTime, bool,
object)
AFValue(different
params)
ValueEx
Removed
AFValue
TimeStamp
returns AFTime
AFTime
AFValue
ValueEx
MISSING
ValueEx
Removed
AFValues
Sort(System.Collections.Icom
parer)
Sort(System.Collections.
Generic.IComparer<AFVa
lue> comparer)
.NET Collections
AFValues
Sort(int, int,
System.Collections.Icompare
r)
.NET Collections
AFAnalysisRule
Plugins not
Interfaces
IAFAnalysisRule
IAFAnalysisRule
CollectInputs(AFCase,
AFCaseLog)
CollectInputs()
Plugins not
Interfaces
IAFAnalysisRule
ConfigChanged
SaveConfigChanges
Plugins not
Interfaces
IAFAnalysisRule
ModelAnalysis
Analysis
Plugins not
Interfaces
IAFAnalysisRule
Run(AFCase, AFCaseLog)
Run()
Plugins not
Interfaces
IAFAnalysisRule
ValidateInputs(AFCase,
AFCaseLog)
MISSING
Validate
combined with
Run
IAFAnalysisRule
ValidateModelAnalysis(AFCa
seLog)
MISSING
Validate
combined with
Run
AFDataReference
Plugins not
Interfaces
IAFDataReference
IAFDataReference
ConfigChanged
SaveConfigChanges
Plugins not
Interfaces
IAFDataReference
GetValue(object, object)
GetValue(object, object,
OSIsoft.AF.Asset.AFAttrib
uteList,
OSIsoft.AF.Asset.AFValu
es)
Plugins not
Interfaces
29
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
IAFDataReference
GetValues(object,
AFTimeRange)
GetValues(object,
OSIsoft.AF.Time.AFTime
Range, int,
OSIsoft.AF.Asset.AFAttrib
uteList,OSIsoft.AF.Asset.
AFValues[])
Plugins not
Interfaces
IAFDataReference
RemoveConfig
MISSING
Plugins not
Interfaces
IAFDataReference
SupportedContexts
returns
AFDataReferenceSupport
edContext
Enum Renamed
IAFDataReference
SupportedMethods
returns
AFDataReferenceSupport
edMethods
Enum Renamed
MISSING
Plugins not
Interfaces
AFDataReference.ValueT
ypeEditor
Plugins not
Interfaces
MISSING
Plugins not
Interfaces
AFDataReference.GetVal
ues(object,AFTimeRange,
int,AFAttributeList,AFValu
es[])
Plugins not
Interfaces
MISSING
Plugins not
Interfaces
IAFDataReferenceV
alueEditor
IAFDataReferenceV
alueEditor
ValueEditorType
IAFDataReferenceV
alues
IAFDataReferenceV
alues
GetValues(object,
AFTimeRange, int)
IAFDataReferenceZ
eroAndSpan
IAFDataReferenceZ
eroAndSpan
RawPIPoint
AFAttribute.RawPIPoint
Plugins not
Interfaces
IAFDataReferenceZ
eroAndSpan
Span
AFDataReference.Span
Plugins not
Interfaces
IAFDataReferenceZ
eroAndSpan
Step
AFDataReference.Step
Plugins not
Interfaces
IAFDataReferenceZ
eroAndSpan
Zero
AFDataReference.Zero
Plugins not
Interfaces
MISSING
Internal
various Identity
Replaced with
AFIdentity
AFTimeRule
Plugins not
Interfaces
IAFIdentity
IAFIdentity
Identity
IAFTimeRule
30
IAFTimeRule
ModelAnalysis
Analysis
Plugins not
Interfaces
IAFTimeRule
ConfigChanged
SaveConfigChanges
Plugins not
Interfaces
IAFTimeRule
GetNextStartTime(System.D
ateTime)
GetNextEvent
Plugins not
Interfaces
AF 1.0 Class
AF 1.0 Methods/Properties
AF 2.x Difference
Reason
IAFTimeRule
GetTimeRange(System.Date
Time, System.DateTime,
System.DateTime,
System.DateTime)
GentNextEvent
Plugins not
Interfaces
UOMClasses
Remove(string)
returns bool
Return added
UOMClasses
Remove(UOMClass)
returns bool
Return added
UOMDatabase
CheckOut
returns bool
Return added
UOMDatabase
CheckOutInfo
returns AFCheckOutInfo
CheckoutInfo
Class Change
UOMDatabase
CreateVersion(System.DateT
ime, string)
MISSING
Old Versioning
Removed
UOMDatabase
Dispose
MISSING
No longer a
disposable
object.
UOMDatabase
FindObject(string)
AFObject.FindObject(strin
g)
Internal
UOMDatabase
OnConnected(bool)
PISystem.ConnectChang
ed
Event Handling
UOMDatabase
UOMDatabase(PISystem)
MISSING
No longer
creatable
UOMDatabase
UOMDatabase(string)
MISSING
No longer
creatable
UOMDatabase
UOMDatabase
MISSING
No longer
creatable
UOMDatabase
UOMDatabase(object)
MISSING
No longer
creatable
UOMDatabase
VersionInfo
MISSING
Old Versioning
Removed
UOMs
Remove(UOM)
returns bool
Return added
UOMs
Remove(string)
returns bool
Return added
Description
AFBaseElement
Event Handling
Event model has changed. In the unlikely event application is using old
event model, must upgrade
31
32
Name
Description
IsDirty Removed
Search Removed
PIUniqueID Removed
DataAdapterLink
Removed
AF had methods for versioning that were never implemented. Could not
have been used successfully.
Recordset Removed
CheckOutInfo Class
Change
ValueEx Removed
The ValueEx property of a value was not used and was expensive.
Removing.
ExtendedProperties
.NET Collections
AFTime
Typed
Return Added
Internal
Adjustments
Enum Renamed
The enum has been renamed and will have to be updated by the user.
Collections were changed to typed lists and will have to updated by the
user.
Obsolete Provided
Obsolete in 1.x
Port.Max Connections
Table.DataAdapterLink
Name
Description
In AF 1.0, objects are not checked out immediately after they are created.
In AF 2.x, they are.
MaxTransferDuration
AFAttribute
AFAttribute
AFAttribute
AFAttribute
AFAttribute
AFCase
AFCase
Adjustments
AFCase
CollectInputs(AFCaseLog)
AFCase
ModelAnalysis
AFCase
AFCase
Run(AFCaseLog)
AFCase
Transfers
AFCase
Unload
AFCase
Validate(AFCaseLog)
AFCase
ValidateTime
AFCaseLog
AFDatabase
AnalysisRules
AFDatabase
DataReferences
AFDatabase
ExportXML(object, PIExportMode)
AFDatabase
AFDatabase
AFDatabase
AFDatabase
IsWriteable
AFDatabase
Models
33
34
AF 1.0 Class
AFDatabase
TimeRules
AFDatabase
UOMClasses
AFDatabase
UOMs
AFElement
Models
AFElementTemplate
Elements
AFModel
GetDefaultPort
AFModel
ModelAnalyses
AFModel
Models
AFModelAnalysis
Validate(AFCaseLog)
AFPlugIn
CreateInstance(object)
AFPort
IsDefault
AFTransfer
GetDefaultPort
AFTransfer
IsValidDestination(AFElement, AFPort,string)
AFTransfer
AFTransfer
Models
AFTransfer
SetDestination(AFElement, AFPort)
AFTransfer
SetSource(AFElement, AFPort)
AFTransfer
Unload
AFValue
FromPIValue(bool, object)
PISystems
InitializeRemotingConfiguration(string)
PISystems
IsRemotingInitialized
PISystem
TimeZone
PISystem
Version
PISystems
UnloadAll
PISystems
VariantTimeToDateTime
UOMDatabase
IsWriteable
UOMDatabase
Name
UOMDatabase
ServerVersion
UOMDatabase
Version
Appendix B
Access Number
English
English
English
English, French
55 11 3053 5040
English, Portuguese
Frankfurt, Germany
English, German
Manama, Bahrain
English, Arabic
Singapore
65 6391 1811
86 021 2327 8686
English, Mandarin
Mandarin
61 8 9282 9220
English
35
Support may be provided in languages other than English in certain centers (listed above)
based on availability of attendants. If you select a local language option, we will make best
efforts to connect you with an available Technical Support Engineer (TSE) with that language
skill. If no local language TSE is available to assist you, you will be routed to the first
available attendant.
If all available TSEs are busy assisting other customers when you call, you will be prompted
to remain on the line to wait for the next available TSE or else leave a voicemail message. If
you choose to leave a message, you will not lose your place in the queue. Your voicemail will
be treated as a regular phone call and will be directed to the first TSE who becomes available.
If you are calling about an ongoing case, be sure to reference your case number when you call
so we can connect you to the engineer currently assigned to your case. If that engineer is not
available, another engineer will attempt to assist you.
Search Support
From the OSIsoft Technical Support Web site, click Search Support.
Quickly and easily search the OSIsoft Technical Support Web site's support solutions,
documentation, and support bulletins using the advanced MS SharePoint search engine.
Log files: See the product documentation for information on obtaining logs pertinent to
the situation.
36
Enter a new call directly into OSIsoft's database (monitored 24 hours a day)
See your licensed software and dates of your Service Reliance Program agreements
Remote Access
From the OSIsoft Technical Support Web site, click Contact Us > Remote Support
Options.
OSIsoft Support Engineers may remotely access your server in order to provide hands-on
troubleshooting and assistance. See the Remote Support Options page for details on the
various methods you can use.
On-Site Service
From the OSIsoft Technical Support Web site, click Contact Us > On-site Field Service
Visit.
OSIsoft provides on-site service for a fee. Visit our On-site Field Service Visit page for more
information.
Knowledge Center
From the OSIsoft Technical Support Web site, click Knowledge Center.
The Knowledge Center provides a searchable library of documentation and technical data, as
well as a special collection of resources for system managers. For these options, click
Knowledge Center on the Technical Support Web site.
The Search Support feature allows you to search Support Solutions, Bulletins, Support
Pages, Known Issues, Enhancements, and Documentation (including user manuals,
release notes, and white papers).
System Manager Resources include tools and instructions that help you manage archive
sizing, backup scripts, daily health checks, daylight saving time configuration, PI Server
security, PI System sizing and configuration, PI trusts for interface nodes, and more.
Upgrades
From the OSIsoft Technical Support Web site, click Contact Us > Obtaining Upgrades.
You are eligible to download or order any available version of a product for which you have
an active Service Reliance Program (SRP), formerly known as Tech Support Agreement
(TSA). To verify or change your SRP status, contact your Sales Representative or Technical
Support (http://techsupport.osisoft.com/) for assistance.
37
38