DREREPLACE?DATABASEMATCH=News+Archive HTTP/1.0\n Content-Length:203\n\n #DREDOCID 1\n #DREFIELDNAME Price\n #DREFIELDVALUE 10\n #DREFIELDNAME Color\n #DREFIELDVALUE Red\n #DREDOCREF http://www.example.com/example/dynamic/autopage442.shtml\n #DREFIELDNAME Country\n #DREFIELDVALUE UK\n #DREFIELDNAME Region\n #DREFIELDVALUE South East\n #DREFIELDNAME OnSale\n #DREDELETEFIELDVALUE Yes\n #DRESTATEID abcdefg-6\n #DREFIELDNAME Fruit\n #DREFIELDVALUEIFNOTFOUND mango\n #DREDELETESINGLEFIELDVALUE apple\n #DREDELETEFIELD XML/DOC/DELETEME\n #DREENDDATANOOP\n\n
In this example, the DREREPLACE
makes these changes in the News
and Archive
databases.
In the document with the ID 1:
The value of the Price
field changes to 10
.
The value of the Color
field changes to Red
.
In the document with the reference http://www.example.com/example/dynamic/autopage442.shtml
:
The value of the Country
field changes to UK
.
The value of the Region
field changes to South East
.
The field OnSale
is removed from the document if it has the value Yes
.
In the documents referenced in the state ID abcdefg–6
:
The value of the Fruit
field changes to mango
if the Fruit/mango
pair does not already exist.
If the Fruit
field contains the value apple
, a single instance of the Fruit/apple
pair is deleted.
All instances of the XML/DOC/DELETEME
field are deleted.
#DREENDDATANOOP
signifies the end of the action parameters.
The following example demonstrates how to use a DREREPLACE
action to edit the set information held in BitFieldType
fields.
DREREPLACE?ReplaceAllRefs=True HTTP/1.0\n Content-Length:203\n\n #DREALL \n #DREFIELDNAME BitField\n #DREFIELDVALUEIFNOFIELD A008\n #DREFIELDBITOR A008\n #DREDOCID 1274\n #DREFIELDNAME Workbook\n #DREFIELDBITXOR 98\n #DREDBNAME News\n #DREFIELDNAME NewsSets\n #DREFIELDBITAND D9\n #DREENDDATANOOP\n\n
Note: The BitField
, Workbook
, and NewsSets
fields used in this example must be BitFieldType
fields.
In this example, the DREREPLACE
makes these changes.
In all documents in the IDOL Server:
If there is no BitField
field, IDOL Server adds one with the value A008
.
IDOL Server changes the value in the BitField
field by performing a bitwise OR operation between the current value of the field and the value A008
.
For example, if the current value of the field is 8080
:
Hexadecimal | Binary | |
---|---|---|
8080 | 1000 0000 1000 0000 | |
A008 | 1010 0000 0000 1000 | |
1010 0000 1000 1000 | The new field value is A088 |
The result of the bitwise OR is that any binary digits that were set to 1
(indicating that the document was part of the set) are left as they are. In addition, all the documents have the bits set to 1
for the third, thirteenth, and fifteenth sets, if it was not already set. In this way, all the documents are marked as part of sets 3, 13, and 15.
In this example, the document is marked as part of set 3, while remaining a part of sets 7, 11, 13, and 15.
In the document with ID 1274:
IDOL Server changes the value in the Workbook
field by performing a bitwise XOR operation between the current value of the field and the value 98
. For example, if the current value of the field is 6C
:
Hexadecimal | Binary | |
---|---|---|
6C | 0110 1100 | |
98 | 1001 1000 | |
1111 0100 | The new field value is F4 |
The result of the bitwise XOR is that any binary digits that are set to 1
in either number (but not in both) are set to 1
in the result. If the document was not already part of sets 3, 4, or 7, IDOL Server adds it to those sets. However, if the bit is set to 1
or 0
in both numbers, it is set to 0
in the result. If a document is already part of sets 3, 4, or 7, it is removed from them.
In this example, IDOL Server adds the document to sets 4 and 7. It remains part of sets 2, 5, and 6, but IDOL Server removes it from set 3.
In all documents in the News
database:
IDOL Server changes the value in the NewsSets
field by performing a bitwise AND operation between the current value of the field and the value D9
.
For example, if the current value of the field is 6C
:
Hexadecimal | Binary | |
---|---|---|
6C | 0110 1100 | |
D9 | 1101 1001 | |
0100 1000 | The new field value is 48 |
The result of the bitwise AND is that any binary digits that are set to 1
in both numbers are set to 1
in the result. If a document is already part of set 0, 3, 4, 6, or 7, it remains a part of those sets, but it is not be added if it was not originally part of those sets. It is also removed from any other sets it was initially part of.
In this example, the document remains in set 3 and set 6, but IDOL Server removes it from sets 2 and 5.
#DREENDDATANOOP
signifies the end of the action parameters.
|