Log für F-Script
(Log-Viewer)
Fehlermeldungen bei IBOS oder SaveBo/DeleteBo
loggen mit dem OpaccERP Log-Viewer (BC 98235)
Benötigte
Scripts
XX-LOGDEF.FS
XX-LOGDEF.LB
XX-LOGDEF.FS
# ********************************************************************************************
#
# Standardscript für Protokollierung aus F-Script
#
# Author: Opacc Software AG - Team Scripting
#
# Erstellt: 31.05.2012
# ____________________________________________________________________________________________
#
# Protokollierung nach Script-Name aufgeteilt.
#
# ********************************************************************************************
#
# Beispiel Integration in Scripts
/Log.Template
# ____________________________________________________________________________________________
# 1) in jedem neuen Script am Anfang die benötigten Variablen initialisieren
«.XX-LOGDEF.FS(/Log.Init)»
#
# ____________________________________________________________________________________________
# 2a) Integration bei ALLEN Services (ERROR-HANDLING)
«nz XRES(res<Object>:mText)\I» «X(Log.Message=«XRES(res<Object>:mText)»)»
«nz X(Log.Message)\I»«nz X(Log.Error)\I» «.XX-LOGDEF.FS(/Common.Log.Error)»
#
# ____________________________________________________________________________________________
# 2b) Integration bei ALLEN IBOS (ERROR-HANDLING)
«nz~IS(GETI:OK)\I» «X(Log.Message=«IS(GETI:ERR_TXT)»)»
«nz X(Log.Message)\I»«nz X(Log.Error)\I» «.XX-LOGDEF.FS(/Common.Log.Error)»
#
# ____________________________________________________________________________________________
# 3) Integration für Debugging / Protokollierung allgemein
«nz X(Log.Info)\I» «X(Log.Info=befinde mich in Subroutine /XY)»«.XX-LOGDEF.FS(/Common.Log.Info)»
/
# ********************************************************************************************
# Initialisierungen (jeweils 1x am Anfang des Scripts)
/Log.Init
# Source
«X(Log.Source =«(uppercase("«CB(0)»"))\E»)»
# Eintrag automatisch erzeugen wenn nicht vorhanden
«X(Log.AutoCreate =1)»
# Detail (für z.B. Subroutinen)
«X(Log.SourceDetail =)»
# Mandant
«X(Log.OOClient =«MAND-NR»)»
# OO User
«X(Log.OOUser =«SYS(LOGADRNR)»)»
# Prozess
«X(Log.Process =Protokollierung F-Script)»
# Basis Log-Level ERROR
«X(Log.Level =8)»
# Text welcher protokolliert werden soll
«X(Log.Message =)»
# Prüfen ob Protokollierung grundsätzlich aktiv
«LIB(#,XX-LOGDEF.LB)»
«nz LIB(LOG.INFO.«X(Log.Source)»|,#)\I» «X(Log.Info =1)»
«nz LIB(LOG.ERROR.«X(Log.Source)»|,#)\I»«X(Log.Error =1)»
/
# ********************************************************************************************
# Integration Service Common.AddLogEntry
/Common.Log.Info
# Logeintrag schreiben
«XSER(createLog:Common.AddLogEntry)»
«XSER(createLog:addArg=4)»
«XSER(createLog:addArg=«X(Log.Source)»)»
«XSER(createLog:addArg=«X(Log.AutoCreate)»)»
«XSER(createLog:addArg=«X(Log.SourceDetail)»)»
«XSER(createLog:addArg=«X(Log.Message)»)»
«XSER(createLog:addArg=«X(Log.OOClient)»)»
«XSER(createLog:addArg=«X(Log.OOUser)»)»
«XSER(createLog:addArg=)»
«XSER(createLog:addArg=)»
«XSER(createLog:addArg=«X(Log.Process)»)»
«nXSER(createLog:execute>resLogEntry)\A»
/
#
/Common.Log.Error
# Logeintrag schreiben
«XSER(createLog:Common.AddLogEntry)»
«XSER(createLog:addArg=8)»
«XSER(createLog:addArg=«X(Log.Source)»)»
«XSER(createLog:addArg=«X(Log.AutoCreate)»)»
«XSER(createLog:addArg=«X(Log.SourceDetail)»)»
«XSER(createLog:addArg=«X(Log.Message)»)»
«XSER(createLog:addArg=«X(Log.OOClient)»)»
«XSER(createLog:addArg=«X(Log.OOUser)»)»
«XSER(createLog:addArg=)»
«XSER(createLog:addArg=)»
«XSER(createLog:addArg=«X(Log.Process)»)»
«nXSER(createLog:execute>resLogEntry)\A»
/
XX-LOGDEF.LB
# *********************************************************************************************
#
# Standardlibrary für Protokollierung aus F-Script
#
# Author: Opacc Software AG - Team Scripting
#
# Erstellt: 31.05.2012
#
# Protokollierung nach Script-Name aufgeteilt.
#
# *********************************************************************************************
# Library-Einträge pro Script jeweils INFO und ERROR
# _____________________________________________________________________________________________
#
# 0 = Log-Funktionalität ausgeschalten
# 1 = Log-Funktionalität eingeschalten
# _____________________________________________________________________________________________
#
# LOG.INFO --> WARNING (gelb)
# LOG.ERROR --> ERROR (rot)
# *********************************************************************************************
/Library
LOG.INFO.XX-VEVV.FF|1
LOG.INFO.VERPSAVE.FF|1
#
LOG.ERROR.XX-VEVV.FF|1
LOG.ERROR.VERPSAVE.FF|1
#
/
Beispiel
Das
Log in ein VEVV Script einbauen (Namen der Log Scripts: JE-LOGDEF.FS,
JE-LOGDEF.LB)
# ----- JE-VEVV.FF -----
/headerreport
# ______________________________________________________________________________________________________________________________
# Instanz für Protokollierung erzeugen
«X(FFKZ=JE)»
«.«X(FFKZ)»-LOGDEF.FS(/Log.Init)»
# ______________________________________________________________________________________________________________________________
# Dokumenttyp abfüllen
«X(Document.Type=«AUF-TYP»«AUF-SCUT»)»
# ______________________________________________________________________________________________________________________________
# DokumentId abfüllen
«X(Document.BoId=«AUF-DOKINR»)»
# ______________________________________________________________________________________________________________________________
# Referenz abfüllen (für z.B. Protokoll)
«X(Document.Reference=«AUF-TYP»/«AUF-SCUT» «AUF-NR»)»
# ______________________________________________________________________________________________________________________________
# Aktionen pro Verarbeitungsart (Nach Erstellen, Vor Verbuchen, ...)
«zCB(4)=1»«GOTO(# VEVV.Nach.Erstellen)»
/
# ────────────────────────────────────────────────────────────────────────
# ───── Nach Erstellen ─────
# ────────────────────────────────────────────────────────────────────────
/VEVV.Nach.Erstellen
# ______________________________________________________________________________________________________________________________
# VEVV.Nach.Erstellen
«nz POS(│«X(Document.Type)»│,│1N│1M│1W│2N│2R│3L│3N│3R│4L│4N│4R│5L│5N│5W│)\I»«/NE.FilialKontext»
/
#
/NE.FilialKontext
«X(Doc.FilialContext=«M-FREI4(«AUF-SACH-NR2»)»)»
«nIS(VER-DOK-MUT-DIV,«X(Document.BoId)»,,,,,,,,,,,,,,,,,«X(Doc.FilialContext)»,)»
«nz~IS(GETI:OK)\I» «X(Log.Message=«IS(GETI:ERR_TXT)»«(character("10"))\E»Dokument: «X(Document.Reference)»)»
#
«nz X(Log.Message)\I» «nz X(Log.Error)\I» «.«X(FFKZ)»-LOGDEF.FS(/Common.Log.Error)»
/