Changes to the class Baseline 2.5
In the Web Services 2.5 (introduced in release 3.8.0) the Baseline functionality is completely redesigned from BLOBs to database tables. Baseline 2.0 and Baseline 2.5 are not fully backwards compatible, the changes are described here. The largest modification is situated in the Baseline (Report) XML structure. In order to comply with the new API 2.5 standard which forces a strict API by schema validation, the xml namespaces which were present in Basline 2.0 was removed.
Changes in behavior
- Input parameters
-
- All methods (except the
Createfunctions) expect the element name of the baseline card (= psBaselineId). It is no longer possible to supply the label of the baseline (= psBaseline/psBaselineName). Use GetBaselineId to convert the label of the baseline. - The parameter
psStartBaselineis removed from all methods. The start baseline is no longer used…
- All methods (except the
- Output parameters
-
All output parameters which require extra processing and are not part of the call, are no longer returned.
- The parameter
psOutXMLBaselinewith the created or updated Baseline XML is removed from theCreateandUpdatemethods. Starting fromWeb Services 2.5this requires an extra call. The Baseline code doesn't know if the extra information is needed. So, if the calling method really needs an updated Baseline XML, it should do the extra call.
- The parameter
Changes to methods
- Baseline Report methods
-
There are some changes concerning the methods to get or complete a Baseline Report:
- New methods which groups 2 old functions
- Some methods are renamed
The following table gives an overview of all methods to get or complete a Baseline Report.FunctionName Previous FunctionName Description GetBaseline GetBaseline This method generates the Baseline XML ExpandBaseline GetBaselineReport This method expands the specified logical objects in the Baseline ExpandReport ExpandBaselineReport This method expands the specified logical objects in the given Baseline Report GetReport GetBaseline + ExpandBaselineReport This method expands all objects in the specified Baseline CompleteBaselineByMode GetBaseline + CompleteBaselineReport This method expands and autocompletes the objects in the specified Baseline CompleteReportByMode CompleteBaselineReport This method expands and autocompletes the objects in the given Baseline Report CompleteReportByBaseline CompleteBaselineReportByBaseline This method extends the given Baseline Report with the specified Baseline CompleteReportByCandidate CompleteBaselineReportByBaseline This method extends the given Baseline Report with the specified Baseline using the candidate field on the version objects - Update baseline
-
The metadata can only be updated by the
SetMetadatamethod. It is no longer possible to update the metadata of the Baseline using theUpdatemethod. - Freeze baseline
-
Starting from
Web Services 2.5the freeze will only throw an error when an unexpected exception occurs.Before freezing the baseline, some checks are executed, for example 'Are all objects released?'. When one or more checks fail, they are reported in the
Baseline Freeze Report XMLbut no error is thrown. An extra parameterpbOutIsFrozenindicates whether the freeze was executed succesfully or not. So, it is not necessary to load theBaseline Freeze Report XMLwhen the parameter is true.
Changes in XML Signatures
- Baseline (Report) XML structure
-
The Baseline XML is no longer saved in the database as a BLOB. The information of the version selection (LogicalId, VersionNumber, Author, CreationDate and ModificationDate) is extracted during the upgrade to release 3.8.0 from the Baseline XML and saved in a separate table. This allows specific queries which should improve the performance.
However, some of the information which was also part of the Baseline XML is no longer saved in the table and requires extra queries which are not executed by the Baseline functions.
The previous Baseline XML structure could not be validated by a schema, because there was a loop in the namespaces. In order to fix this, we did a straightforward change: all namespaces and their prefices are removed.
The conversion table used is:Current value New value bl:baseline baseline ish:objects objects ish:object object ish:ref ref mgmt:created created bl:versionnumber versionnumber mgmt:lngref lngref The following table gives an overview of all changes and the reason for the changes:Modification Reason The namespaces are removed This allows the validition of the XML with a schema. The label of the objects is no longer returned In Web Services 2.0the label was saved with the Baseline XML. Since this information is not present in the table, the label of the baseline is no longer returned.No attribute datarefon the elementsreportitemsin the BaselineReport XMLThe extra attribute datarefrequires an extra select. Since, the attribute was added inWeb Services 2.0for the future implementation of the elevator story, the attribute is no longer returned. Workaround via DocumentObj.RetrieveDataObjectByIShLngRefsNo extra elements with the publications on a frozen Baseline XML In Web Services 2.0the publications were saved when freezing the Baseline. Since this information is not present in the table and requires an extra select, the elements are no longer returned. Workaround via PublicationOutput.ContainingNo extra attribute versionrefon a frozen Baseline XMLIn Web Services 2.0this information was saved in the frozen Baseline XML. However, this information is not present in the table. Since the requires an extra select AND was only available for a frozen/released Baseline XML, this information will no longer be appended.No extra objectfragmentelements on the bottom of the BaselineReport XMLThese extra elements require a lot of extra processing. In Web Services 2.0theseobjectfragmentelements are only used when freezing a Baseline.The metadata of the Baseline is removed from the root node In Web Services 2.0some metadata of the baseline (e.g released, modified, created) was saved in the Baseline XML. Workaround via Baseline.GetMetadataThe fields FIshVariableAssignments, FIshVariablesInUse, FishTargets, FishFragmentLinks are no longer returned In most cases these fields are retrieved without anyone using it. In Publication Manager and PublishService these fields are not used, because the conditions are ignored. - Baseline Modifications XML
-
The following table gives an overview of all changes and the reason for the changes:
Modification Reason The namespaces are removed This allows the validition of the XML with a schema. The label of the objects is removed In Web Services 2.0the label was saved with the Baseline XML. Since this information is no longer saved in the table, the label is removed from the Baseline Modifications XML. - Baseline Freeze Report XML
-
In
Web Services 2.0the Baseline Freeze Report was an extended Baseline Report XML.Starting from
Web Services 2.5the Baseline Freeze Report contains aLogObjectper publication that references the Baseline.