123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- import com.cognos.developer.schemas.bibus._3.AgentNotificationStatusEnum;
- import com.cognos.developer.schemas.bibus._3.AsynchDetailAgentNotificationStatus;
- import com.cognos.developer.schemas.bibus._3.AsynchReply;
- import com.cognos.developer.schemas.bibus._3.AsynchReplyStatusEnum;
- import com.cognos.developer.schemas.bibus._3.AsynchRequest;
- import com.cognos.developer.schemas.bibus._3.AsynchSecondaryRequest;
- import com.cognos.developer.schemas.bibus._3.Option;
- import com.cognos.developer.schemas.bibus._3.ParameterValue;
- import com.cognos.developer.schemas.bibus._3.SearchPathSingleObject;
- public class ManageAlerts
- {
-
- public String addNotificationForUser(CRNConnect connection, BaseClassWrapper csobject)
- {
- AsynchRequest response = null;
- AsynchReply asynchReply = null;
- String reportPath = csobject.getBaseClassObject().getSearchPath().getValue();
- if (csobject == null)
- {
- return "No valid report selected";
- }
- try
- {
-
- asynchReply =
- connection.getDeliveryService().addNotification(new SearchPathSingleObject(reportPath));
-
-
- if (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
- while (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
-
- if (hasSecondaryRequest(asynchReply, "wait"))
- {
- asynchReply =
- connection.getReportService().wait(
- asynchReply.getPrimaryRequest(),
- new ParameterValue[] {},
- new Option[] {});
- }
- else
- {
- return "Error: Wait method not available as expected.";
- }
- }
- }
- return "Add notification request complete.";
- }
- catch (Exception e)
- {
-
-
- return "An Error occurred. You may not have an email address defined, or you may already be on the alert list.";
- }
- }
-
- public String deleteSingleNotification(CRNConnect connection, BaseClassWrapper csobject)
- {
- AsynchRequest response = null;
- AsynchReply asynchReply = null;
- String reportPath = csobject.getBaseClassObject().getSearchPath().getValue();
- if (csobject == null)
- {
- return "No valid report selected";
- }
- try
- {
-
- asynchReply =
- connection.getDeliveryService().deleteNotification(new SearchPathSingleObject(reportPath));
-
-
- if (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
- while (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
-
- if (hasSecondaryRequest(asynchReply, "wait"))
- {
- asynchReply =
- connection.getReportService().wait(
- asynchReply.getPrimaryRequest(),
- new ParameterValue[] {},
- new Option[] {});
- }
- else
- {
- return "Error: Wait method not available as expected.";
- }
- }
- }
- return "Delete notification request complete.";
- }
- catch (Exception e)
- {
-
-
- return "Error. You may not be on the alert list for this report.";
- }
- }
-
- public String deleteAllNotifications(CRNConnect connection)
- {
- AsynchRequest response = null;
- AsynchReply asynchReply = null;
- try
- {
-
- asynchReply =
- connection.getDeliveryService().deleteAllNotifications();
-
-
- if (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
- while (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
-
- if (hasSecondaryRequest(asynchReply, "wait"))
- {
- asynchReply =
- connection.getReportService().wait(
- asynchReply.getPrimaryRequest(),
- new ParameterValue[] {},
- new Option[] {});
- }
- else
- {
- return "Error: Wait method not available as expected.";
- }
- }
- }
- return "Delete all notifications request complete";
- }
- catch (Exception e)
- {
-
-
- return "An error occurred in the deleteAllNotifications Java method.";
- }
- }
-
- public String clearNotifications(CRNConnect connection, BaseClassWrapper csobject)
- {
- AsynchRequest response = null;
- AsynchReply asynchReply = null;
- String reportPath = csobject.getBaseClassObject().getSearchPath().getValue();
- if (csobject == null)
- {
- return "No valid report selected";
- }
- try
- {
-
- asynchReply =
- connection.getDeliveryService().clearNotifications(new SearchPathSingleObject(reportPath));
-
-
- if (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
- while (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
-
- if (hasSecondaryRequest(asynchReply, "wait"))
- {
- asynchReply =
- connection.getReportService().wait(
- asynchReply.getPrimaryRequest(),
- new ParameterValue[] {},
- new Option[] {});
- }
- else
- {
- return "Error: Wait method not available as expected.";
- }
- }
- }
- return "Clear notifications request complete.";
- }
- catch (Exception e)
- {
-
-
- return "An error occurred in the clearNotifications Java method.";
- }
- }
-
- public String queryNotification(CRNConnect connection, BaseClassWrapper csobject)
- {
- AsynchReply asynchReply = null;
- String reportPath = csobject.getBaseClassObject().getSearchPath().getValue();
- String unknownResult = new String("No details returned.");
-
- if (csobject == null)
- {
- return "No valid report selected";
- }
- try
- {
-
- asynchReply =
- connection.getDeliveryService().queryNotification(new SearchPathSingleObject(reportPath));
-
-
- if (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
- while (!asynchReply.getStatus().equals(AsynchReplyStatusEnum.conversationComplete))
- {
-
- if (hasSecondaryRequest(asynchReply, "wait"))
- {
- asynchReply =
- connection.getReportService().wait(
- asynchReply.getPrimaryRequest(),
- new ParameterValue[] {},
- new Option[] {});
- }
- else
- {
- return "Error: Wait method not available as expected.";
- }
- }
- }
-
- if (asynchReply != null)
- {
- for (int i = 0; i < asynchReply.getDetails().length; i++)
- {
- if ((asynchReply.getDetails()[i] instanceof AsynchDetailAgentNotificationStatus))
- {
- AgentNotificationStatusEnum currentStatus =((AsynchDetailAgentNotificationStatus)asynchReply.getDetails()[i]).getStatus();
- if (currentStatus == AgentNotificationStatusEnum.disabled)
- {
- return "Alert lists are not enabled for this report.";
- }
- else if (currentStatus == AgentNotificationStatusEnum.off)
- {
- return "The current user is not on the alert list for this report.";
- }
- else if (currentStatus == AgentNotificationStatusEnum.on)
- {
- return "The current user is on the alert list for this report.";
- }
- else
- {
- return "Unrecognized alert status returned.";
- }
- }
- }
- return "Query notification request returned no alert status information.";
- }
- }
- catch (Exception e)
- {
-
-
- return "An error occurred in the queryNotification Java method.";
- }
-
- return unknownResult;
- }
- public boolean hasSecondaryRequest(
- AsynchReply response,
- String secondaryRequest)
- {
- AsynchSecondaryRequest[] secondaryRequests =
- response.getSecondaryRequests();
- for (int i = 0; i < secondaryRequests.length; i++)
- {
- if (secondaryRequests[i].getName().compareTo(secondaryRequest)
- == 0)
- {
- return true;
- }
- }
- return false;
- }
- }
|