Installationsanleitung für den CCM Prozessmonitor (SAP-Seite, Teil 5, Entwicklungsobjekte)

Paketstruktur

Alle Entwicklungen sind im Paket ZNLICCM_BPT abgelegt. Neben den allgemeinen Entwicklungsobjekten des Frameworks (Programm zur Jobausführung, Customizing- und Datentabellen sowie Handler-Klasse) beinhaltet das Paket noch die Unterpakete ZNLICCM_BPT_OBJECTS, ZNLICCM_BPT_DUMMY und ZNLICCM_BPT_EVENT_HANDLING

ZNLICCM_BPT_OBJECTS

Diese Paket beinhaltet alle Klassen zu den jeweiligen Objekttypen (Wechselbeleg, Sperrbeleg usw.).

ZNLICCM_BPT_DUMMY

Beispiel-Monitoring Prozess zum Test der Anbindung des CCM BPT.

ZNLICCM_BPT_DISCONNECT

Dieses Paket beinhaltet alle Entwicklungen, die für den Sperrprozess spezifisch sind. Dazu gehört die Klasse mit der Ausprägung der jeweiligen Messpunktabgleichsmethoden ZNLICCMCL_BPT_DISCONN_CP, die spezifische Ausnahme Klasse ZCX_NLICCM_BPT_DISDOC und eine die Nachrichtenklasse ZNLICCMMC_BPT_DISC.

ZNLICCM_BPT_SUPPLMGT

Dieses Paket beinhaltet alle Entwicklungen im Rahmen des Prozessmonitorings im Bereich Lieferantenwechsel.

ZNLICCM_BPT_EVENT_HANDLING

Dieses Paket beinhaltet alle Entwicklung zur Datenbeschaffung anhand der Systemereignisse (s. Kapitel 5.5 Event-Handling)

Schnittstellenbeschreibung IS-U zu B2B

Die Daten zu den einzelnen Messpunkten werden je Mandant gesammelt und über den Aufruf des RFC-fähigen Funktionsbausteins ZNLICCM_BPT_TRANSFER_DATA an die B2B-Seite übergeben. Der Funktionsbaustein hat folgende Parameter-Signatur:

 

Datenmodell

Customizingtabellen

Tabelle ZBPT_C_ADDPDK

Tabelle für die Definition von Schlüsseln für zusätzliche Prozessdaten (Keine Verwendung im Prototyp)

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |KEYTYPE|ZNLICCM_BPT_ADDPDK_E|Keytypen für zusätzliche Daten BPT Prozess| |KEYTYPETEXT|CHAR100|Freitext für beliebiegen Schlüssel|  

Tabelle ZBPT_C_CHK_COND

Tabelle für die Angabe von Sucheinschränkungen

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |OBJTYPE|ZNLICCM_BPT_OBJTYPE_E|BPT-Objekttyp| |NUM|EPARNUMBER|Parameternummer| |DBTABNAME|TABNAME|Tabellenname| |FIELDNAME|NAME_FELD|Feldname| |SIGN|DDSIGN| | |RANGE_OPTION|DDOPTION| | |LOW|RSDSSELOP| | |HIGH|RSDSSELOP| |  

Tabelle ZBPT_C_CHK_SEQ

Tabelle für die Festlegung der Reihenfolge beim Delta Datenabgleich

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |OBJTYPE|ZNLICCM_BPT_OBJTYPE_E|Objekttyp| |CHECK_ORDER|ZNLICCM_BPT_CHKORDER_E|Reihenfolge für die Suche nach Deltaobjekten| |CHECK_METHOD|ZNLICCM_BPT_SEARCHMETH_E|Methode zur Verfeinerung des Suchergebnisses|  

Tabelle ZBPT_C_CPGRP

Tabelle für die Gruppierung der Messpunkte mit einer ODER-Verknüpfung. Zugehörige Texttabelle ZBPT_C_CPGRPT

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |CPID|ZNLICCM_BPT_CPID_E|Messpunkt ID| |CPID_NEW|ZNLICCM_BPT_CPID_E|Messpunkt ID| |METHOD|ZNLICCM_BPT_METHOD_E|Methode zur Messpunktprüfung|  

