Question: I have seen this 

```
eval="[(6, 0, ref('test_security.base_security_access)])]" 

```

and 

```
eval="[(4, [ref('test_security.base_security_access')])]"

```

in OpenERP 7.0 code.

What is the use of *6,0* and *4* in security and is there any other combination like this, please explain me.

Answer: 
`(4, ID)` means link to existing record with id = ID which will adds a relationship to existing record.

While `(6, 0, [IDs])` means replace the list of linked IDs. First it will unlink/delete existing ids with that record and then link to existing record with each ID in the list of IDs. 

For delete existing ids and link ids, it will delete the relationship between the two objects but does not delete the target object itself with `(6, 0, [IDs])`

For more details, [visit here.](http://odedrabhavesh.blogspot.in/2015/08/one2many-field-in-openerp.html)
A full list of options is in the [documentation for the osv class.](https://doc.odoo.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html#osv.osv.osv.write)

> 
> (0, 0, { values }) link to a new record that needs to be created with
>  the given values dictionary
> 
> 
> (1, ID, { values }) update the linked record with id = ID (write
>  values on it)
> 
> 
> (2, ID) remove and delete the linked record with id = ID (calls unlink
>  on ID, that will delete the object completely, and the link to it as
>  well)
> 
> 
> (3, ID) cut the link to the linked record with id = ID (delete the
>  relationship between the two objects but does not delete the target
>  object itself)
> 
> 
> (4, ID) link to existing record with id = ID (adds a relationship)
> 
> 
> (5) unlink all (like using (3,ID) for all linked records)
> 
> 
> (6, 0, [IDs]) replace the list of linked IDs (like using (5) then
>  (4,ID) for each ID in the list of IDs)
> 
> 
>