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