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);
}