OFEvaluateOperation(3tlib)


OFEvaluateOperation -- perform BMIP request

Synopsis

OFEvaluateOperation handleId object [ bmipResponseVar ]

Description

This routine performs the operation named by the BMIP request keyed list on the object identified by object. It will return a keyed list which represents a BMIP response. This should be forwarded to the client with the OFReturnBmipResponse function call.

This routine can be called repeatedly during the same BMIP request, and multiple bmipResponse lists may be accumulated. This is the case when multiple objects are forwarded in the bmipRequest(objectInstance) key, or the bmipRequest(scope) key guides a transformation on the named object instance into many object identifiers.

If the user wants to perform atomic synchronization with a request (either all or nothing), they should store up all the responses and only return them if no errors are found (and if errors are found, implement some procedure to undo those that succeeded and then return and empty response). If atomic synchronization is used, then the bmipResponseVar argument can never be present but empty, as each additional call to OFEvaluateOperation will clobber the previous BMIP response.

Arguments


handleId
handle that was passed to the request processor that needs to be passed back to the SCOadmin services library when operating on class.

object
name of the object instance being operated on by the operation.

bmipResponseVar
variable where the BMIP response should be stored, rather than being returned by OFEvaluateOperation. If this argument is empty (rather than not present) then the BMIP response will be invisibly associated (to the OSA writer) with the handleId and used by OFReturnBmipResponse when appropriate.

Diagnostics


EXECUTION_PROCEDURE_FAILURE
The execution of the operation was halted because of an error in running the operation's execution procedure.

NO_SUCH_CLASS_HANDLE
The handleId named does not corrispond to an existing class in the Server APIs internal lookup table.

MISSING_ATTRIBUTE_VALUE
One of the attributes given in the BMIP request did not have a value associated with in on a request to perform an operation other than get or replace-with-default.

NO_SUCH_ACTION
The action requested by the BMIP request represented by the handleId is not listed in the CDT of the BMIP request's class.

MISTYPED_ARGUMENT
The attribute list (or some portion of it) contained in the BMIP request represented by the handleId is not parseable by the Server API.

NO_SUCH_ATTRIBUTE
One of the attributes contained in the BMIP request represented by the handleId is not listed in the request's class's CDT.

UNRECOGNIZED_OPERATION
The operation contained in the BMIP request represented by the handleId is not listed in the CDT as being able to be performed on one of the attributes listed in the BMIP request.

INVALID_ATTRIBUTE_VALUE
One of the attributes listed in the BMIP request represented by the handleId is a group attribute and it has been associated with a value. Or, one of the values associated with an attribute is unparseable or a set of values is being assigned to a single value-typed attribute.

Examples

   proc RequestProcessor {osaDataString handleId bmipRequest} {
   

set object [keylget bmipRequest objectInstance]

OFEvaluateOperation $handleId $object bmipResponse OFReturnBmipResponse $handleId bmipResponse FALSE }

<or>

proc RequestProcessor {osaDataString handleId bmipRequest} {

set object [keylget bmipRequest objectInstance]

OFEvaluateOperation $handleId $object {} OFReturnBmipResponse $handleId {} FALSE }

<or>

proc RequestProcessor {osaDataString handleId bmipRequest} {

set object [keylget bmipRequest objectInstance]

set bmipResponse [OFEvaluateOperation $handleId $object] OFReturnBmipResponse $handleId bmipResponse FALSE }

References

OFReturnBmipResponse(3tlib), OFEvaluateFilter(3tlib).
25 April 2004
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004