saperion ecm r/ indexer für sap - docs.hyland.com · 2 die saperion komponente 2 abb. 1–1:...
TRANSCRIPT
SAPERION ECM R/ Indexer für SAP
Copyright © 2016 Lexmark. All rights reserved.
Lexmark is a trademark of Lexmark International, Inc., registered in the U.S. and/or other countries. All other trademarksare the property of their respective owners. No part of this publication may be reproduced, stored, or transmitted in anyform without the prior written permission of Lexmark.
Inhaltsverzeichnis
1 Einführung ........................................................................................................... 1
2 Die SAPERION Komponente .............................................................................. 2
2.1 Auslieferungsform der Software ......................................................................... 2
2.2 Anforderungen ..................................................................................................... 2
2.3 Installation ........................................................................................................... 3
2.4 Konfiguration ....................................................................................................... 3
2.4.1 "sapindexer.xml" .............................................................................................. 3
Sektion [Pool Properties] ............................................................................. 3
Sektion [Query/ DDC Properties] ................................................................ 4
Sektion [SAP Properties] ............................................................................... 5
Sektion [SAPERION Properties] .................................................................. 6
Sektion [Indexer Properties] ........................................................................ 7
Sektion [Indexer Cron] ................................................................................... 8
Sektion [Statistic Properties] ....................................................................... 10
Sektion [Worker Properties] ......................................................................... 10
2.4.2 "log4j.properties" ............................................................................................ 11
3 Die SAP-Komponente .......................................................................................... 11
3.1 Anforderungen ..................................................................................................... 11
3.2 Installation .......................................................................................................... 12
3.3 Konfiguration ....................................................................................................... 12
3.3.1 Datenanalyse ................................................................................................... 12
3.3.2 Anpassung der Funktionsbausteine ............................................................... 13
3.3.3 Profilnamen anlegen ....................................................................................... 13
3.3.4 Objektverknüpfungen zuordnen ..................................................................... 14
3.3.5 Feldverknüpfungen festlegen .......................................................................... 15
3.3.6 Positionsnummern aktualisieren .................................................................... 18
3.4 Funktionsbaustein testen .................................................................................... 18
4 Inbetriebnahme des R/ Link Indexers ................................................................ 20
4.1 R/ Link Indexer als Aufgabe (Task) starten ........................................................ 21
5 Anhang ................................................................................................................. 21
5.1 Status Codes ........................................................................................................ 21
5.2 Funktionstemplates ............................................................................................. 22
1
SAPERION ECM R/ Indexer für SAP
1 Einführung
Mit dem R/ Indexer können SAPERION Dokumente, die über den ArchiveLink mit SAP verknüpft sind,
indexiert werden.
Der R/ Indexer besteht aus zwei voneinander abhängigen Komponenten, wobei eine im SAP
und die andere im SAPERION Kontext implementiert und konfiguriert wird. Nachfolgend wird
die Implementierung und Konfiguration der SAP-Komponente sowie der SAPERION Komponente
beschrieben.
Während der Indexierung wird eine Statistik generiert, die über Erfolg bzw. Misserfolg der Indexierung,
über Indexeigenschaften und die Prozessdauer Auskunft gibt. Der Indexer markiert über das
DDC-Statusfeld erfolgreich indexierte Dokumente.
Die SAP-Komponente besteht aus einem RFC-Funktionsbaustein, der von der SAPERION Java
Komponente via RFC-Protokoll aufgerufen wird. Dem RFC-Funktionsbaustein muss mindestens eine
SAPDocID mitgegeben werden.
Im ersten Schritt wird die Dokumenten-ID in den Verknüpfungstabellen gesucht.
Wenn mindestens eine Verknüpfung gefunden wurde, wird das Objektverknüpfungsprofil aus
SAP-Objekttyp und -Dokumentart auf Basis der hinterlegten Konfiguration bestimmt und der
zugeordnete Datenextraktionsbaustein selektiert.
Weiterhin werden über das Profil die zu lesenden SAP- und die zu schreibenden SAPERION
Tabellenfelder aus der Konfiguration bestimmt. Darüber hinaus werden pro SAP-Feld die Datentypklasse,
die definierten Festwerte, die Formatierungsregel(n) und gegebenenfalls andere Verarbeitungsregeln
abgeleitet. Abschließend werden die SAP-Datenextrakte pro Dokumenten-ID an die SAPERION Java
Komponente zurückgegeben.
2 Die SAPERION Komponente
2
Abb. 1–1: Prozessablauf der SAP-Komponente
2 Die SAPERION Komponente
2.1 Auslieferungsform der Software
Der R/ Indexer wird als Software-Paket (ZIP-file), das alle benötigten Komponenten enthält, ausgeliefert.
Diese sind:
+ "config"-Ordner, in dem verschiedene Konfigurationsdateien liegen
+ plattformabhängige DLLs (für 32 Bit und 64 Bit Systeme)
+ "sapIndexer.jar"-Datei
+ "start.bat", das Start-Script
2.2 Anforderungen
Die im Folgenden aufgelisteten technischen Anforderungen müssen erfüllt sein:
+ mindestens SAPERION Version 7.1 SP1
+ SAP mit JCO (Java Connector) auf dem Server
+ DDC mit SAP-Dokumenten und SAPDocID-Feld, z.B. "RLinkDocuments.ddc"
2.3 Installation
3
+ installierte "sapjco3.dll"
2.3 Installation
1. Beziehen Sie die aktuellste Version des R/ Indexers durch die SAPERION AG.
2. Entpacken Sie die ZIP-Datei "sapIndexer<Versionsnummer>bin.zip".
3. Kopieren Sie "sapjco3.dll", welches zu Ihrem System passt (32 Bit oder 64 Bit) in das
Verzeichnis "C:\Windows\..."
4. Editieren Sie die Konfigurationsdatei "sapindexer.xml" im "config/"-Ordner nach Ihren
Anforderungen.
5. Kopieren Sie die DDC "RLinkDocuments.ddc" aus dem "config/" -Verzeichnis in Ihr
SAPERION "defs/"-Verzeichnis.
2.4 Konfiguration
Die folgenden Konfigurationsdateien werden im Order "/config" ausgeliefert:
+ saperion.properties
+ sapindexer.xml
+ log4j.properties
2.4.1 "sapindexer.xml"
Die "sapindexer.xml"-Konfigurationsdatei ist in verschiedene Sektionen aufgeteilt, diese werden in den
folgenden Kapiteln näher erläutert.
i Die unten aufgelisteten Beispiele enthalten in der Regel Standardwerte, welche Sie aber jederzeit
nach Ihren Bedürfnissen anpassen können
2.4.1.1 Sektion [Pool Properties]
Diese Sektion enthält ClassicConnector-Pool Einstellungen, welche für ein paralleles Login in SAPERION
verwendet werden.
Beispiel
<!-- POOL PROPERTIES -->
<entry key="pool.max.idle">-1</entry>
<entry key="pool.min.idle">-1</entry>
<entry key="pool.max.active">-1</entry>
<entry key="pool.exhausted.action">2</entry>
2 Die SAPERION Komponente
4
<entry key="pool.max.wait">-1</entry>
<!-- following properties are in SECONDS -->
<entry key="pool.session.timeout">120</entry>
<!-- seconds after which a session gets closed. -->
<entry key="pool.scheduler.interval">60</entry>
<!-- interval for cleaning sessions. -->
Parameter der Sektion [Pool Properties]
Parameter Beschreibung
pool.max.idle Maximale Anzahl der "Idle"-Instanzen im Pool. Setzen Sie einen negativen Wert ein, um eine unbegrenzte An-
zahl von SaClassicConnector-Instanzen zu indizieren.
pool.min.idle Minimale erlaubte Objekte im Pool, bevor neue SaClassicConnector-Objekte erzeugt werden.
pool.max.active Maximale Anzahl von SaClassicConnector-Objekten, die vom Pool zugeordnet werden zu einem definierten
Zeitpunkt. Setzen Sie einen negativen Wert ein, um die Anzahl nicht zu limitieren.
pool.exhausted.action Aktion, wenn ein SaClassicConnector-Objekt angefordert, aber der Pool ausgelastet ist (das Maximum von ak-
tiven Objekten ist erreicht).
Mögliche Werte:
0 = ein "NoSuchElementException" wird geworfen.
1 = der Pool ist solange geblockt bis ein SaClassicConnector-Objekt verfügbar wird oder die maximale Warte-
zeit (siehe Konfiguration "pool.max.wait") überschritten ist.
2 = ein neues SaClassicConnector-Objekt wird dennoch erzeugt
pool.max.wait Maximale Zeit in Millisekunden, in der der Pool geblockt wird bevor ein Exception geschmissen wird, wenn der
Pool ausgelastet und pool.exhausted.action = 1. (bei 0 oder -1 wird der Pool unbegrenzt geblockt).
pool.session.timeout Zeit in Sekunden, in der eine SaClassicConnector-Session gültig ist.
pool.scheduler.interval Zeit in Sekunden, in der ein Scheduler nach ungültigen Sessions prüfen soll.
2.4.1.2 Sektion [Query/ DDC Properties]
Diese Sektion enthält DDC- und Abfrage-Einstellungen.
Beispiel
<!-- QUERY/DDC PROPERTIES -->
<entry key="query.rlinkDDC">RLinkDocuments</entry>
<entry
key="query.indexFields">JAHR,BUCHUNGSKREIS,BELEGNUMMER,LIEFERANTENNUMMER,AUFTRAGSNUMMER,
KUNDENNUMMER,KUNDENNAME,BETRIEBSSYSTEM,LIEFERANTENNAME,BRUTTOBETRAG,BUCHUNGSDATUM</
entry>
<entry key="query.filter">INDEXINGSTATE = '0'</entry>
<entry key="query.pagingcount">100</entry>
<entry key="query.status.field">INDEXINGSTATE</entry>
<entry key="query.status.success">1</entry>
<entry key="query.status.retry"></entry>
2.4 Konfiguration
5
Parameter der Sektion [Query/ DDC Properties]
Parameter Beschreibung
query.rlinkDDC DDC-Name, in die der Indexer Indexdaten schreiben soll.
query.indexFields Ein kommaseparierter String von DDC-Feldern, die vom Indexer berücksichtigt werden sollen.
query.filter HQL-Filterkriterien um Dokumente, die indexiert werden sollen, zu identifizieren.
query.pagingcount Anzahl von Dokumenten, die vom Indexer innerhalb einer Datenbankabfrage auswählen soll.
query.status.field DDC-Feldname, das der Indexer aktualisiert, wenn das Dokument erfolgreich indexiert worden ist. Das Index-
Statusfeld musst den SAPERION Datentyp "int" enthalten (ganzzahlig).
query.status.success Wert, der in das " query.status.field" eingetragen wird, wenn die Dokumentenindexierung erfolgreich war. Der
Statuswert muss dabei ein positiver Integer sein.
query.status.retry Wenn der Parameter "query.status.retry" gesetzt ist, wird der Indexer den Status eines teilindexierten Doku-
ments auf den entsprechenden Wert des Parameters setzen und archivieren. Teilindexiert meint dabei, dass
die Anzahl der zu indexierenden Felder kleiner ist als die Anzahl der Indexfelder beschrieben im Parameter
"query.indexFields".
Bei der Indexierung von Dokumenten ist es nicht immer gegeben, dass alle Indexwerte eines Dokuments ge-
setzt werden. Dies kann aus verschiedenen Gründen möglich sein. Um teilindexierten Dokumente zu lokalisie-
ren, kann mit dem oben beschriebenen Parameter ein gesonderter Statuswert gesetzt werden.
HINWEIS: Teilindexierte Dokumente können anhand ihres Indexstatus mit dem Parameter "query.filter" gefun-
den und zu einem späteren Zeitpunkt nachindexiert werden.
Mögliche Werte:
+ <leer>: die Teilindexierung ist nicht aktiviert
+ Beliebige Zahl: die Teilindexierung ist aktiviert (die angegebene Zahl ist
der Status für den Import der Dokumente)
2.4.1.3 Sektion [SAP Properties]
Diese Sektion enthält Definitionen zur SAP-Authentifizierung und -Verbindung.
Beispiel
<!-- SAP PROPERTIES -->
<entry key="sap.user">your_name</entry>
<entry key="sap.password">your_password</entry>
<entry key="sap.host">IP_address</entry>
<entry key="sap.sysnr">00</entry>
<entry key="sap.client">800</entry>
<entry key="sap.functionname">/SAAG/RFC_INDEXER_BC_V1</entry>
<entry key="sap.docsperrequest.max">10</entry>
<entry key="sap.exporttable.identifier">identifier</entry>
<entry key="sap.pool.enable">true</entry>
<entry key="sap.pool.capacity">3</entry>
<entry key="sap.peeklimit">10</entry>
2 Die SAPERION Komponente
6
Parameter der Sektion [SAP Properties]
Parameter Beschreibung
sap.user SAP Benutzername für eine Authentifizierung am SAP-System
sap.password SAP Passwort für eine Authentifizierung am SAP-System
sap.host SAP-System IP-Adresse oder URL
sap.sysnr SAP-System Nummer
sap.client SAP-System Client
sap.functionname SAP-Funktionsname zur Verwendung durch den Indexer
sap.docsperrequest.max Note: Dieser Parameter wird z.Z. noch nicht angewandt!
Die Anzahl der Dokumente, die der Indexer auf einmal abfragen soll im SAP-System.
sap.exportable.identifier Name der Exporttabelle in SAP-Antworten.
sap.pool.enable Gibt an, ob eine Verbindung für die SAP-Verknüpfung verwendet werden soll.
Mögliche Werte: TRUE, FALSE
sap.pool.capacity Größe des SAP Verbindungspools
sap.peaklimit Der Spitzenwert erlaubt zusätzliche SAP-Verbindungen. Dies bedeutet, dass mehr als ursprünglich definierte
Kapazität (sap.pool.capacity) erzeugt werden kann. Diese Verbindungen werden aber gelöscht, sobald sie nicht
verwendet werden (im Gegensatz zu den Verbindungen, die unter "sap.pool.capacity" definiert wurden).
2.4.1.4 Sektion [SAPERION Properties]
Diese Sektion enthält Einstellungen zu der SAPERION-Authentifizierung.
Beispiel
<!-- SAPERION PROPERTIES -->
<entry key="saperion.user">your_name</entry>
<entry key="saperion.password">your_password</entry>
<entry key="saperion.licensetype">1</entry>
<entry key="saperion.mandant"></entry>
Parameter der Sektion [SAPERION Properties]
Parameter Beschreibung
saperion.user SAPERION Benutzername für die Authentifizierung am SAPERION System
saperion.password SAPERION Passwort für die Authentifizierung am SAPERION System
saperion.licensetype SAPERION Lizenztyp für die Authentifizierung am SAPERION System
Mögliche Werte:
1 = Index Client
2 = Abfrage Client
2.4 Konfiguration
7
Parameter Beschreibung
saperion.mandant SAPERION Mandant für die Authentifizierung am SAPERION System
2.4.1.5 Sektion [Indexer Properties]
Diese Sektion enthält Indexer Modus-Einstellungen.
Beispiel
<!-- INDEXER PROPERTIES -->
<entry key="mode.running">index</entry> <!-- possible values: test, index -->
<entry key="mode.execution">serial</entry>
<entry key="mode.masdoc">-1</entry>
<entry key="mode.ingoreemptyindex">true</entry>
<entry key="mode.ignore.DATE.values">00000000</entry>
<!-- possible values: serial, parallel -->
Parameter der Sektion [Indexer Properties]
Parameter Beschreibung
mode.running Indexer-Modus
Mögliche Werte:
index = indexiert die Werte aus SAP (produktiv)
test = loggt Werte aus SAP in der Statistik (Test)
mode.execution Definiert eine serielle oder parallele Ausführung der Indexer-Jobs.
Mögliche Werte:
serial = Zuerst werden SAPERION-Dokumente für das Indexieren identifiziert. Dann werden die dazugehörigen
SAP-Eigenschaften zum Archivieren in SAPERION abgerufen.
parallel = Das Beziehen der Dokumente zum Indexieren, der SAP-Eigenschaften und das Archivieren in SAPE-
RION erfolgt parallel durch eine Vielzahl von Threads.
mode.maxdoc Mit diesem Parameter kann die Anzahl der indexierten Dokumente limitiert werden. Beispielsweise kann er
eingesetzt werden, um zu überprüfen, ob das Indexieren einiger Dokumente funktioniert.
Mögliche Werte:
-1 = alle Dokumente werden indexiert (Standardwert)
0 = kein Dokument wird indexiert
n >0 = n Dokumente werden indexiert
mode.ingoreemptyindex TRUE = Leere Indexfelder werden ignoriert. Leere oder nicht gesetzte Indexfelder werden nicht im SAPERION
Backend gespeichert und bleiben unverändert. Dieser Parameter muss auf TRUE gesetzt werden in Kombinati-
on mit der Option "query.status.retry" (welche in der Sektion [Query/ DDC Properties] definiert wird).
Standard: FALSE
2 Die SAPERION Komponente
8
Parameter Beschreibung
mode.ignore.<TYPE>.values Hier können Sie eine kommaseparierte Liste von Feldtypen definieren, die bei der Indexierung ignoriert und
nicht im SAPERION Backend gespeichert werden sollen.
HINWEIS: Bei den Typen handelt es sich um SAP Feldtypen und ihre Multivaluefelder.
Mögliche Werte:
+ STRING: STRING, STRING_M
+ DATE: DATE, DATE_M
+ INT: INT, INT_M
+ FLOAT: FLOAT, FLOAT_M
+ NUM: NUM, NUM_M
2.4.1.6 Sektion [Indexer Cron]
In dieser Sektion nehmen Sie Einstellungen zum cron-Scheduler vor. Der Indexer verwendet
den Enterprise Job Scheduler von Quartz (http://www.quartz-scheduler.org/), um wiederholte
Indexierungsprozesse zu terminieren. Der Scheduler ist aktiv, wenn die Option "-cron" als Startargument
gesetzt ist.
Beispiel
<!-- INDEXER CRON -->
<entry key="cron.expression">0 * * * * ?</entry>
<!--
http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger
expression examples:
"0 * * * * ?"Fire every minute
"0 0 * * * ?"Fire every hour
"0 0 12 * * ?"Fire at 12pm (noon) every day
"0 15 10 ? * *"Fire at 10:15am every day
"0 15 10 * * ?" Fire at 10:15am every day
"0 15 10 * * ? *" Fire at 10:15am every day
"0 15 10 * * ? 2005"Fire at 10:15am every day during the year 2005
"0 * 14 * * ?"Fire every minute starting at 2pm and ending at 2:59pm, every day
"0 0/5 14 * * ?"Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day
"0 0/5 14,18 * * ?"Fire every 5 minutes starting at 2pm and ending at 2:55pm,
AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day
"0 0-5 14 * * ?"Fire every minute starting at 2pm and ending at 2:05pm, every day
"0 10,44 14 ? 3 WED"Fire at 2:10pm and at 2:44pm every Wednesday in the month of March.
"0 15 10 ? * MON-FRI"Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday
"0 15 10 15 * ?"Fire at 10:15am on the 15th day of every month
"0 15 10 L * ?"Fire at 10:15am on the last day of every month
"0 15 10 ? * 6L"Fire at 10:15am on the last Friday of every month
"0 15 10 ? * 6L"Fire at 10:15am on the last Friday of every month
"0 15 10 ? * 6L 2002-2005"Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005
"0 15 10 ? * 6#3"Fire at 10:15am on the third Friday of every month
2.4 Konfiguration
9
Fields (allowed Values) are:
Seconds(0-59 ,-*/) Minutes(0-59 ,-*/) Hours(0-23 ,-*/) Day of month(1-31 ,-*?/LW) Month(1-12 or JAN-DEC,-*/)
Day of Week(1-7 or SUN-SAT,-*?/L#) Year(empty, 1970-2099 ,-*/)
-->
cron.expression
Der Parameter "cron.expression" definiert den Startzeitpunkt eines Indexierungsprozesses. Ein
"cron.expression" besteht aus einem String, welcher sechs oder sieben Felder - getrennt durch
Leerzeichen - umfasst. Nähere Informationen finden Sie im "Cron Trigger Tutorial" auf der
Quartz-Webseite: http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger
Felder (erlaubte Werte):
+ Sekunden (0-59 ,-*/)
+ Minuten (0-59 ,-*/)
+ Stunden (0-23 ,-*/)
+ Tag im Monat (1-31 ,-*?/LW)
+ Monat (1-12 oder JAN-DEC,-*/)
+ Tag in der Woche (1-7 oder SUN-SAT,-*?/L#)
+ Jahr (leer, 1970-2099 ,-*/)
Cron Expression Beispiele
Cron Expression Beispiele
Cron Expression Beschreibung
0 * * * * ? Jede Minute auslösen
0 0 * * * ? Jede Stunde auslösen
0 0 12 * * ? Um 12 Uhr auslösen
0 15 10 ? * * Jeden Tag um 10:15 Uhr auslösen
0 15 10 * * ? Jeden Tag um 10:15 Uhr auslösen
0 15 10 * * ? * Jeden Tag um 10:15 Uhr auslösen
0 15 10 * * ? 2005 Jeden Tag um 10:15 Uhr auslösen im Jahr 2005
0 * 14 * * ? Jeden Tag, jede Minute ab 14 Uhr bis 14:59 Uhr auslösen
0 0/5 14 * * ? Jeden Tag, alle fünf Minuten ab 14 Uhr bis 14:55 Uhr auslösen
0 0/5 14,18 * * ? Jeden Tag, alle fünf Minuten ab 14 Uhr bis 14:55 Uhr auslösen UND alle fünf Minuten ab 18 Uhr bis 18:55 Uhr
auslösen
0 0-5 14 * * ? Jeden Tag, jede Minute ab 14 Uhr bis 14:05 Uhr auslösen
0 10,44 14 ? 3 WED Jeden Mittwoch im Monat März um 14:10 Uhr und 14:44 Uhr auslösen
0 15 10 ? * MON-FRI Jeden Montag, Dienstag, Mittwoch, Donnerstag und Freitag um 10:16 Uhr auslösen
0 15 10 15 * ? Jeden 15. Tag im Monat um 10:15 Uhr auslösen
0 15 10 L * ? Jeden letzten Tag eines Monats um 10:15 Uhr auslösen
0 15 10 ? * 6L Jeden letzten Freitag eines Monats um 10:15 Uhr auslösen
2 Die SAPERION Komponente
10
Cron Expression Beschreibung
0 15 10 ? * 6L 2002-2005 Jeden letzten Freitag eines Monats in den Jahren 2002, 2003, 2004 und 2005 um 10:15 Uhr auslösen
0 15 10 ? * 6#3 Jeden dritten Freitag jeden Monats um 10:15 Uhr auslösen
i Die Standardeinstellung für einen Cron-Job ist: "Jede volle Stunde auslösen" (0 0 * * * ?).
2.4.1.7 Sektion [Statistic Properties]
Diese Sektion enthält die Einstellungen zur Statistik.
Beispiel
<!-- STATISTIC PROPERTIES -->
<entry key="statistic.enabled">true</entry>
<entry key="statistic.mode">console</entry> <!-- possible values: console, log, file -->
<entry key="statistic.file">d:/sapindexer_statistic.txt</entry> <!-- only if statistic.mode = file -->
Parameter der Sektion [Statistic Properties]
Parameter Beschreibung
statistic.enabled De-/ Aktivierung der Statistikfunktion.
Mögliche Werte: TRUE, FALSE
statistic.mode Definiert wohin die Statistik geschrieben werden soll.
Mögliche Werte:
console = die Statistik wird auf die Konsole geschrieben
file = die Statistik wird eine separate Datei geschrieben
statistic.file Wenn statistic.mode = file, geben Sie hier den Pfad und Dateinamen an.
2.4.1.8 Sektion [Worker Properties]
Diese Sektion enthält Einstellungen zu den Worker Threads und ist nur relevant, wenn "mode.execution
= parallel" gesetzt wurde (siehe Sektion [Indexer properties] oben).
Beispiel
<!-- WORKER PROPERTIES - needed, if 'mode.execution = parallel' -->
<entry key="worker.get.count">5</entry><!-- Number of workers for retrieving SAP properties -->
<entry key="worker.save.count">5</entry><!-- Number of workers for saving new properties to SAPERION -->
<entry key="worker.get.timeout">3</entry><!-- Timeout in seconds for one get-job to finish. -->
<entry key="worker.save.timeout">3</entry><!-- Timeout in seconds for one save-job to finish. -->
<entry key="worker.shutdowm.timeout">10</entry><!-- Timeout in seconds for all Threads to shutdown. -->
3.1 Anforderungen
11
Parameter der Sektion [Worker Properties]
Parameter Beschreibung
worker.get.count Anzahl der Worker Threads, die eingesetzt werden sollen, um die Dokumenten-Indexwerte von SAP zu bezie-
hen ("get-job").
worker.save.count Anzahl der Worker Threads, die eingesetzt werden sollen, um die Dokumenten-Indexwerte in SAPERION zu ar-
chivieren ("save-job").
worker.get.timeout Wartezeit in Sekunden für einen einzelnen "get-job".
worker.save.timeout Wartezeit in Sekunden für einen einzelnen "save-job".
worker.shutdown.timeout Wartezeit in Sekunden für die Vollendung aller Threads nach Herunterfahren des Indexers.
2.4.2 "log4j.properties"
Mit dem log4j Logging Framework ist es möglich, eine Rotation der Statistikdatei unter Verwendung
eines spezifischen Log-Appenders zur Protokollierung der Statistik zu konfigurieren. Um den
Statitikoutput in eine bestimmte Datei zu schreiben, müssen Sie lediglich den Parameter "statistic.file"
setzen und in der Datei "log4j.properties" folgende Einstellung vornehmen:
Beispiel
## statistic logging
log4j.logger.com.saperion.sap.indexer.statistic=ALL, statistic
log4j.additivity.com.saperion.sap.indexer.statistic=false
# Statistic File Appender
log4j.appender.statistic=org.apache.log4j.RollingFileAppender log4j.appender.statistic.File=./logs/sapindexer_statistic.txt
log4j.appender.statistic.MaxFileSize=15000KB
log4j.appender.statistic.MaxBackupIndex=3
log4j.appender.statistic.layout=org.apache.log4j.PatternLayout
log4j.appender.statistic.layout.ConversionPattern=%d %m%n
Des Weiteren können Sie die Möglichkeiten des log4j Frameworks vollständig nach Ihren Bedürfnissen
konfigurieren und nutzen.
3 Die SAP-Komponente
3.1 Anforderungen
Die im Folgenden aufgelisteten technischen Anforderungen müssen erfüllt sein:
+ Die R/ Indexer SAP-Komponente läuft ab SAP ECC 6.0.
+ Um die ausgelieferten Funktionsbaustein-Templates jeweils anzupassen, wird ein SAP-Benutzer mit
Entwicklerschlüssel und Entwicklerberechtigungen benötigt.
3 Die SAP-Komponente
12
+ Zur RFC-Kommunikation mit der SAPERION Java Komponente wird ein System-Benutzer vom
Benutzertyp "Kommunikation" benötigt. Dieser braucht ebenfalls mindestens RFC-Berechtigung
sowie die Berechtigung auf die Entwicklungsklasse.
3.2 Installation
Prüfen Sie zunächst, ob der SAPERION Namensraum im SAP-Zielsystem angelegt ist. Falls noch kein
Namensraum angelegt wurde, können Sie dies über einen separaten Transport nachholen.
i Es wird ein SAP-Benutzer benötigt, der über die Berechtigung verfügt, Transporte ins SAP
einzuspielen.
1. Die R/ Indexer SAP-Komponente wird als separater SAP-Transport ausgeliefert.
Kopieren Sie die beiden R/ Indexer-Dateien "Rxxxxx.E01" und "Kxxxxx.E01" in die
jeweiligen Verzeichnisse für „data“ und „cofiles“ des SAP-Transportverzeichnisses auf
Betriebssystemebene.
2. Importieren Sie anschließend den Transport über die Transaktion STMS in das SAP-
System.
3. Überprüfen Sie nach dem Transport das Transportprotokoll. Es dürfen keine
Fehlermeldungen mit Return Code > 4 enthalten sein.
3.3 Konfiguration
Um den R/ Indexer zu konfigurieren, müssen Sie vorher die benötigten Daten in Form einer Datenanalyse
ermitteln.
Nachfolgend werden die einzelnen Schritte zur R/ Indexer-Konfiguration in SAP beschrieben.
3.3.1 Datenanalyse
Im Rahmen der Datenanalyse sollten folgende Fragen beantwortet werden:
+ Welche SAPERION-DDCs enthalten die zu indexierenden SAP Dokumente?
+ Aus welchen SAP-Tabellenfeldern soll gelesen und in welche SAPERION-Felder soll geschrieben
werden?
+ Werden Multivalue-Felder in SAPERION benötigt (tritt beim Lesen aus Positionstabellen auf)?
+ Welche Datentypklassen müssen aufeinander abgebildet werden (SAP-Feldtyp versus SAPERION
Feldtyp)?
+ In welcher Reihenfolge müssen die SAP-Tabellen abgefragt werden?
+ Müssen Zwischenergebnisse weiterverarbeitet werden?
+ Sind vor dem Einfügen in SAPERION Formatkonvertierungen bei den Abfrageergebnissen
notwendig (z.B. Kürzen von führenden Nullen)
3.3 Konfiguration
13
+ Welche Objektverknüpfungen (Kombination aus SAP-Dokumentart und SAP-Objekttyp) werden
verwendet?
3.3.2 Anpassung der Funktionsbausteine
Nachdem Sie die Datenanalyse durchgeführt haben, werden die notwendigen Funktionsbausteine in
SAP angepasst.
Als Vorlage können die ausgelieferten Templates dienen (siehe Auflistung im Anhang).
i Bitte übernehmen Sie in jedem Fall die Schnittstellenstruktur der Templates.
1. Legen Sie zunächst in der Transaktion SE80 ein neues Entwicklungspaket an und ordnen
dieses einem Transportauftrag zu (z.B. "Z_BC_INDEXER").
2. Legen Sie unter dem Entwicklungspaket eine neue Funktionsgruppe an und speichern
diese.
3. Kopieren Sie den Beispielfunktionsbaustein aus dem SAPERION-Transport und legen
diesen unter einem anderen Namen innerhalb der Funktionsgruppe an.
4. Je nach Anforderung können Sie den Code des Templates komplett löschen oder
anpassen. Wichtig ist nur, dass die Schnittstellenspezifikation nicht geändert wird. Dieser
Funktionsbaustein wird in einem späteren Schritt zu einem Objektverknüpfungsprofil
zugeordnet.
3.3.3 Profilnamen anlegen
1. Über die Transaktion SM30 wird die Tabelle /SAAG/IDX_PROFID gepflegt.
Abb. 3–1: Profile pflegen
2. Drücken Sie die Schaltfläche [Anzeigen], um eine Übersicht aller Profile zu erhalten.
3 Die SAP-Komponente
14
Abb. 3–2: Übersicht Profile
3. Klicken Sie auf das [Stift]-Symbol, um in den Änderungsmodus zu wechseln. Hier können
Sie ein neues Profil anlegen.
Abb. 3–3: Profil anlegen
4. Geben Sie neue eindeutige Profil-ID sowie einen aussagekräftigen Namen als
Beschreibung in die entsprechenden Eingabefelder ein.
3.3.4 Objektverknüpfungen zuordnen
1. Über die Transaktion SM30 wird die Tabelle /SAAG/IDX_CUSTFM gepflegt.
2. Klicken Sie auf die Schaltfläche [Anzeigen], um eine Übersicht über alle angelegten
Objektprofilverknüpfungen aufzulisten.
Über diese Konfigurationstabelle wird der Objektverknüpfung aus SAP Business Objekt
und der SAP-Dokumentart die zuvor angelegte Profil-ID zugeordnet
3.3 Konfiguration
15
Abb. 3–4: Übersicht Objektverknüpfungen
3. Klicken Sie auf das [Stift]-Symbol, um in den Änderungsmodus zu wechseln.
4. Klicken Sie auf die Schaltfläche [Neue Einträge], um ein neues Objektverknüpfungsprofil
anzulegen.
5. Nehmen Sie nun folgende Einträge vor:
+ Objecttype
Auswahl des des Business Objekts
+ Documentclass
Auswahl der Dokumentenart
+ Status
Profil-Objektverknüpfung de-/ aktivieren
+ Functionmodul
Funkionsbaustein, der für die Datenbeschaffung verwendet werden soll
+ Description
Beschreibung der Objektverknüpfung
3.3.5 Feldverknüpfungen festlegen
Die Zuordnung zwischen SAPERION DDC-Feldern und SAP-Tabellenfeldern wird in der
Konfigurationstabelle "/SAAG/IDX_QUERY" ebenso gepflegt, wie die Tabellenabfragen und
Feldformatierungen. Die Anzeige für die Tabelle ist über die Transaktion SM30 erreichbar.
1. Klicken Sie auf die Schaltfläche [Anzeigen], um alle angelegten Feldverknüpfungen
aufzulisten.
3 Die SAP-Komponente
16
Abb. 3–5: Übersicht Feldverlinkungen
2. Klicken Sie auf das [Stift]-Symbol und anschließend auf die Schaltfläche [Neue Einträge],
um ein neues Objektverknüpfungsprofil anzulegen.
Abb. 3–6: /SAAG/IDX_QUERY pflegen
3. Nehmen Sie nun alle notwendigen Einträge vor. Details zu einzelnen Parametern können
der nachfolgenden Tabelle entnommen werden.
Die einzutragenden Parameter haben folgende Bedeutung:
3.3 Konfiguration
17
Parameter der Feldverknüpfung
Parameter Beschreibung Bemerkung
Profil-ID Profil-ID aus der Tabelle /SAAG/IDX_CUSTFM eindeutiger Schlüssel für eine Objektverknüp-
fung
SAPERION Field Name des Zielfeldes in der SAPERION DDC Bitte achten Sie hier auf eine exakte Überein-
stimmung der Feldbezeichnungen (case-sensi-
tiv).
Verwenden Sie keine Sonderzeichen im Na-
men.
Field type Datentypklasse für das Zielfeld in SAPERION.
Folgende Datentypklassen stehen als Single-
oder Multivalue zur Verfügung:
INT: Ganzzahlen
FLOAT: Fließkommazahlen
STRING: Text
DATE: Datum
INT_M: Ganzzahl als Multivalue
FLOAT_M: Fließkomma als Multivalue
STRING_M: Text als Multivalue
DATE_M: Datum als Multivalue
Der R/ Indexer liefert nur Stringwerte zurück.
Der Postfix "_M" steht für Multivalue.
SAP Tablename Name der SAP-Tabelle
SAP Tablefield Name des SAP- Tabellenfeldes
Userexit FM Name des kundeneigenen Funktionsbausteins Dieser Funktionsbaustein muss genau einen
Wert zurückliefern. Er kann zum Beispiel zur
Berechnung von Werten oder zur Datenbe-
schaffung aus externen Systemen verwendet
werden
Value Fix Fester Wert Hier können Sie einen festen Wert hinterlegen.
Field Format Eine Funktionsnummer, die beim Aufruf einer
Formatklasse mitgegeben wird und eine Aktion
auslöst.
1: Löschen führender Nullen aus dem Wert.
Die Funktionsnummer repräsentiert die ge-
wünschte Funktion, z.B. "1" für das Löschen
von führenden Nullen eines übergebenden
Wertes.
Field Linkage Formel zur Zusammenführung von mehreren
Feldern über ihre Positionsnummer.
1+2+3: Verknüpfungen der Felder mit den Posi-
tionsnummern 1, 2, 3 innerhalb eines Verknüp-
fungsprofils.
Überprüfen Sie beim Hinzufügen oder Löschen
von Feldern in einem Profil, ob die Positions-
nummern noch stimmen.
Nachfolgend ist beispielhaft eine konfigurierte Feldverknüpfung dargestellt:
3 Die SAP-Komponente
18
Abb. 3–7: Beispielkonfiguration Feldverknüpfung
3.3.6 Positionsnummern aktualisieren
Nachdem die Feldverknüpfungen konfiguriert wurden, muss abschließend ein Report ausgeführt
werden, der innerhalb des Profils den jeweiligen Feldern eine Positionsnummer zuordnet.
1. Rufen Sie die Transaktion /SAAG/IDX_ADM4 auf.
Alternativ können Sie den Report "/SAAG/IDX_POSNR_TO_PROFIL" auch direkt über
die Transaktion SE38 aufrufen und über die F8-Taste starten.
Abb. 3–8: Profil Nummer
2. Tragen Sie im Eingabefeld "Profil Number" die Profil-ID ein. Durch eine Meldung wird die
erfolgreiche Zuordnung der Positionsnummern bestätigt.
i Wenn Sie mit der Option "Feldverknüpfung" arbeiten, sollten
Sie nach der Ausführung des genannten Reports die
Verknüpfungsformel noch einmal überprüfen.
3.4 Funktionsbaustein testen
Nachdem Sie den R/ Indexer wie oben beschrieben konfiguriert haben, können Sie die korrekte
Funktionsweise testen.
1. Rufen Sie die Transaktion SE 37 auf und geben den Funktionsbausteinname "/SAAG/
RFC_INDEXER_BC_V1" ein.
3.4 Funktionsbaustein testen
19
Abb. 3–9: Funktionstest SE37
2. Mit der F8-Taste führen Sie einen Funktionstest aus.
3. Tragen Sie nach dem Ausführen eine Dokumenten-ID als Importparameter ein.
i Die verwendete Dokumenten-ID muss einer Objektverknüpfung
zugeordnet sein, für die auch die Konfiguration durchgeführt wurde.
Abb. 3–10: Eingabe der Dokumenten-ID
4. Nach Ausführung des RFC-Funktionsbausteins erhalten Sie bei erfolgreicher Ausführung
und korrekter Konfiguration folgendes Ergebnis:
4 Inbetriebnahme des R/ Link Indexers
20
Abb. 3–11: Ergebnis des Indexer-Textlaufs
Die Export-Parameter "EV_STATUS =0" und "EV_MSG=Connection link available"
dokumentieren eine erfolgreiche Ausführung des Funktionsaufrufes und dass mindestens
ein Eintrag in den Verknüpfungstabellen gefunden wurde.
Wenn mehrere Dokumenten-IDs gleichzeitig abgefragt werden, zeigt der Tabellen-
Parameter "ET_DOC_STATUS" an, für welche Dokumente Treffer gefunden wurden.
5. Überprüfen Sie anschließend durch einen Doppelklick auf den Tabellenparameter
"ET_IDX_VALUES", ob die Konfigurationseinstellungen des R/ Indexers auch das
erwartete Ergebnis zurückliefern.
Abb. 3–12: Dokumentenattribute
4 Inbetriebnahme des R/ Link Indexers
1. Öffnen Sie die Windows Kommandozeile.
4.1 R/ Link Indexer als Aufgabe (Task) starten
21
2. Wechseln Sie zum Verzeichnis des entpackten Indexers.
3. Starten Sie das Tool mit dem Batch-Script "start.bat".
Optionen:
+ cron: cron-Scheduler
+ parallel: Indexer Threads laufen parallel
+ test: Indexer läuft im Testmodus
Die Kommandozeilen-Option überschreibt die Konfiguration in den
Konfigurationsdateien im "config/"-Verzeichnis.
4. Kontrollieren Sie den Ausgabe-Report.
4.1 R/ Link Indexer als Aufgabe (Task) starten
Wenn Sie den R/ Link Indexer als Aufgabe starten möchten, müssen Sie in dem Batch-Skript "start.bat"
sowie in der "log4j.properties"-Datei die "."-Angaben (so werden sie ausgeliefert) mit absolutem Pfad
zum Ziel des Indexer-Verzeichnisses angeben.
Beispiel
Das Installationsverzeichnis lautet "D:\Programme\SapIndexer\" in diesem Beispiel. Dementsprechend
sieht die Anpassung wie folgt aus:
+ "start.bat"
java -classpath D:/Programme/SapIndexer/; D:/Programme/SapIndexer/sapIndexer-7.1.2-final.jar
com.saperion.sap.indexer.SapIndexStarter %*
+ "log4j.properties"
log4j.appender.file.File= D:/Programme/SapIndexer/logs/sapIndexer.log
5 Anhang
5.1 Status Codes
Status Codes
Status Codes Beschreibung
0 Erfolg
1 Dokument/ Link nicht gefunden
2 Keine Konfiguration/ Falsche Konfiguration
5 Anhang
22
Status Codes Beschreibung
3 Unbekannter SAP-Fehler
5.2 Funktionstemplates
Funktionstemplates
Funktionsname Beschreibung
/SAAG/IDX_BKPF_V1 Lesen von FI-Eingangsrechnungen
/SAAG/IDX_BUS2012_V1 Lesen von MM-Bestellungsdaten
/SAAG/IDX_BUS2081_V1 Lesen von MM-Eingangsrechnungen
/SAAG/IDX_USEREX_V1 Beispiel für feldbezogenen User Exit
/SAAG/IDX_VBAK_V1 Lesen von Kundenauftragsdaten
/SAAG/IDX_VBRK_V1 Lesen von Kundenrechnungsdaten