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