ExecuteChanges Operation
- Client Declaration
public ChangeResponseType[] ExecuteChanges(ExecuteChangesRequest[] ExecuteChangesRequest)
This operation supports one-at-a-time operations on non-repository objects and batch (atomic) operations on repository objects (with the restriction that all the objects in the batch must belong to the same object store).
Request
An ExecuteChangesRequest element,
which specifies the following:
- Refresh flag specifying whether or not
ExecuteChangesreturns a refreshed object. - An array of
ChangeRequestTypeelements, each of which specifies an object and actions to act on that object and specifies the following:- Zero or more actions (with associated parameters) to be applied to an object, each action corresponding to a particular Content Engine method.
- An array of zero or more identified properties and their values to be applied to the new or modified object in conjunction with the first of the action elements.
- A property filter, which specifies which properties will be returned
in a refreshed object. It can specify one or more of the following:
- An array of identified properties to include.
- An array of data types, all properties of which will be included.
- A list of properties to exclude, overriding any properties previously specified.
- One or more attributes to control how the property filter is applied in special cases.
- An object reference specifying the target of the actions.
A typical structure of an
ExecuteChanges request
is as follows. Elements that are derived from their base element are
in parenthesis:
ExecuteChangesRequest ExecuteChangesRequest
ChangeRequestType ChangeRequestTypeArray[0]
(CreateAction)ActionType Action[0]
(CheckinAction)ActionType Action[1]
.
.
(SingletonString)ModifiablePropertyType ActionProperties[0]
(SingletonInteger32)ModifiablePropertyType ActionProperties[1]
.
.
PropertyFilterType RefreshFilter
FilterElementType IncludeProperties[0]
FilterElementType IncludeProperties[1]
.
.
FilterElementType IncludeTypes[0]
FilterElementType IncludeTypes[1]
.
.
ObjectReference(ObjectSpecification) TargetSpecification
ChangeRequestType ChangeRequestTypeArray[1]
.
.
Response
ExecuteChanges has
the following output, depending on whether it is successful or not:- Successful
- Output depends on the value of the
ExecuteChangesRequestrefreshflag used for input:false: Output is empty.true: Output is an array ofChangeResponseTypeelements, which specify the latest state of created or updated objects resulting fromExecuteChanges. EachChangeResponseTypeelement matches aChangeRequestTypeelement used in theExecuteChangesinput array and is composed of the following:- A specified Content Engine object.
- An array of specified Content Engine properties and their current values.
- For a
ChangeRequestTypeelement containing aDeleteaction, the correspondingChangeResponseTypeelement is empty; otherwise, it contains the properties values representing the up-to-date state of the created or modified object.
- Failure
- If an error has occurred, an
ErrorStackTypeelement is returned.
A typical structure of an
ExecuteChanges response
is as follows. Elements that are derived from their base element are
in parenthesis:
ChangeResponseType ChangeResponseTypeArray[0]
PropertyType(SingletonString) Property[0]
PropertyType(SingletonInteger32) Property[1]
.
.
ChangeResponseType ChangeResponseTypeArray[1]
.
.
Remarks: There is a
practical, unfixed limit on the number of operations that can be successfully
performed in an
ExecuteChanges batch. If there are
too many operations, a transaction timeout occurs and an exception
is reported. The transaction timeout can be increased on the Content Engine server by running the Microsoft Windows Component Services administrative
tool and following this procedure:- Navigate to Component Services/Computers/My Computer/COM+ Applications/Content Engine Object Store Service/Components/FNCE.ObjStoreUpdate.1.
- Right-click FNCE.ObjStoreUpdate.1 and select Properties from the menu.
- Select the Transactions tab.
- Select the Override global transaction timeout value checkbox and enter a value in the Transaction timeout (seconds) text box.
- Click OK to save and close the dialog.
XML Schema
<operation name="ExecuteChanges">
<input message="tns:ExecuteChangesRequest"/>
<output message="tns:ExecuteChangesResponse"/>
<fault message="tns:FaultResponse" name="GeneralError"/>
</operation>