Extender and Process Scheduler

Logging Script Results - Tips to Write Extender Scripts for Process Scheduler

Extender includes a LOG function. Process Scheduler can use the output from the LOG function to flag the step as "Success" or "Failure".

If the script returns "OK", Process Scheduler thinks it is a success, anything else is an error.

 

Refer to the Example Extender Script.py file in the VIXXA folder where Sage 300 is installed for details.

Copy

Log in script

# example 1 - log text only
def main(args):
    log("OK|0|This is the log message '" + args + "'")

# example 2
def main(args):
    status, errCnt, logmsg = ExtenderScriptFunction(args)
    t = status + "|" + str(errCnt) + "|" + logmsg
    #showMessageBox("Write back to OZ: " + t)
    log(t)

 

You can save the log in a text file (in the Sage 300 Shared data folder for example).

Set "logmsg" to the full path of the log file and you will be able to open the last log file from the Process Scheduler window.

This is particularly useful if the log is too long and is truncated when viewed in the Process Scheduler screen.

Write your log to a file, e.g. c:\shareddata\mylog.txt, then:

 

Copy

Log to File examples

# example 1 - log to a text file
def main(args):
    log("OK|0|c:\\shareddata\\mylog.txt")    

# example 2 - log only if script is called by Process Scheduler
def ImportInvoices():

    # clear the file and write in a start message:
    logToOZ("commence logging...", False, "w")
    # add code to function
    
    # return log to PS
    logmsg = getOrgPath() + "\\" + user + "_" + OZLogFile + "_" + today() + ".txt"
    if failCnt > 0:
        return "Error", failCnt, logmsg
    else:
        return "OK", 0, logmsg
        
def main(args):
    status, errCnt, logmsg = ImportInvoices()    
    t = status + "|" + str(errCnt) + "|" + logmsg
    if program == "AS1001":
        # assume it is being called by Process Scheduler:
        log(t)