cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

merge mergeobjects cleanup _transferred object

MVanwalleghem
New Contributor

We are facing problems with merge (msg: _transferred object ...... Already exists)

 

In KB 00000257, I find some information on merging and cleaning up _transferred objects.

and a nice piece of coding for deleting _transferred objects. 

 

But also the statement : Merge objects may be deleted without significant impact

What is "significant impact", does anyone has experience deleting __transferred objects ?

Why only half of the objects are deleted at each run of the script (had to execute it 6 or more times to finally end on 0 _transferred objects?

And if we cleanup, at what frequency do you cleanup ?  What about recent and significant _transferred objects ?

 

Monique

 

 

1 Reply

jhorber
MEGA
MEGA

Hello Monique

 

What is "significant impact"?
--> Lets come back on the Merge objects
In the vast majority of case, a reference to a repository object is a repository link.
If an object 01 (source) is merged with an object (2), the user can choose to transfer the links targetting O1 to O2
In certains cases, reference to a repository object is stored in a binary property. This is the case for example of a diagram drawing. The position (x,y) of an object in the drawing is store in the property '_Drawing' of the diagram.
If O1 is merged with O2, it would be too time consuming to analyse all the diagram drawings of the repository and chnage the reference.
That is why merge objects exist. Technically speaking a merge object is a data that a tool managing binary property storing object references (such as the diagram editor) can consult to avoid a small inconsistency.


To be short, the only significant feature I can think are diagran editor and text editor (field and rtf format)
Example:
O1 is merged with O2
A _transferred object T1 is created. T1 is deleted.

Impact on diagrams previously displaying O1
Position is lost: O2 is displayed in the top left corner of the diagram. If T1 has not been deleted, the drawing would display O2 with the previous position of O1
Texts/comments previously quoting O1 using MEGA fields
Susbitution is lost: The field displays the name O1. If T1 has not been deleted, the field would displays the name O2.

 

Why only half of the objects are deleted at each run of the script of KB 00000257
--> Script of KB 00000257 works but several loops are required for technical reasons.
Code deleting of objects should be written differenlty to avoid this.

You can use a while loop

Set ListToDelete=GetCollection("_TransferredObject")
MsgBox "There are " & ListToDelete.Count & " _TransferredObject."
Do while ListToDelete.Count >0 
  ListToDelete.Item(1).Delete
Loop
MsgBox "Deletion has ended. There are " & ListToDelete.Count & " _TransferredObjects." 

 

Jerome