Sage X3 silent import (IMPORTSIL) with error catching
You already know how to manually generate a CSV file in order to import it threw a template in Sage X3.
But If you wonder how to catch detailed errors after a silent import here is the solution.
Sometimes you need to catch the incoming errors in order to alert the end-user regarding an issue.
Closed period, wrong date etc ….
Unfortunalty the standard Sage X3 silent import function doesn’t natively show the detailed errors during the import process.
Call IMPORTSIL([M:IMP2]MODIMP,[M:IMP2]NOMIMP) From GIMPOBJ
And the standard function ERR_IMPORT will only show the overall status of the importation and not the detailed errors.
IMPORTSIL function is pushing all the log data into a tracefile in order to avoid any popup on end-user screen.
So you have a log file available in order to search for errors in it.
Sage X3 runtime is using the same principals standards as any shell for loging informations
0001 = Errors output
0000 = Standard output
Let’s make an example :
1) 4GL Silent import call
Raz [M:IMP2] [M:IMP2]MODIMP = YAOENAME # Import Template Name [M:IMP2]NOMIMP = YTMPFILE # File Location and Name [M:IMP2]TYPEXP = 2 # Server
Call IMPORTSIL([M:IMP2]MODIMP,[M:IMP2]NOMIMP) From GIMPOBJ Call ERR_IMPORT([M:IMP2]STAT, YMESSAGE) From GIMPOBJ If [M:IMP2]STAT or GOK < 1 : YRESTA += 1 # Import Error Else : YRESTA = 0 : Endif # Import Successful If !GSERVEUR : Call FERME_TRACE From LECFIC : Endif |
2) Log reading
Openi filpath(“TRA”,GTRACE,“tra”,0) Using [YTRA]
Local Char XLINE(100) Repeat Rdseq XLINE Using [YTRA] If left$(XLINE,5)=“<0001” # This is an error Append YMESSAGE(YRESTA), right$(XLINE,6) : YRESTA += 1 Break Elsif find(left$(XLINE,11), “Création de”) # This is OK [L]Y2_TSKNUM = right$(XLINE,13) Append YMESSAGE(YRESTA), [L]Y2_TSKNUM : YRESTA += 1 Endif Until fstat <> 0 Openi Using [YTRA] |