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_anwendunglibwinnt
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
can you tell me the the link of the English version of this site
Thanx in advance,
Anish
Hi. My name is sung gun lee, who live in South Korea.
I think you succeed to interface with Remedy ARS on Solaris.
I already succeed to interface with Remedy ARS 6.3 system on Windows XP.
I got so many library files for Windows XP from BMC website.
I have to interface with Remedy ARS 6.3 system on Solaris SPARC ver 10.
But, I don’t have library files for interfacing.
Please send me to library files above for Solaris SPARC.
such as
libarutil.so
libarxml.so
libicu*.so
libicu*.so.28
libicu*.so.28.o
Die Bibliotheken für die Internationalisierung libicuio28.so etc. findet man unter: ftp://ftp.software.ibm.com/software/globalization/icu/2.8/
Aktuelle AR Bibliotheken auch für Solaris bekommt man im arswiki unter:
http://www.arswiki.org/wiki/Remedy_API_Downloads
Hallo,
in Ihrem Programm in Zeilen 32 und 33 steht
…new FieldID(1) und … new FieldID(2).
Gibt es eine Übersicht über die FielIDs und was sie bedeuten,
evtl. einen Link?
Vielen Dank,
Albert
@Albert:
Eine Übersicht über die Field ID’s kann man sich auf mehrere Art und Weisen verschaffen:
1.) Beim Windows AR Client gibt es ein aradmin Programm, mit dem man nicht nur Formulare erstellen kann, sondern auch sämtliche Informationen über den AR Server abrufen kann einschließlich der ID’s für die Felder
2.) die Freeware ARInside, die eine Dokumentation aller AR Objekte im HTML Format generiert. Die aktuelle Version kann
hier heruntergeladen werden.
3.) Der direkte Zugriff auf die Datenbank, die dem AR Server zugrunde liegt. Der Ausgangspunkt für die Recherchen ist die Tabelle ARSchema in der die Details zu den Formularen gespeichert werden.