3.1.6.8 Interactive Prompt Requested by Robust Operation
The HLP provides the stream ID and the output data. If the __MI_CallbackRegistration option of the client's request did not set the corresponding stream flag, the server MUST NOT take any further action. Otherwise, the WSMV server determines whether to send the interactive prompt to the client based on following additional rules in addition to the ones mentioned in section 2.2.10 for the __MI_OPERATIONOPTIONS_PROMPTUSERMODE option:
If the PromptType_Type for a particular prompt is Critical then the server MUST ignore __MI_OPERATIONOPTIONS_PROMPTUSERMODE and the __MI_OPERATIONOPTIONS_PROMPTUSERMODEREGULAR_ACKVALUE options and MUST send confirm messages to the client.
Otherwise if the PromptType_Type for a particular prompt is Normal, then the server MUST follow the behavior noted below.
If __MI_OPERATIONOPTIONS_PROMPTUSERMODE is specified as "Ignore" and if the __MI_OPERATIONOPTIONS_PROMPTUSERMODEREGULAR_ACKVALUE option is specified, then the server MUST NOT send confirm messages to the client but answer them automatically to the provider as per the value for the __MI_OPERATIONOPTIONS_PROMPTUSERMODEREGULAR_ACKVALUE option.
If __MI_OPERATIONOPTIONS_PROMPTUSERMODE is specified as "Ignore" but if the __MI_OPERATIONOPTIONS_PROMPTUSERMODEREGULAR_ACKVALUE option is not specified, then the server MUST send confirm messages to the client and the client will be able to influence further processing of the operation.
If the server decides to send the interactive prompt to the client, it locates the associated row of the OperationMessages and performs the following steps.
The server generates a SOAP response whose body is an InteractiveEventType, with the eventType element set according to the type of output and the remaining fields as specified by the HLP. The server appends the message to the Messages list and restarts the Connection KeepAlive Timer. If the SecondaryConnection value is NULL, the server returns to the HLP.
If the ResponseBegun value is false, then the server sends the HTTP headers of the response. The response headers MUST indicate HTTP chunked encoding.
The server sets the ResponseBegun value to true.
The server sends the SOAP response in HTTP body data using the required HTTP encoding.
The server waits for an InteractiveResponse message from the client. If the message arrives, the server reports the desired behavior to the provider. If the operation is canceled, then the server reports the error to the provider in an implementation-specific way.