Einleitung
Der CCM Prozessmonitor besteht aus einem Frontend, das zur Darstellung und Modifizierung der Daten dient, und einen Backend, in dem z.B. die Persistierung und Korrelation der Daten stattfindet.
Es wird ein Deployment mit einer Version von mindestens 1.6.10 vorausgesetzt.
UI-Module
Die Benutzeroberfläche (Module_CCMPM) wird standardmäßig mit dem Deployment ausgeliefert. Damit sie über ein Icon in der Navigationsleiste aufrufbar ist, muss sie über ein Rollenattribut eingebunden werden. Dieses muss dann allen Usern zugeordnet werden, die das Modul verwenden sollen.
Es besteht zusätzlich oder alternativ auch die Möglichkeit, die Prozesse in Form von Arbeitsvorräten im CCM anzeigen zu lassen (Module_CCMPM_AV). Dazu muss ein weiteres Rollenattribut angelegt und den Usern zugeordnet werden.
Einrichten der Rollenattribute
Im Modul “Benutzer und Rollen Administration/Attribute” werden die Rollenattribute wie folgt angelegt:
Rollenattribut Module_CCMPM (Einrichtung der Prozessmonitor-Oberfläche)
AttributId | Wert |
---|---|
Module_CCMPM | Override={view=mainView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,value=[id:'bptViewLinkButton';label:'CCM Prozessmonitor';isExtension:'false';type:'com.nextlevel.ccm.bpt.ui.swf';provider:'nextlevel.com';version:'1.0';container:'applicationViewStack';toolTip:'CCM Prozessmonitor';width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';iconURL:'images/famfamfam-icons/chart_pie.png']} |
Rollenattribut Module_CCMPM_AV (optional: Einrichtung als Arbeitsvorräte)
AttributId | Wert |
---|---|
Module_CCMPM_AV | Override={view=dummyView,type=AddChild,target=toolBarBox,name=org.b2bbp.ui.uicomponent.MainNavLinkButton,value=[id:'bptMonitor';label:'CCM Prozessmonitor AV';isExtension:'false';type:'com.nextlevel.ccm.bpt.ui.swf';provider:'nextlevel.com';version:'1.0';container:'applicationViewStack';toolTip:'CCM Prozessmonitor AV';width:'180';labelPlacement:'right';textAlign:'left';horizontalGap:'10';paddingLeft:'5';paddingRight:'5';iconURL:'images/famfamfam-icons/monitor.png']} |
Einrichten der Rollenzuordnung
Die neu angelegten Rollenattribut sollten der Admin-Rolle ccm_11 zugeordnet werden und evtl. zusätzlich einer spezifischen, neu anzulegenden Rolle ccm_processmonitor.
Diese Rolle kann dann allen Usern zugeordnet werden, die den CCM Prozessmonitor verwenden sollen.
Services
RFC-Service
Da das CCM Prozessmonitoring Modul seine Daten u.a. von I-SU Systemen erhält, muss eine Anbindung an diese Systeme konfiguriert werden. Hierfür wechselt man in die Administration und wählt den Reiter Services aus.
Die einzutragenden Werte können der nachfolgenden Tabelle entnommen werden.
Eigenschaft | Wert | |
---|---|---|
ID | Beliebig (z.B. RFC-CCMPM) | |
Name | Beliebig (z.B. CCM PM Sync) | |
Typ | RFC | |
Klasse | com.b2bbp.services.inbound.RFCService30 | |
Channel | Leer lassen | |
Richtung | Engine nach Business Partner | |
Status | Leer lassen | |
Erstellt von | Beliebig | |
Startup | Aktivieren |
Nach dem Anlegen des Services müssen diesem noch 3 zusätzliche Eigenschaften hinzugefügt werden (s. Abb. 1
Eigenschaften | Wert | Kontext überschreiben |
---|---|---|
B3P_JCO_DESTINATION_DATA_PROVIDER | CLIENT-CCMPM | Nein |
B3P_JCO_SERVER_DATA_PROVIDER | SERVER-CCMPM | Nein |
B3P_RFC_ZNLICCM_BPT_TRANSFER_DATA | com.nextlevel.ccm.bpt.inbound.BPTProcessService | Nein |
Die Konfigurationen der I-SU Systeme werden dann gesondert in den Extensions JCO_DESTINATION_DATA_PROVIDER und JCO_SERVER_DATA_PROVIDER eingetragen
Die Konfiguration dieser Extension wird nachfolgend beschrieben. Falls die Extensions bereits existieren müssen die untenstehenden Angaben nur hinzugefügt werden. Die Extensions sollten auf keinen Fall überschrieben werden.
Extension JCO_DESTINATION_DATA_PROVIDER
############################### CCM BPT
CLIENT-CCMPM=jco.client.lang=<Länderkürzel> z.B. DE
CLIENT-CCMPM=jco.destination.peak_limit=3
CLIENT-CCMPM=jco.client.client=<Mandantennummer>
CLIENT-CCMPM=jco.client.user=<Username>
CLIENT-CCMPM=jco.client.passwd=<Passwort - B2B-Base64 kodiert>
CLIENT-CCMPM=jco.client.sysnr=<Systemnummer>
CLIENT-CCMPM=jco.client.ashost=<Hostname oder IP-Adresse des I-SU>
CLIENT-CCMPM=jco.destination.pool_capacity=1
Extension JCO_SERVER_DATA_PROVIDER
SERVER-CCMPM=jco.server.connection_count=10
SERVER-CCMPM=jco.server.gwhost=<Hostname oder IP-Adresse des I-SU>
SERVER-CCMPM=jco.server.progid=<Programm ID>
SERVER-CCMPM=jco.server.gwserv=<Gateway Server>
SERVER-CCMPM=jco.server.repository_destination=CLIENT-CCMPM
Anpassen der Windows “services” Datei
Auf einigen Windows-Sytemen wird es ggf. notwendig sein, die “services” Datei anzupassen (z.B.: C:\Windows\System32\drivers\etc\services), falls es Probleme bei der Konnektivität zwischen Tomcat und SAP gibt. Prüfen, ob es dabei Probleme gibt, kann man z.B. mit der Ausführung von telnet auf der Kommandozeile. Der Port, der dabei getestet werden sollte, ist abhängig vom Gateway-Server (siehe Einstellungen für JCO_SERVER_DATA_PROVIDER oben). Endet der Gateway auf 00 (z.B. sapgw00), so kommunizieren Tomcat und SAP über den Port 3200. Falls das Gateway auf 05 endet ist der Port 3205 usw.
In der Datei wird dann eine zusätzliche Zeile eingefügt, etwa so:
sapgw00 3200/tcp #SAP port 3200
Process Instance Handler Service (Index-Service)
Für jeden eingerichteten Prozesstyp (z.B. Lieferbeginn, Lieferende, Sperrprozess) müssen zwei Services eingerichtet werden: Ein Indexer-Service für die Queue und ein Indexer-Service für die Error Queue.
Ab der Version 1.8.5 ist es möglich, die beiden genannten Services als INDEX-Services einzurichten. Aufgrund verbesserter Perfomance empfehlen wir diese Variante gegenüber der Einrichtung als SCHEDULER-Service. Die nachfolgende Tabelle gibt alle notwendigen Parameter an, die bei der Konfiguration der Services zu beachten sind.
Eigenschaft | Wert |
---|---|
ID | Beliebig (z.B. CCMPM_INDEXER) |
Name | Beliebig (z.B. CCMPM – Process Instance Handler) |
Typ | INDEX |
Klasse | com.nextlevel.ccm.bpt.services.ProcessInstanceHandlerService |
Channel | Leer lassen |
Richtung | Engine nach Business Partner |
Status | Leer lassen |
Erstellt von | Beliebig |
Startup | Aktivieren |
Nach dem Anlegen des Services müssen noch zusätzliche Eigenschaften hinzugefügt werden, die man der nachfolgenden Tabelle entnehmen kann.
Eigenschaften | Wert | Kontext überschreiben |
---|---|---|
B3P_PROCESS_TYPE_TO_BE_PROCESSED | Jeder Prozesstyp sollte seinen eigenen Indexer und Error-Indexer haben. Dieser Parameter gibt an, zu welchem Prozesstyp der Indexer gehört, z.B. BEGOFSUPPL für Lieferbeginn | Nein |
B3P_POLL_INTERVAL | Dieser Parameter setzt das Interval fest, mit welchem die Puffer-Tabelle gelesen werden soll (in Millisekunden). Ein geeigneter Wert ist z.B. 1000, was bedeutet, dass die Tabelle sekündlich geleesen wird. | Nein |
B3P_DO_DELETE_WHEN_PROCESSED | Gibt an, ob die verarbeiteten Datensätze aus der persistenten Queue (DB) gelöscht werden können (produktiv: true, zum debuggen: false); verarbeitete Datensätze werden in der DB markiert (Spalte processed=true) | Nein |
B3P_FORCE_INDEX_UNLOCK | Führt beim Starten der Verarbeitungen einen Unlock auf allen Indizes durch, falls diese gelockt sind (eher false) | Nein |
B3P_ENABLE_MERGE | Aktiviert die Merge-Funktion zum nachträglichen Zusammenführen von Prozessinstanzen (normalerweise false) | Nein |
B3P_FETCH_SIZE | Diese Eigenschaft gibt an, wie viele Einträge aus der Puffer Tabelle in einem Durchlauf gelesen werden sollen (z.B. 50). | Nein |
B3P_END_INSTANCE_WHEN_FINISH_STEP_ARRIVES | Aktiviert die Funktion, dass bei Erreichen eines Endschrittes der bestehende Vorgang sofort auf diesen Endschritt aktualisiert wird und der Vorgang die Gesamtstatusfarbe Gelb erhält. | Nein |
B3P_CHECK_DEADLINE_EACH_TIME | Wenn die Eigenschaft auf true gesetzt ist, dann wir bei jedem Dateneingang eine Fristenprüfung durchgeführt. So kann gewährleistet werden, dass auch bei einer beendeten Prozessinstanz ein gelber Fristenstatus gezeigt wird, falls es im Laufe der Verabeitung eine Fristenverletzung gab. | Nein |
Error Queue Service (Index-Service)
Analog zum oben genannten Service kann noch ein zweiter Service eingerichtet werden, der „aussortierte“ Datensätze erneut behandelt. Diese „aussortierten“ Datensätze werden in eine separate Error-Queue geschrieben, die in definierbaren Abständen neu behandelt werden. Der Service sollte als Kopie vom oben beschriebenen Process Instance Handler Service erstellt werden.
Eigenschaft | Wert |
---|---|
ID | Beliebig (z.B. CCMPM_ERROR_Q) |
Name | Beliebig (z.B. CCMPM – Error Queue Handler) |
Typ | INDEX |
Klasse | com.nextlevel.ccm.bpt.services.ErrorQueueService |
Channel | Leer lassen |
Richtung | Engine nach Business Partner |
Status | Leer lassen |
Erstellt von | Beliebig |
Startup | Aktivieren |
Zusätzlich zu dem oben genannten Service-Paramtern kommt noch eine wichtige Einstellung hinzu, siehe unten. Die restlichen Parameter können gleich bleiben.
Eigenschaften | Wert | Kontext überschreiben |
---|---|---|
B3P_ERROR_LEVEL_INTERVAL | Zeitabstände in Minuten zwischen den unterschiedlichen Errorstufen. Höhere Errorstufen sollten erst nach größeren Zeitabständen wieder neu behandelt werden. (z.B. 1,20,100) | Nein |
Optional (veraltet): Einrichtung als Scheduler Services
Neben der Möglichkeit 2, die oben genannten Services als Index-Services einzurichten, kann man diese auch als SchedulerServices einrichten (gängige Konfiguration vor Version 1.8.5).
Eigenschaft | Wert |
---|---|
ID | Beliebig (z.B. BPT_SCHEDULER) |
Name | Beliebig (z.B. BPT – Process Instance Handler) |
Typ | SCHEDULER |
Klasse: | org.b2bbp.service.inbound.scheduled.SchedulerRegisterService |
Channel | Leer lassen |
Richtung | Engine nach Business Partner |
Status | Leer lassen |
Erstellt von | Beliebig |
Startup | Aktivieren |
Statt den Klassennamen com.nextlevel.ccm.bpt.services.ProcessInstanceHandlerService bzw. com.nextlevel.ccm.bpt.services.ErrorQueueService bei der Einrichtung des Service anzugeben wird hier die Klasse org.b2bbp.service.inbound.scheduled.SchedulerRegisterService und der Servicetyp SCHEDULER angegeben. Keinefalls sollten Scheduler-Services UND Index-Services gleichzeitig konfiguriert werden. Da es sich um einen SchdulerService handelt müssen die typischen Scheduler-Parameter angegeben werden (B3P_DELAY_MINUTES, B3P_DELAY_REPEAT,B3P_SCHEDULER_NAME,B3P_SCHEDULER_TYPE und B3P_SCHEDULER_REGISTER_CLASSNAME).
Die restlichen Service-Attribute (B3P_DO_DELETE_WHEN_PROCESSED, usw.) bleiben gleich.
Global Properties
Falls es sich um ein verteiltes System handelt und die genannten Services auf unterschiedlichen Knoten konfiguriert sind, müssen diese in den Global Properties noch den Nodes zugeordnet werden (z.B. NODE_101 o.ä.).
Damit die Indizierung der eingehenden Daten funktioniert, müssen 4 neue Global Properties gesetzt werden die jeweils einen Pfad zu einem Index enthalten, siehe unten.
Eigenschaft |
Wert |
B3P_BPT_CONTROL_POINT_INDEX_DIRECTORY |
Pfad zu dem Ordner, in dem dieser Index gespeichert werden soll (z.B. |
B3P_BPT_INSTANCE_OVERVIEW_INDEX_DIRECTORY |
Pfad zu dem Ordner, in dem dieser Index gespeichert werden soll (z.B. |
B3P_BPT_OBJECT_INDEX_DIRECTORY |
Pfad zu dem Ordner, in dem dieser Index gespeichert werden soll (z.B. |
B3P_BPT_INSTANCE_ID_INDEX_DIRECTORY |
Pfad zu dem Ordner, in dem dieser Index gespeichert werden soll (z.B. |
B3P_BPT_MAX_RESULTS |
Maximale Anzahl der Suchergebnisse (z.B. 10000) |
Extensions
B3P_BPT_CONFIGURATION
Zusätzlich zu den bestehenden Extensions muss eine neue Extension namens B3P_BPT_CONFIGURATION angelegt werden. Für den Installationsprozess kann die Extension erst mal leer bleiben, wichtig ist nur, dass sie angelegt wurde.
In dieser Extension werden später die einzelnen Prozesstypen, die überwacht werden sollen, angelegt und konfiguriert. Eine genaue Beschreibung zur Konfiguration neuer Prozesstypen ist im CCM Prozessmonitoring Benutzerhandbuch zu finden.
B3P_BPT_OBJECT_CONF
Eine weitere Extension namens B3P_BPT_OBJECT_CONF kann angelegt werden, um sprechende Namen zu den übertragenen SAP Objekten und deren Statusinformationen zu hinterlegen. Nachfolgend einige Beispiele:
#Objekttypen
DISCDOC=Sperrbeleg
ISUPOD=Zählpunkt
…
#Sperrbeleg Statusinformationen (<OBJEKTTYP>_<OBJEKTSTATUS>)
DISCDOC_00=Neu
DISCDOC_01=Neu, Freigabe nicht erforderlich
DISCDOC_10=Freigegeben
EXTERNAL_LINK_METADATA (SAP Absprünge)
Damit aus dem CCM Prozessmonitoring Modul direkt in die SAP Systeme, die die Daten schicken, gesprungen werden kann, muss die Extension EXTERNAL_LINK_METADATA angepasst werden. Es gibt 2 Sets an Konfigurationen, je nachdem ob Dynamic Links verwendet werden.
Die Konfiguration ohne Dynamic Links muss wie folgt gesetzt werden:
isDynamic=false
EXTLINK_METADATA=objectsGrid.value.installCondition=type
EXTLINK_METADATA=objectsGrid.value.installConditionValue=ISUPOD
EXTLINK_METADATA=objectsGrid.value.installPath=objectsGrid.key
EXTLINK_METADATA=objectsGrid.value.uri=/b2bbp-engine/extLink
EXTLINK_METADATA=objectsGrid.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:SMEN
EXTLINK_METADATA=objectsGrid3.value.installCondition=type EXTLINK_METADATA=objectsGrid3.value.installConditionValue=DISCDOC EXTLINK_METADATA=objectsGrid3.value.installPath=objectsGrid.key EXTLINK_METADATA=objectsGrid3.value.uri=/b2bbp-engine/extLink EXTLINK_METADATA=objectsGrid3.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:EC87 EDISCD-DISCNO->$(value)
EXTLINK_METADATA=objectsGrid4.value.installCondition=type EXTLINK_METADATA=objectsGrid4.value.installConditionValue=IDOC EXTLINK_METADATA=objectsGrid4.value.installPath=objectsGrid.key EXTLINK_METADATA=objectsGrid4.value.uri=/b2bbp-engine/extLink EXTLINK_METADATA=objectsGrid4.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:*WE02 CREDAT-LOW->01.01.2013,DOCNUM-LOW->$(value)
EXTLINK_METADATA=objectsGrid5.value.installCondition=type
EXTLINK_METADATA=objectsGrid5.value.installConditionValue=SWTDOC
EXTLINK_METADATA=objectsGrid5.value.installPath=objectsGrid.key
EXTLINK_METADATA=objectsGrid5.value.uri=/b2bbp-engine/extLink
EXTLINK_METADATA=objectsGrid5.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:*ESWTMON01 SO_SWTDO-LOW->$(value)
EXTLINK_METADATA=objectsGrid2.value.installCondition=type
EXTLINK_METADATA=objectsGrid2.value.installConditionValue=PDOC
EXTLINK_METADATA=objectsGrid2.value.installPath=objectsGrid.key
EXTLINK_METADATA=objectsGrid2.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:*/IDXGC/PDOCMON01 SO_SWTDO-LOW->$(value)
EXTLINK_METADATA=objectsGrid2.value.uri=/b2bbp-engine/extLink
EXTLINK_METADATA=objectsGrid3.value.installCondition=type
EXTLINK_METADATA=objectsGrid3.value.installConditionValue=BPEM
EXTLINK_METADATA=objectsGrid3.value.uri=/b2bbp-engine/extLink
EXTLINK_METADATA=objectsGrid3.value.installPath=objectsGrid.key
EXTLINK_METADATA=objectsGrid3.value.uriParams=&sysId:$(systemId)&client:$(sysIdExtension)&command:*EMMAC3 EMMAD_CASEHDR-CASENR->$(value)
Die Konfiguration mit Dynamic Links muss wie folgt gesetzt werden:
isDynamic=true CONDITION=$(get.type)=ISUSWITCHD=BPT_EXTLINK_WB,$(get.type)=ISUTASK=BPT_EXTLINK_DA,TRUE=TRUE=BPT_EXTLINK_DEFAULT
BPT_EXTLINK_WB.GROUPS=System,User,Function
BPT_EXTLINK_WB.ELEMENTS.System=Name,Client
BPT_EXTLINK_WB.ELEMENTS.User=Name,Password,Language
BPT_EXTLINK_WB.ELEMENTS.Function=Command
BPT_EXTLINK_WB.System.Name=$(get.systemId)
BPT_EXTLINK_WB.System.Client=$(get.sysIdExtension)
BPT_EXTLINK_WB.User.Name=$(mappingTemplate,$(get.systemId),$(get.sysIdExtension),SAPUID)
BPT_EXTLINK_WB.User.Language=DE
BPT_EXTLINK_WB.User.Password
BPT_EXTLINK_WB.Function.Command=\*ESWTMON01 SO_SWTDO-LOW->$(get.value)
BPT_EXTLINK_DA.GROUPS=System,User,Function
BPT_EXTLINK_DA.ELEMENTS.System=Name,Client
BPT_EXTLINK_DA.ELEMENTS.User=Name,Password,Language
BPT_EXTLINK_DA.ELEMENTS.Function=Command
BPT_EXTLINK_DA.System.Name=$(get.systemId)
BPT_EXTLINK_DA.System.Client=$(get.sysIdExtension)
BPT_EXTLINK_DA.User.Name=$(mappingTemplate,$(get.systemId),$(get.sysIdExtension),SAPUID)
BPT_EXTLINK_DA.User.Password
BPT_EXTLINK_DA.User.Language=DE
BPT_EXTLINK_DA.Function.Command=\*WE02 CREDAT-LOW->01.01.2013, DOCNUM-LOW->$(get.value)
BPT_EXTLINK_DEFAULT.GROUPS=System,User,Function
BPT_EXTLINK_DEFAULT.ELEMENTS.System=Name,Client
BPT_EXTLINK_DEFAULT.ELEMENTS.User=Name,Password,Language
BPT_EXTLINK_DEFAULT.ELEMENTS.Function=Command
BPT_EXTLINK_DEFAULT.System.Name=$(get.systemId)
BPT_EXTLINK_DEFAULT.System.Client=$(get.sysIdExtension)
BPT_EXTLINK_DEFAULT.User.Name=$(mappingTemplate,$(get.systemId),$(get.sysIdExtension),SAPUID)
BPT_EXTLINK_DEFAULT.User.Password
BPT_EXTLINK_DEFAULT.User.Language=DE
BPT_EXTLINK_DEFAULT.Function.Command=SMEN
B3P_BPT_FACTORY_CALENDAR
Durch die Anpassung dieser Extension wird die Berechnungsgrundlage für die Fristenprüfung gegeben, falls die Zeiteinheit Werktage (WD) gewählt wurde. In der unten angegebenen Konfiguration werden Samstage wie Sonntage und die explizit genannten Feiertage nicht als Werktag gezählt.
days.excluded=SAT;SUN
01.01.2019
19.04.2019
22.04.2019
01.05.2019
30.05.2019
10.06.2019
20.06.2019
03.10.2019
01.11.2019
25.12.2019
26.12.2019
Datenbanktabellen
Zur Persistierung der eingehenden Daten müssen zwei neue Datenbanktabellen den bestehenden Tabellen hinzugefügt werden. Entsprechende Datenbankskripte finden sich in der Auslieferung.
Tabelle B2BBP_BPT_TRANSFER_DATA
Tabelle B2BBP_BPT_ERROR_Q
View Me Edit Me