Schnittstellen-Monitoring
Die Objekte stehen für ORACLE und MSSQL bereit. Die Syntax in der Doku stammt aus den Oracle-Objekten, fachlich sind die MSSQL-Objekte identisch.
PRC_MON_START
Die Prozedur PRC_MON_START muss zu Beginn des Schnittstellenlaufs aufgerufen werden. Hier wird im Parameter p1_over_interfaceid
das sprechende ID-Kürzel der Schnittstelle übergeben. Falls es noch keinen Satz in der Tabelle INTERFACEOVER gibt wird dieser angelegt. Ein neuer Satz in der Tabelle INTERFACEDETAIL wird erstellt, der Primärschlüssel wird zur weiteren Verwendung im Parameter p2_detail_pk
zurückgeliefert.
create or replace procedure PRC_MON_START
(p1_over_interfaceid in varchar2 /* INTERFACEOVER.INTERFACEID */
,p2_detail_pk out varchar2) /* INTERFACEDETAIL.PK */
is /* Dokumentiert den Schnittstellenstart */
PRC_MON_INFO
Die Prozedur PRC_MON_INFO kann während des Schnittstellenlaufs mehrmals aufgerufen werde. In Parameter p2_detail_resultdetail
wird der zu protokollierende Text übergeben. In Parameter p1_detail_pk
muss der aus der Prozedur PRC_MON_START stammende Wert übergeben werden.
create or replace procedure PRC_MON_INFO
(p1_detail_pk in varchar2 /* INTERFACEDETAIL.PK */
,p2_detail_resultdetail in clob) /* INTERFACEDETAIL.RESULTDETAIL */
is /* Fuegt Protokollinhalt hinzu */
PRC_MON_END
Die Prozedur PRC_MON_END muss am Ende des Schnittstellenlaufs aufgerufen werden. Der Parameter p2_detail_resultstatus
muss die Ausprägung "OK" oder "ERROR" haben. In Parameter p1_detail_pk
muss der aus der Prozedur PRC_MON_START stammende Wert übergeben werden.
create or replace procedure PRC_MON_END
(p1_detail_pk in varchar2 /* INTERFACEDETAIL.PK */
,p2_detail_resultstatus in varchar2) /* OK|ERROR */
is /* Dokumentiert das Schnittstellenende */
Aufruf der SQL-Skripte per BPM
Die o.a. Prozeduren lassen sich innerhalb BPM wie folgt aufrufen
void startLogging()
{
String[] sqlparam = [ProcessUtils.getVariable("intOverName")];
if(ScriptUtils.isEmpty(sqlparam)) sqlparam = ["DUMMY"];
Class[] sqlretcl = [String.class];
Object[] returnVal = LogicScriptUtils.executeProcedure("call evijet.PRC_MON_START(?,?)", sqlparam , sqlretcl);
ProcessUtils.setVariable("constInterfaceDetailPk", returnVal[0]);
}
void endInterfaceRun()
{
meantimeLog("Schnittstellenlauf abgeschlossen.");
String[] sqlparam = [ProcessUtils.getVariable("constInterfaceDetailPk"),"OK"];
Class[] sqlretcl = [];
Object[] returnVal = LogicScriptUtils.executeProcedure("call evijet.PRC_MON_END(?,?)", sqlparam , sqlretcl);
}
void meantimeLog(String messageText)
{
String[] sqlparam = [ProcessUtils.getVariable("constInterfaceDetailPk"), "["+ DateUtils.convertDateTimePattern(DateUtils.NOW , "HH:mm:ss")+ "] " + messageText];
Class[] sqlretcl = [];
Object[] returnVal = LogicScriptUtils.executeProcedure("call evijet.PRC_MON_INFO(?,?)", sqlparam , sqlretcl);
}