Sie sind auf Seite 1von 38

PI AF 1.x to 2.

x Database Upgrade Guide


July, 2012

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

PI AF 1.x to 2.x Database Upgrade Guide


Copyright: 2004-2012 OSIsoft, LLC. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical,
photocopying, recording, or otherwise, without the prior written permission of OSIsoft, LLC.
OSIsoft, the OSIsoft logo and logotype, PI Analytics, PI ProcessBook, PI DataLink, ProcessPoint, PI Asset Framework (PI AF), IT
Monitor, MCN Health Monitor, PI System, PI ActiveView, PI ACE, PI AlarmView, PI BatchView, PI Coresight, PI Data Services, PI Event
Frames, PI Manual Logger, PI ProfileView, PI WebParts, ProTRAQ, RLINK, RtAnalytics, RtBaseline, RtPortal, RtPM, RtReports and
RtWebParts are all trademarks of OSIsoft, LLC. All other trademarks or trade names used herein are the property of their respective
owners.
U.S. GOVERNMENT RIGHTS
Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the OSIsoft, LLC license agreement and as
provided in DFARS 227.7202, DFARS 252.227-7013, FAR 12.212, FAR 52.227, as applicable. OSIsoft, LLC.
Version: 1.x
Published: 14 June 2012

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

PI AF 1.x to 2.x Database Upgrade Guide

iii

Chapter 1

Introduction and Guidelines


When you upgrade from AF 1.x to AF 2.x you must upgrade your databases and then enable
existing client programs to be redirected to the new data. Consider the following guidelines.

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)."

PI AF 1.x to 2.x Database Upgrade Guide

Chapter 2

Running the Utility


The upgrade takes place in three steps:
1. The utility exports the AF 1.x database information to one or more XML files, which are
left on your computer. The files are located in this folder:
\documents and settings\all users\application
data\osisoft\AFUpgrade

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.

PI AF 1.x to 2.x Database Upgrade Guide

Running the Utility

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.

Fill in the fields, described below, and then click OK.

Enter any name you prefer in the Name field and enter the host/server in the Host
field.

Installing / Uninstalling the Compatibility Layer

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.

PI AF 1.x to 2.x Database Upgrade Guide

Running the Utility

6. Click Exit to close the utility.

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.

Installing / Uninstalling the Compatibility Layer


The AF Compatibility Layer installation places the following files on the user's computer:
Installed Files
AF Compatibility Layer .Net Assemblies

Corresponding Policy Files

OSIsoft.PI.Modeling.dll, Version 1.5

policy.1.0.OSIsoft.PI.Modeling.dll

OSIsoft.PI.System.dll, Version 1.5

policy.1.0.OSIsoft.PI.System.dll

OSIsoft.UnitsOfMeasure.dll, Version 1.5

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.

PI AF 1.x to 2.x Database Upgrade Guide

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.

Using the AF Compatibility Layer


The AF Compatibility Layer is useful in these two principle cases:

PI Analysis Framework 1.x Applications - The AF Compatibility Layer is automatically


used when an application built with a previously released PI Analysis Framework 1.x
version runs. This allows these applications to continue to run with no code changes or
recompilation.

AF 1.x Applications combined with new AF 2.x Functionality. - To preserve the


functionality in PI Analysis Framework 1.x without major code changes, while
simultaneously taking advantage of new functionality provided by AF 2.x, remove
existing references to PI Analysis Framework 1.x and add references to the AF
Compatibility Layer .Net assemblies listed above in your Visual Studio project. In
addition, you need to add a reference to the AF 2.x OSIsoft.AF.AFSDK assembly. When
the assemblies are included in the project, the existing PI Analysis Framework 1.x code
will continue to function without major code changes. To take advantage of new AF 2.x
functionality, assignment of the old object to a new AF 2.x object allows access to the
new AF 2.x properties and methods.

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.

Known Changes in Functionality


The object model has changed between PI Analysis Framework 1.x and AF 2.x causing some
changes in functionality between the two versions. The AF Compatibility Layer minimizes
the impact of these changes by providing a look and feel in AF 2.x that is similar to that of PI
Analysis Framework 1.x. However, some changes will be noticeable and these are listed
below.
Note: For a detailed listing of all changes between PI Analysis Framework 1.x and AF
2.x, see Appendix A (page 21).

12

Bypassing the AF Compatibility Layer

AFDatabase.Refresh - In PI Analysis Framework 1.x, the AFDatabase.Refresh method


is a destructive call and clears all objects from memory. With the AF Compatibility
Layer, the AFDatabase.Refresh call will cause all collections and objects in the
Database to refresh.

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.

AFElementTemplate / Default Ports - In PI Analysis Framework 1.x, you must explicitly


