ARS 6.3 – Java API

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

5 Kommentare

  1. Anish · · Antworten

    can you tell me the the link of the English version of this site

    Thanx in advance,
    Anish

  2. Sung Gun Lee · · Antworten

    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

  3. 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

  4. Albert · · Antworten

    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

  5. @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.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: