Push¶
Installation¶
Sending push messages¶
Push messages can be sent via HTTP-POST-Request.
- URL:
https://yourdomain.com/insight/push/push/send
- Header:
"Content-Type": "application/json"
"apikey": "your-api-key"
- POST-Data:
{
"title": "Headline",
"message": "There is a new request",
"users": ["maxadmin"],
"path": "workorder-quickrep/WORKORDER/60",
"sound": "default"
}
- Available sounds:
- default
- alarmbuzzer.caf
- demonstrative.caf
- martiangun.caf
Example Maximo-Automation-Script¶
- Script Language: Groovy
- Source Code:
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import psdi.mbo.*;
import psdi.security.UserInfo;
import psdi.server.MXServer;
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost("localhost", 8080, "http");
PostMethod post = new PostMethod("/insight-push/rest/push/send");
post.addRequestHeader("Content-Type", "application/json; charset=utf-8");
post.addRequestHeader("apikey", "your-api-key");
String status = mbo.getString("STATUS");
if (!status.equals("INPRG")) {
return;
}
MXServer mxServer = MXServer.getMXServer();
UserInfo userInfo = mxServer.getUserInfo(user);
MboSetRemote userset = mxServer.getMboSet("MAXUSER", userInfo);
userset.setWhere("PERSONID in (select PERSONID from LABOR where LABORCODE in (select LABORCODE from LABORCRAFTRATE where CRAFT = '"+mbo.getString("CREWID")+"'))");
userset.reset();
int count = userset.count();
if (count == 0) {
return;
}
String userString = "";
MboRemote currMbo = null;
for (int i = 0; (currMbo = userset.getMbo(i)) != null; i++) {
String login = currMbo.getString("LOGINID");
userString += "\"" + login + "\"";
if (i < count - 1) {
userString += ",";
}
}
String woUniqueId = String.valueOf(mbo.getUniqueIDValue());
String message = "Neuer Arbeitsauftrag: " + mbo.getString("DESCRIPTION");
String input = "{ \"title\":\"Message\", \"message\": \"" + message + "\", \"users\": [ " + userString + " ], \"path\": \"workorder-quickrep/WORKORDER/" + woUniqueId + "\", \"sound\": \"default\" }";
try {
post.setRequestBody(input);
client.executeMethod(post);
System.out.println("Status:");
System.out.println(post.getStatusLine());
String response = new String(post.getResponseBodyAsString().getBytes("8859_1"));
System.out.println("Response:");
System.out.println(response);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
post.releaseConnection();
}