State: MetabaseUpdateObjectApplyState;
The State property determines a state of readiness of an object for update.
Executing the example requires the Update.pef update file in the root of the disc C.
Sub Main;
Var
MB: IMetabase;
MU: IMetabaseUpdate;
Root: IMetabaseUpdateFolderNode;
Node: IMetabaseUpdateNode;
i: Integer;
Begin
MB := MetabaseClass.Active;
MU := MB.CreateUpdate;
MU.LoadFromFile("c:\Update.pef");
MU.Prepare;
Root := MU.RootFolder;
For i := 0 To Root.Count - 1 Do
Node := Root.Item(i);
If Node.NodeType = MetabaseUpdateNodeType.Object Then
ObjectNode := Node As IMetabaseUpdateObjectNode;
State := ObjectNode.ApplyState;
Select Case State.State
Case MetabaseUpdateObjectApplyState.CreateNew:
Debug.WriteLine("Object of update: " + ObjectNode.ObjectId + "; State: Create new");
Case MetabaseUpdateObjectApplyState.EditExisting:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Update existent.");
Case MetabaseUpdateObjectApplyState.Conflict Or MetabaseUpdateObjectApplyState.ConflictKey:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Conflict. An object exists with the similar key.");
Case MetabaseUpdateObjectApplyState.Conflict Or MetabaseUpdateObjectApplyState.ConflictId:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Conflict. An object exists with the similar identifier.");
Case MetabaseUpdateObjectApplyState.Conflict Or MetabaseUpdateObjectApplyState.ConflictClassId:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Conflict. Existing object has a different class.");
Case MetabaseUpdateObjectApplyState.Conflict Or MetabaseUpdateObjectApplyState.ConflictObjectNotFound:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Conflict. The repository object, for which the Update Only update type is assigned, is not found.");
Case MetabaseUpdateObjectApplyState.Conflict Or MetabaseUpdateObjectApplyState.ConflictMissingMetadata:
Debug.WriteLine("Update object: " + ObjectNode.ObjectId + "; State: Conflict. The update does not have metadata for creating an object.");
End Select;
End If;
End For;
End Sub Main;
After executing the example the Update.pef update file is downloaded and checked. For objects contained in the update root folder and corresponding repository objects the state of readiness for update is displayed in the development environment console.
See also: