ExecuteChanges Operation

Client Declaration
  public ChangeResponseType[] ExecuteChanges(ExecuteChangesRequest[] ExecuteChangesRequest)
Allows Content Engine objects to be created, updated, and deleted.

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 ExecuteChanges returns a refreshed object.
  • An array of ChangeRequestType elements, 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 ExecuteChangesRequest refresh flag used for input:
  • false: Output is empty.
  • true: Output is an array of ChangeResponseType elements, which specify the latest state of created or updated objects resulting from ExecuteChanges. Each ChangeResponseType element matches a ChangeRequestType element used in the ExecuteChanges input 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 ChangeRequestType element containing a Delete action, the corresponding ChangeResponseType element 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 ErrorStackType element 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:
  1. Navigate to Component Services/Computers/My Computer/COM+ Applications/Content Engine Object Store Service/Components/FNCE.ObjStoreUpdate.1.
  2. Right-click FNCE.ObjStoreUpdate.1 and select Properties from the menu.
  3. Select the Transactions tab.
  4. Select the Override global transaction timeout value checkbox and enter a value in the Transaction timeout (seconds) text box.
  5. 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>