call CreateDefaultPorts on an ElementTemplate. In AF 2.x, the CreateDefaultPorts
method is automatically called when you set the AFElement.Template.Type property.

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.

Bypassing the AF Compatibility Layer


There may be some situations in which you do not want to use the AF Compatibility Layer
for a specified application. In this event, you can use an application configuration file to
bypass the AF Compatibility Layer's policy files. An example configuration file, named
ExampleConfigToBypassCompatibility.exe.config is placed in the
PIPC\AF directory when the compatibility layer is installed. You can copy this file to your
application's configuration file, or run the Microsoft .Net Framework 2.x configuration utility.
To bypass the AF Compatibility Layer for a specified application, follow these steps.
1. Open the Administration Tools in the Control Panel and click Microsoft .NET
Framework 2.0 Configuration.

PI AF 1.x to 2.x Database Upgrade Guide

13

Compatibility Layer

2. Click Manage Individual Applications.


3. Click Add an Application to Configure.
4. If the application does not appear in the Configure an Application dialog box, click
Other, browse to the appropriate application, and click Open. Then, click Managed
Configured Assemblies and then, Configure an Assembly.
5. Select the Choose an Assembly from the Assembly Cache option and then click
Choose Assembly.
6. In the assembly list, select the OSIsoft.PI.Modeling version 1.0.0.0 assembly and click
Select. Then, click Finish. When the OSIsoft.PI.Modeling Properties dialog box
appears, clear the Enable Publisher Policy check box. Note that this check box is
selected by default. Then click OK to complete this task.
Repeat this procedure for the following assemblies:

OSIsoft.PI.System.dll Version 1.0.0.0

OSIsoft.UnitsOfMeasure.dll Version 1.0.0.0

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

Bypassing the AF Compatibility Layer

</configuration>

PI AF 1.x to 2.x Database Upgrade Guide

15

Chapter 4

Upgrading Custom AFSDK Programs


Existing AF 1.x programs can use the Compatibility Layer to enable access to AF 2.x servers,
with, or without, being recompiled. However, to access new features of the AFSDK, it is
recommended that you upgrade these programs to the AFSDK 2.x. To upgrade a program to
AFSDK 2.x, you must do the following:
1. Remove references to the Assemblies OSIsoft.PI.System, OSIsoft.PI.Modeling, and
OSIsoft.PI.UnitsOfMeasure.
2. Add a reference to the Assemby OSIsoft.AFSDK.
3. Replace the namespaces OSIsoft.PI, OSIsoft.PI.Modeling,
OSIsoft.PI.UnitsOfMeasure, with the namespaces OSIsoft.AF, OSIsoft.AF.Modeling,
OSIsoft.AF.UnitsOfMeasure, respectively. It may also be necessary to add references to
OSIsoft.AF.Analysis, OSIsoft.AF.Asset, OSIsoft.AF.EventFrame, and
OSIsoft.AF.Time.
Reference a namespace either at the top of a file using the C# using statement or the
VB.NET Imports statement:
C#:

using OSIsoft.AF.Modeling;

VB.NET:

Imports OSIsoft.AF.Modeling

Less typically, a namespace can also be fully referenced in code:


C#:

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

AFElement myElement; // this is an AF 1.x object

OSIsoft.AF.Asset.AFElement myElement20 = myElement; //


automatic cast to AFSDK 2.x object
myElement20.ApplyQueryDate(*-30d); // access new AFSDK 2.x
feature

PI AF 1.x to 2.x Database Upgrade Guide

17

Upgrading Custom AFSDK Programs

18

Chapter 5

AFControls Upgrade for Custom Applications


Applications that use the 1.x ActiveX AFControls will continue to work under the
Compatibility Layer. AFSDK 2.x uses only .NET controls, which by their nature are not fully
compatible with the ActiveX controls. Most 1.x ActiveX controls have a corresponding .NET
control in the OSIsoft.AFSDK.UI Assembly; however, these controls are not intended for
custom applications at this time.

PI AF 1.x to 2.x Database Upgrade Guide

19

Appendix A

AF 1.x and AF 2.x Differences


This appendix describes the changes in properties and methods between AF 1.x and AF 2.x.

Table 1 - AFSDK Changes


Note: For details about the reason for changes (Column 4), see Table 2 (page 31).
All Objects
AF 1.0 Class

AF 1.0 Methods/Properties

AF 2.x Difference

Reason

PISystems

Add(string, string, string,


bool)

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

Interfaces not
used

IPISubSystem

PI AF 1.x to 2.x Database Upgrade Guide

21

AF 1.x and AF 2.x Differences

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)

