Jun 27
Action Request System (ARS) von Remedy ist eines der bekannteren Helpdesk Systeme. Wobei ARS nur als Container für Helpdesk Applikationen dient, die wie bei uns auch den kompletten ITIL Standard (incedent, problem, change, config und cmdb) abbilden können.
Vorteilhaft ist die recht gut dokumentierte Java Schnittstelle, die wiederum auf der C API beruht. Über die Schnittstelle sind sämtliche Operationen mit dem AR Server möglich.
Der Zugriff auf einen Datensatz eines Formulars ist z.B. wie folgt möglich:
Continue reading »
Action Request System (ARS) von Remedy ist eines der bekannteren Helpdesk Systeme. Wobei ARS nur als Container für Helpdesk Applikationen dient, die wie bei uns auch den kompletten ITIL Standard (incedent, problem, change, config und cmdb) abbilden können.
Vorteilhaft ist die recht gut dokumentierte Java Schnittstelle, die wiederum auf der C API beruht. Über die Schnittstelle sind sämtliche Operationen mit dem AR Server möglich.
Der Zugriff auf einen Datensatz eines Formulars ist z.B. wie folgt möglich:
package de.k-oo.ar.samples;
import com.remedy.arsys.api.ARException;
import com.remedy.arsys.api.ARServerUser;
import com.remedy.arsys.api.Entry;
import com.remedy.arsys.api.EntryCriteria;
import com.remedy.arsys.api.EntryFactory;
import com.remedy.arsys.api.EntryID;
import com.remedy.arsys.api.EntryItem;
import com.remedy.arsys.api.EntryKey;
import com.remedy.arsys.api.EntryListFieldInfo;
import com.remedy.arsys.api.FieldID;
import com.remedy.arsys.api.NameID;
import com.remedy.arsys.api.Util;
public class EntryInfo {
public static void main(String[] args) {
ARServerUser context = new ARServerUser("user", "password", "", "server");
try {
// setzen des TCP Ports, auf dem der AR Server hört (also ohne portmapping)
Util.ARSetServerPort(context, new NameID(context.getServer()), 11111, 0);
// erstellen eines entry factory objects für den Zugriff auf Datensätze
EntryFactory entryFactory = EntryFactory.getFactory();
// festlegen der Kriterien für den Formularnamen und der Datensatz ID
EntryKey entryKey = new EntryKey(new NameID("formularname"),
new EntryID("200928"));
// festlegen der Formularfelder, deren Daten ermittelt werden sollen
EntryListFieldInfo fi1 = new EntryListFieldInfo(new FieldID(1));
EntryListFieldInfo fi2 = new EntryListFieldInfo(new FieldID(2));
EntryListFieldInfo[] entryFieldList = new EntryListFieldInfo[2];
entryFieldList[0] = fi1;
entryFieldList[1] = fi2;
EntryCriteria criteria = new EntryCriteria();
criteria.setEntryListFieldInfo(entryFieldList);
// suchen nach dem Datensatz
Entry entry = entryFactory.findByKey(context, entryKey, criteria);
System.out.println("Verbindung erfolgreich hergestellt.");
// Ausgabe
EntryItem[] items = entry.getEntryItems();
for (int i = 0; i < items.length; i++) {
EntryItem item = items[i];
System.out.println(""
+ item.getValue() + "");
}
}
catch (ARException e) {
e.describe();
e.printStackTrace();
}
finally {
context.clear();
}
}
}
Installation
Die Java API beruht auf der C API, daher müssen zusätzlich zu den Java Archiven (*.jar) auch die C Bibliotheken verfügbar sein. Das ist natürlich unterschiedlich für Windows und Unix (z.B. Solaris). Und das ist noch nicht alles. Die C API benötigt für die Internationalisierung der Meldungen zusätzliche C Bibliotheken die von IBM als Open Source hier zur Verfügung gestellt werden.
Windows Installation
Bei Windows genügt es den Pfad zu den C Bibliotheken (s.u.) in die Pfad Variable mit aufzunehmen. das kann man entweder über
Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen
oder über die Kommandozeile
set PATH=%PATH%:pfad_zur_anwendung\lib\winnt
tun. Folgende Java Archive und C Bibliotheken sollten verfügbar sein:
./lib:
total 644
-rwx------+ 1 gklinkmann Kein 300825 Jul 4 2005 arapi63.jar
-rwx------+ 1 gklinkmann Kein 18976 Jul 4 2005 armapi63.jar
-rwx------+ 1 gklinkmann Kein 907 Jul 4 2005 arutil63.jar
-rwx------+ 1 gklinkmann Kein 329931 Jul 4 2005 emaildae.jar
drwx------+ 2 gklinkmann Kein 0 Jun 22 14:05 solaris
drwx------+ 2 gklinkmann Kein 0 Jun 27 09:16 winnt
./lib/winnt:
total 12936
-rwx------+ 1 gklinkmann Kein 1028096 Jul 4 2005 arapi63.dll
-rwx------+ 1 gklinkmann Kein 634880 Jul 4 2005 arjni63.dll
-rwx------+ 1 gklinkmann Kein 102400 Jul 4 2005 armapi63.dll
-rwx------+ 1 gklinkmann Kein 77824 Jul 4 2005 arrpc63.dll
-rwx------+ 1 gklinkmann Kein 180224 Jul 4 2005 arutiljn.dll
-rwx------+ 1 gklinkmann Kein 114688 Jul 4 2005 arutl63.dll
-rwx------+ 1 gklinkmann Kein 897024 Jul 4 2005 arxmluti.dll
-rwx------+ 1 gklinkmann Kein 8237056 Jan 29 2004 icudt28l.dll
-rwx------+ 1 gklinkmann Kein 655360 Jan 29 2004 icuin28.dll
-rwx------+ 1 gklinkmann Kein 31744 Jan 29 2004 icuio28.dll
-rwx------+ 1 gklinkmann Kein 90112 Jan 29 2004 icule28.dll
-rwx------+ 1 gklinkmann Kein 77824 Jan 29 2004 iculx28.dll
-rwx------+ 1 gklinkmann Kein 53248 Jan 29 2004 icutu28.dll
-rwx------+ 1 gklinkmann Kein 585728 Jan 29 2004 icuuc28.dll
-rwx------+ 1 gklinkmann Kein 475190 Jul 4 2005 rcmn63.dll
Solaris Installation
Bei Solaris muss der LD_LIBRARY_PATH angepasst werden. Ein Script, was den Java Code ausführt könnte so aussehen:
#!/bin/bash
HOME=/export/home/ar/test-arapi-0.1
CLASSPATH=.:jars/test-arapi.jar:lib/solaris/arapi63.jar:lib/solaris/jlicapi6.jar:lib/solaris/arutil63.jar
JAVA=/usr/bin/java
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/lib/solaris
cd $HOME
${JAVA} -cp ${CLASSPATH} de.k-oo.ar.samples.EntryInfo
Wobei sich die eigentliche Klasse EntryInfo innerhalb des Java Archivs test-arapi.jar befindet.
Folgende C Bibliotheken sollten bei Solaris verfügbar sein:
lib/solaris:
total 104430
-rw-r--r-- 1 ar other 300825 Jun 22 14:06 arapi63.jar
-rw-r--r-- 1 ar other 907 Jun 22 14:06 arutil63.jar
-rw-r--r-- 1 ar other 329931 Jun 22 14:06 emaildae.jar
-rw-r--r-- 1 ar other 861 Jun 22 14:06 jlicapi6.jar
-rw-r--r-- 1 ar other 3961476 Jun 22 14:06 libar.a
-rw-r--r-- 1 ar other 2577060 Jun 22 14:06 libar.so
-rw-r--r-- 1 ar other 4437860 Jun 22 14:06 libarjni.so
-rw-r--r-- 1 ar other 574860 Jun 22 14:06 libaruti.so
-rw-r--r-- 1 ar other 5619504 Jun 22 14:06 libarxml.so
-rw-r--r-- 1 ar other 8512204 Jun 26 14:04 libicudata28.so
-rw-r--r-- 1 ar other 8512204 Jun 26 14:04 libicudata28.so.28
-rw-r--r-- 1 ar other 8512204 Jun 26 14:04 libicudata28.so.28.0
-rw-r--r-- 1 ar other 1400432 Jun 26 14:04 libicui18n28.so
-rw-r--r-- 1 ar other 1400432 Jun 26 14:04 libicui18n28.so.28
-rw-r--r-- 1 ar other 1400432 Jun 26 14:04 libicui18n28.so.28.0
-rw-r--r-- 1 ar other 90912 Jun 26 14:04 libicuio28.so
-rw-r--r-- 1 ar other 90912 Jun 26 14:04 libicuio28.so.28
-rw-r--r-- 1 ar other 90912 Jun 26 14:04 libicuio28.so.28.0
-rw-r--r-- 1 ar other 274516 Jun 26 14:04 libicule28.so
-rw-r--r-- 1 ar other 274516 Jun 26 14:04 libicule28.so.28
-rw-r--r-- 1 ar other 274516 Jun 26 14:04 libicule28.so.28.0
-rw-r--r-- 1 ar other 51700 Jun 26 14:04 libiculx28.so
-rw-r--r-- 1 ar other 51700 Jun 26 14:04 libiculx28.so.28
-rw-r--r-- 1 ar other 51700 Jun 26 14:04 libiculx28.so.28.0
-rw-r--r-- 1 ar other 92356 Jun 26 14:04 libicutoolutil28.so
-rw-r--r-- 1 ar other 92356 Jun 26 14:04 libicutoolutil28.so.28
-rw-r--r-- 1 ar other 92356 Jun 26 14:04 libicutoolutil28.so.28.0
-rw-r--r-- 1 ar other 1303916 Jun 26 14:04 libicuuc28.so
-rw-r--r-- 1 ar other 1303916 Jun 26 14:04 libicuuc28.so.28
-rw-r--r-- 1 ar other 1303916 Jun 26 14:04 libicuuc28.so.28.0
-rw-r--r-- 1 ar other 236604 Jun 22 14:06 libjlica.so
geschrieben von gklinkmann
\\ tags: ars, Java