Tabelle ZBPT_C_CPID

Tabelle für die Definition von Messpunkten je Prozesstyp. Zugehörige Texttabelle ZBPT_C_CPIDT

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |CPID|ZNLICCM_BPT_CPID_E|Messpunkt ID| |CHECK_ORDER|ORDNO|Reihenfolge| |METHOD|ZNLICCM_BPT_METHOD_E|Methode zur Messpunktprüfung| |EXIT_MP|ZNLICCM_BPT_EXIT_E|Kein weiterer Messpunkt kann erreicht warden| |ACTIVE|ACTIVE_FL|Aktiv (J/N)|  

ZBPT_C_EVOBJ2OBJ

Tabelle für die Zuordnung SAP Ereignisobjekt (BOR) zum Monitoring Objekt

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |EVT_OBJTYPE|SWO_OBJTYP|Objekttyp| |OBJTYPE|ZNLICCM_BPT_OBJTYPE_E|BPT: Objekttyp|  

Tabelle ZBPT_C_EXCPV

Tabelle für das Festlegen von ausgeschlossenen Messpunkten je festgelegter Prozessvariante

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |CPID|ZNLICCM_BPT_CPID_E|BPT: Messpunkt ID| |PVARIANT|ZNLICCM_BPT_PROCVARIANT_E|Prozessvariante|  

Tabelle: ZBPT_C_OBJTYPE

Tabelle für die Zuordnung Objekt zu Verarbeitungsklasse. Zugehörige Texttabelle: ZBPT_C_OBJTYPET

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |OBJTYPE|ZNLICCM_BPT_OBJTYPE_E|Objekttyp| |CLASS|ZNLICCM_BPT_CLASS_E|Verarbeitungsklasse für diesen Objekttypen|  

Tabelle ZBPT_C_OBJ_REL

Tabelle für die Beziehung der Objekte untereinander pro Prozesstyp

Feld Datenelement Beschreibung
MANDT MANDT Mandant
PROCTYPE ZNLICCM_BPT_PROCTYPE_E BPT: Prozesstyp des Monitoring-Prozesses
OBJTYPE ZNLICCM_BPT_OBJTYPE_E Objekttyp
PARENT_OBJTYPE ZNLICCM_BPT_POBJTYPE_E Parentobjekttypq
FINDPARENT_CLASS ZNLICCM_BPT_FINDPARENTCLASS_E Klasse zur Findung des Parentobjekts
FINDPARENT_METH ZNLICCM_BPT_FINDPARENTMETH_E Methode zur Findung des Parentobjekts
FINDPARENT_METH_INSTANCE ZNLICCM_BPT_FINDPARENTMETHIN_E Instanzmethode zur Findung des Parentobjekts

Tabelle ZBPT_C_PARA

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |PROCIDTYPE|ZNLICCM_BPT_PROCIDTYPE_E|Prozessidentifizierungstyp des Monitoring-Prozesses| |PARAM|ZNLICCM_BPT_PARAM_E|Parameter zur Steuerung des Programmablaufs| |POS|ORDNO|Reihenfolge| |VALUE|ZNLICCM_BPT_VALUE_E|Wert Parameter zur Steuerung Programmablauf|  

Tabelle ZBPT_C_PROCIDENT

Tabelle für die Zuordnung der Methoden zur Bestimmung der Prozessidentifier

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |PROCIDTYPE|ZNLICCM_BPT_PROCIDTYPE_E|Prozessidentifizierungstyp des Monitoring-Prozesses| |FINDPROCIDTYPE_M|ZNLICCM_BPT_FINDPROCIDMETH_E|Methode zur Findung des ProzessidentifizeirungsIDs| |MANDATORY|ZNLICCM_BPT_MANDATORY|BPT: Pflichtfeld Ja/Nein|  

Tabelle ZBPT_C_PROCIDTY

Tabelle für die Definition möglicher Prozessidentifizierungstypen. Die zugehörige Texttabelle ist ZBPT_C_PROCIDTYT.