Add(string, String, 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

return type renamed

Enum Renamed

AFAttribute

SupportedMethods

return type renamed

Enum Renamed

AFAttributes

AFAttributes

AFAttributeList

Use List
Collections

Table 1 - AFSDK Changes

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

return class renamed

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

PI AF 1.x to 2.x Database Upgrade Guide

23

AF 1.x and AF 2.x Differences

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

Table 1 - AFSDK Changes

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

returns typed collection

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

returns typed collection

ExtendedPropert
ies

AFElementTemplate

PIUniqueID

MISSING

PIUniqueID
Removed

AFElementTemplate

VersionInfo

MISSING

Old Versioning
Removed

PI AF 1.x to 2.x Database Upgrade Guide

25

AF 1.x and AF 2.x Differences

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

returns typed collection

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

Table 1 - AFSDK Changes

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

PI AF 1.x to 2.x Database Upgrade Guide

27

AF 1.x and AF 2.x Differences

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

returns typed collection

ExtendedPropert
ies

AFTransfer

Parent

MISSING

AFBaseElement

AFTransfer

PIUniqueID

MISSING

PIUniqueID
Removed

AFTransfer

Source

returns AFBaseElement

AFBaseElement

AFTransfer

StartTime

returns AFTime

AFTime

Table 1 - AFSDK Changes

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)

