Interface monitoring
The objects are available for ORACLE and MSSQL. The syntax in the documentation comes from the Oracle objects, technically the MSSQL objects are identical.
PRC_MON_START
The PRC_MON_START procedure must be called at the beginning of the interface run. In the p1_over_interfaceid
parameter, the meaningful ID code of the interface is passed here. If there is no set in the INTERFACEOVER table, it is created. A new set is created in the INTERFACEDETAIL table, the primary key is returned in parameter p2_detail_pk
for further use.
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
The PRC_MON_INFO procedure can be called several times during the interface run. The text to be logged is passed in parameter p2_detail_resultdetail
. The value from the PRC_MON_START procedure must be passed in parameter p1_detail_pk
.
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
The PRC_MON_END procedure must be called at the end of the interface run. The p2_detail_resultstatus
parameter must be "OK" or "ERROR". The value from the PRC_MON_START procedure must be passed in parameter p1_detail_pk
.
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 */
Calling SQL scripts using BPM
The above procedures can be called in BPM as follows
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);
}