Feld Datenelement Beschreibung
MANDT MANDT Mandant
PROCIDTYPE ZNLICCM_BPT_PROCIDTYPE_E Prozessidentifizierungstyp des Monitoring-Prozesses

Tabelle ZBPT_C_PROCTYPE

Tabelle für die Definition des Monitoring Prozesses und Zuordnung der Prozessklasse. Die zugehörige Texttabelle ist ZBPT_C_PROCTYPET.

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |PROCCLASS|ZNLICCM_BPT_CLASS_E|Verarbeitungsklasse|  

Tabelle ZBPT_C_PV

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |PVARIANT|ZNLICCM_BPT_PROCVARIANT_E|Prozessvariante| |OBJTYPE|ZNLICCM_BPT_OBJTYPE_E|BPT: Objekttyp| |CONDFIELD|NAME_FELD|Feldname| |CONDVALUE|RSDSSELOP_|’Generische’ SELECT-OPTION für dynamische Selektionen|  

Datentabellen

ZBPT_D_INDX

Datentabelle für die Ablage von zusätzlichen Daten je Prozessinstanz. Im Prototyp findet diese Tabelle bislang keine Verwendung.

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |RELID|INDX_RELID|Gebiet in Import/Export-Datentabelle| |SRFTD|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |SRTF2|INDX_SRTF2|Folgesatzzähler in Export/Import-Datentabelle| |LOEKZ|SYCHAR01|Löschkennzeichen| |AEDAT|SYDATS|Änderungsdatum| |USERA|USERNAME|Benutzer| |CLUSTR|INDX_CLSTR|Cluster-Daten| |CLUSTD|INDX_CLUST|Cluster-Daten|  

Tabelle ZBPT_D_LOG

Steuertabelle für das Logging der Abgleichsläufe.

|Feld|Datenelement|Beschreibung| |:—-:|————|————| |MANDT|MANDT|Mandant| |PROCTYPE|ZNLICCM_BPT_PROCTYPE_E|BPT: Prozesstyp des Monitoring-Prozesses| |FDATE|SYDATUM|Start Betrachtungszeitraum (Datum)| |FTIME|SYUZEIT|Start Betrachtungszeitraum (Uhrzeit)| |TDATE|SYDATUM|Ende Betrachtungszeitraum (Datum)| |TTIME|SYUZEIT|Ende Betrachtungszeitraum (Uhrzeit)| |STATUS|ZNLICCM_BPT_PROGSTAT_E|Programmstatus| |CNT|INT4|Anzahl der übertragenen Prozessinstanzen B2B|  

Klassen und Interfaces

Die Klasse ZNLICCM_BPT_HANDLER stellt die Kernkomponente dar. Über die Methoden PROCESS_DATA_DET, PROCESS_CP_CHECK und TRANSFER_DATA werden die 3 wesentlichen Schritte „Datenermittlung“, „Messpunktüberprüfung“ und „Datenübertragung“ des SAP seitigen Frameworks ausgeführt.

 

Damit die Ausführung zum jeweiligen Prozess passt, greift die Instanz der Klasse auf die zum Prozess ausgeprägte Messpunkt-Klasse zurück. Diese Klasse muss immer von der Klasse ZNLICCMCL_BPT_CP erben.

 

Darüber hinaus greift die Instanz von ZNLICCM_BPT_HANDLER noch auf die je Objekt vorhandene Kindklasse von ZNLICCMCL_BPT_OBJECT zu, damit das Delta je Objekt ermittelt werden kann.

Event-Handling/Event-Listener

Anhand der Konfiguration aller Monitoringprozesse entscheidet der Event Listener, ob das gefangene Event relevant ist. Relevante Events werden temporär gespeichert und dem Monitoring zur Verfügung gestellt.

Datenmodell

Da ein Objekt mehreren Prozessen zugeordnet werden kann, werden die Daten in zwei Tabellen temporär gespeichert. In Tabelle ZBPT_OBJ2ROC wird die Zuordnung Objekt zu Prozess vorgenommen. Das Objekt selbst wird in Tabelle ZBPT_OBJDATA vorgehalten.

Objekttabelle je Prozess – ZBPT_OBJ2PROC

