CRecordWebNotifyDialogDismissed
This message is a notification. It states that a web dialog has been ended.
The message is part of the Web Dialog API of
{
"id": "93419a92-5055-4a1f-a35b-59a92467764b",
"name": "WEB_NOTIFY_DIALOG_DISMISSED ",
"description": "The web dialog has been dismissed.",
"slots": [
{
"key": "1",
"name": "MICROSERVICE_ID",
"direction": "REQUEST",
"mandatory": "TRUE",
"type": "ID",
"description": "The micro service ID"
},
{
"key": "2",
"name": "REASON",
"direction": "REQUEST",
"mandatory": "TRUE",
"type": "INT",
"description": "0: successfully finished, 1: error, 2: canceled by user, 3: canceled by owner"
},
{
"key": "3",
"name": "RESULTS",
"direction": "REQUEST",
"mandatory": "FALSE",
"type": "STRING_PROPERTIES",
"description": "Optional: unspecified results."
}
]
}
Usage
The message can be caught if you have created a dialog with the CRecordShowWebDialog message and the dialog has been closed.
// constructor: addMessageHandler(CRecordWebNotifyDialogDismissed.ID, this::asyncWebDialogFinished );
private booleanasyncWebDialogFinished (@NotNull final CEnvelope aEnvelope, @NotNull final CRecord aRecord) throws CException { if (aEnvelope.isAnswer()) { return false; } else { final int reason =CRecordWebNotifyDialogDismissed .getReason(aRecord, -1); if (reason == CWebDialogApi.REASON_SUCCESS) { final IId microserviceId =CRecordWebNotifyDialogDismissed .getMicroserviceId(aRecord, null);// Check whether this is our dialog if (MICRO_SERVICE_YES_NO.equals(microserviceId)) { // The returned properties contain the results as well as the properties provided. final CStringProperties results =CRecordWebNotifyDialogDismissed .getResults(aRecord, new CStringProperties()); final String yesOrNo = results.get("result"); if ("yes".equals(yesOrNo)) {// ... } } } else if (reason == CWebDialogApi.REASON_ERROR) {// ... } else if (reason == CWebDialogApi.REASON_CANCELED_BY_USER) {// ... } else if (reason == CWebDialogApi.REASON_CANCELED_BY_OWNER) {// ... } aEnvelope.setResultSuccess(); return true; } }