Sort(int index, int count,


System.Collections.Gener
ic.IComparer<AFValue>

.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

PI AF 1.x to 2.x Database Upgrade Guide

29

AF 1.x and AF 2.x Differences

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

Table 2 - Change Reason Descriptions

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

Table 2 - Change Reason Descriptions


Note: Changes listed in Column 4 of Table 1 (page 21) are described in Table 2.
Table 2 Changes Described
Name

Description

AFBaseElement

AFElement hierarchy change. Some methods now return


AFBaseElement instead. Many uses will recompile without error.

Event Handling

Event model has changed. In the unlikely event application is using old
event model, must upgrade

PI AF 1.x to 2.x Database Upgrade Guide

31

AF 1.x and AF 2.x Differences

32

Name

Description

IsDirty Removed

IsDirty flag removed on many sub-objects because of expense of


calculating. Don't expect any customer apps are using

Search Removed

Standard collection "Search" method removed. Was likely unused


because of its severe limitations

PIUniqueID Removed

Was UniqueID of Module. Not used because SQL converstion returned


Guid.Empty

DataAdapterLink
Removed

AFTable supported .NET remoting the DataAdapterLink used on the


server. No longer valid because of lack of .NET Remoting.

Old Versioning Removed

AF had methods for versioning that were never implemented. Could not
have been used successfully.

Recordset Removed

Access to Tables via COM ADO Recordsets has been removed

Plugins not Interfaces

Plugins are no longer defined by an interface, but a base class


(IAFTimeRule becomes AFTimeRule, etc), depending on the use, may
compile OK

CheckOutInfo Class
Change

The PICheckOutInfo class is now AFCheckOutInfo. Most likely not


directly referenced by a customer app.

Not Valid, Removed

The property or method was never implemented, and is removed

ValueEx Removed

The ValueEx property of a value was not used and was expensive.
Removing.

ExtendedProperties

Extended Properties type changed to IDictionary<string, object>. Most


uses as IDictionary are OK. Unlikely that any customer applications are
using this.

.NET Collections

Enumerators, CopyTo methods are now typed. Should recompile without


error.

AFTime

Time is referenced as AFTime instead of DateTime. Implicit conversion


operators in AFTime make recompile work

Typed

Change is to provide specific type in parameter of method. Should


recompile without error.

Return Added

Method changed to return a value. Will recompile without error.

Interfaces Not Used

Interfaces were not generally used by customers and were largely


undocumented.

Internal

Some classes, methods, or properties were internal, but required to be


public for our own use. Users will not see.

Adjustments

Adjustments are under a result instead of all under a case.

Enum Renamed

The enum has been renamed and will have to be updated by the user.

Use List Collections

Collections were changed to typed lists and will have to updated by the
user.

Obsolete Provided

Property or method is still available, but has been obsoleted.

Obsolete in 1.x

Property or method was obsoleted in 1.x and is no longer available.

Port.Max Connections

In AF 1.0, a value of 0 for a port's MaxConnections property indicates that


there is no limit to the number of connections. To allow unlimited
connections in AF 2.x, set the value for this property to Int.MaxValue.

Table.DataAdapterLink

This property is not supported in AF 2.x.

Table 3 - Obsoleted Classes, Properties, and Methods

Name

Description

PI System Dialog Box

It is no longer possible to add a new PI System through the Select


Database dialog box since the AF System is no longer tied to PI Servers.
To add a new PI System in AF 2.x, the user must use the AF 2.x PI
System Explorer.

Check Out Information

In AF 1.0, objects are not checked out immediately after they are created.
In AF 2.x, they are.

MaxTransferDuration

This property is not supported in AF 2.x.

Table 3 - Obsoleted Classes, Properties, and Methods


Table 3 Obsoleted Objects
AF 1.0 Class

AF 1.0 Methods and Properties

AFAttribute

GetValue(object, object, UOM)

AFAttribute

GetValues(object, AFTimeRange, UOM)

AFAttribute

GetValues(object, AFTimeRange, int, UOM)

AFAttribute

SetValue(object, object, UOM)

AFAttribute

SetValue(object, AFValue, UOM)

AFCase

AddInput(AFAttribute, AFValue, UOM)

AFCase

Adjustments

AFCase

CollectInputs(AFCaseLog)

AFCase

ModelAnalysis

AFCase

Reset(bool, bool, AFAttribute)

AFCase

Run(AFCaseLog)

AFCase

Transfers

AFCase

Unload

AFCase

Validate(AFCaseLog)

AFCase

ValidateTime

AFCaseLog
AFDatabase

AnalysisRules

AFDatabase

DataReferences

AFDatabase

ExportXML(object, PIExportMode)

AFDatabase

GetTransfers(object, int, bool)

AFDatabase

GetTransfers(AFSearchMode, object, object, string, string,


double)

AFDatabase

ImportXML(object, PIImportmode, string)

AFDatabase

IsWriteable

AFDatabase

Models

PI AF 1.x to 2.x Database Upgrade Guide

33

AF 1.x and AF 2.x Differences

34

AF 1.0 Class

AF 1.0 Methods and Properties

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

IsValidSource(AFElement, AFPort, string)

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

Technical Support and Resources


You can read complete information about technical support options, and access all of the
following resources at the OSIsoft Technical Support Web site:
http://techsupport.osisoft.com
For information on programming and integration with OSIsoft products see the OSIsoft
vCampus Web site, or the OSIsoft vCampus section at the end of this document.

Before You Call or Write for Help


When you contact OSIsoft Technical Support, please provide:

Product name, version, and/or build numbers

Computer platform (CPU type, operating system, and version number)

The time that the difficulty started

The log files at that time

Help Desk and Telephone Support


You can contact OSIsoft Technical Support 24 hours a day. Use the numbers in the table
below to find the most appropriate number for your area. Dialing any of these numbers will
route your call into our global support queue to be answered by engineers stationed around
the world.
Office Location

Access Number

Local Language Options

San Leandro, CA, USA

1 510 297 5828

English

Philadelphia, PA, USA

1 215 606 0705

English

Johnson City, TN, USA

1 423 610 3800

English

Montreal, QC, Canada

1 514 493 0663

English, French

Sao Paulo, Brazil

55 11 3053 5040

English, Portuguese

Frankfurt, Germany

69 951 555 333

English, German

Manama, Bahrain

973 1758 4429

English, Arabic

Singapore

65 6391 1811
86 021 2327 8686

English, Mandarin
Mandarin

Perth, WA, Australia

61 8 9282 9220

English

PI AF 1.x to 2.x Database Upgrade Guide

35

Technical Support and Resources

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.

E-MailBased Technical Support


techsupport@osisoft.com
When contacting OSIsoft Technical Support by e-mail, it is helpful to send the following
information:

Description of issue: Short description of issue, symptoms, informational or error


messages, history of issue.

Log files: See the product documentation for information on obtaining logs pertinent to
the situation.

Online Technical Support


From the OSIsoft Technical Support Web site, click My Support > My Calls.
Using OSIsoft's Online Technical Support, you can:

36

Enter a new call directly into OSIsoft's database (monitored 24 hours a day)

View or edit existing OSIsoft calls that you entered

View any of the calls entered by your organization or site, if enabled

See your licensed software and dates of your Service Reliance Program agreements

Table 3 - Obsoleted Classes, Properties, and Methods

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.

OSIsoft Virtual Campus (vCampus)


The OSIsoft Virtual Campus (vCampus) Web site offers a community-oriented program that
focuses on PI System development and integration. The Web site's annual online
subscriptions provide customers with software downloads, resources that include a personal
development PI System, online library, technical webinars, online training, and communityoriented features such as blogs and discussion forums.

PI AF 1.x to 2.x Database Upgrade Guide

37

Technical Support and Resources

OSIsoft vCampus is intended to facilitate and encourage communication around PI


programming and integration between OSIsoft partners, customers and employees. See the
OSIsoft vCampus Web site, http://vCampus.osisoft.com (http://vCampus.osisoft.com) or
contact the OSIsoft vCampus team at vCampus@osisoft.com for more information.

38

Das könnte Ihnen auch gefallen