|Schlüssel|Name|Datentyp|Beschreibung| |:—-:|————|————|—| |X|MANDT| | | |X|PROCTYPE|ZNLICCM_BPT_PROCTYPE_E| | |X|OBJECT_TYPE|ZNLICCM_BPT_OBJTYPE_E| | |X|OBJECT_KEY|SWO_TYPEID| | |X|DELE|DEL|Datensatz ist zu löschen|  

Objektdatentabelle – ZBPT_OBJDATA

|Schlüssel|Name|Datentyp|Beschreibung| |:—-:|————|————|—| |X|MANDT|MANDT| | |X|RELID|INDX_RELID| | |X|SRFTD|ZNLICCM_BPT_EVTOBJKEY_E| | |X|SRTF2|INDX_SRTF2| | | |OBJSTATUS|CHAR50| | | |AEDAT|AEDAT| | | |AETIME|TIME| | | |CLUSTR|INDX_CLSTR| | | |CLUSTD|INDX_CLUST||  

Funktionsbaustein ZNLICCM_EVENT_LISTENER

Der Funktionsbaustein hat folgende Signatur:

|Parametername|Art|Typ| |:—-:|————|————| |SENDER|IMPORT|SIBFLPORB| |EVENT|IMPORT|SIBFEVENT| |RECTYPE|IMPORT|SWFERECTYP| |HANDLER|IMPORT|SIBFLPORB| |EXCEPTIONS_ALLOWED|IMPORT|SWEFLAGS-EXC_OK| |XML_SIZE|IMPORT|SWF_XMLSIZ| |EVENT_CONTAINER|IMPORT|SWF_XMLCNT| |RESULT TYPE|EXPORT|SWFREVRSLT| |READ_FAILED|EXCEPTION|Lesen der Definition zur Aufgabe misslungen| |CREATE_FAILED|EXCEPTION|Erzeugen des Workitems misslungen|  

Der Funktionsbaustein fängt das Event und übergibt es einer Instanz der Klasse ZNLICCM_BPT_EVT_HANDLER.

Klasse ZNLICCM_BPT_EVT_HANDLER

Methode CONSTRUCTOR

PARAMETER:
IV_OBJTYPE
IV_OBJKEY

Diese Methode liest dasCustomizing und identifiziert alle potenziellen Prozesstypen.

Methode IDENTIFY_REL_PROCTYPE

Diese Methode instanziiert ein Objekt jeder möglichen Objektklasse. Es werden die folgenden Objekt-Interfacemethoden angeboten:

  • Methode 1: Liefert SELECT-Statements, die für das Objekt zu selektieren sind (dynamische Where-Klauseln)
  • Methode 2: Ausführen der SELECT-Statements
  • Methode 3: Füllen der Objektdaten anhand der SELECT-Statements. An dieser Stelle können mehrere Objekte zurückgeliefert werden.

Nacheinander werden die Objekte auf Prozessrelevanz geprüft. Auf Grund der zum Objekt selektierten dynamischen SELECT-Statements wird anhand der Suchkriterien des Customizing für dieses Objekt und des entsprechenden Prozesstypen geprüft ob die Angaben übereinstimmen. Sollte das Objekt für diesen Prozesstyp relevant sein, wird dieses in der Event-Handler-Instanz vermerkt.

Methode SAVE_DATA

Diese Methode speichert die Objekte an sich und die Zugehörigkeit zu dem Prozesstyp in den temporären Tabellen ab.

Klasse ZNLICCMCL_BPT_EVENT_DELTA

Diese Klasse ist dem Objekt „EVENT“ im Customizing zugeordnet. Es ist nur die Interfacemethode „ZNLICCMIF_BPT_OBJ_CLASS~CHK_DELTA“ ausgeprägt. Diese liest bei Aufruf die relevanten Objekte zum ausgeführten Prozesstyp aus dem temporären Tabellen aus und liefert sie als neue Objekt an den BPT-Handler zurück (sollten die Ereignisse in den Zeitraum passen).

Es wird in der temporären Tabelle ZBPT_OBJ2PROC vermerkt, dass das Objekt abgerufen wurde.

View Me   Edit Me