Παραθέτω ένα κομμάτι απο κώδικα SBSL το οποίο δεν είναι κάτι ιδιαίτερο. Παίρνει κάποιες εγγραφές απο τον FINDOC, και αναλόγως εκτυπώνει μια φόρμα και αποθηκεύει το αρχείο σε ένα path. Στο τέλος, ενημερώνει ενα custom πεδίο στον FINDOC για να ξέρουμε αν τελικά αποθηκεύτηκε.
Ο κώδικας, ότι και να γίνει το πεδίο CCCESAVED θα το κάνει = 1 ότι και να γίνει με το αρχείο. Αν το path είναι λάθος ή δεν υπάρχει ή οτιδήποτε και να γίνει ο συγκεκριμένος κώδικας δεν το ξέρει. Υπάρχει τρόπος να πιάσουμε το αν τελικά το αρχείο αποθηκεύτηκε με κάποιο τρόπο;
fetch sDoc {
vRow = vRow + 1;
currFincode = 'Δημιουργία eINVOICE απο παραστατικό: ' + sDoc.FINCODE;
UserResp = SendResponse(vRow, currFincode, 'RESULTS.CURREC;RESULTS.LABELTEXT');
vFile2 = 'C:\\Users\\Admin\\' + VarToStr(sDoc.FISCPRD) + '\\' + VarToStr(sDoc.MTH) + '\\' + VarToStr(sDoc.FILENAME) + '.pdf';
if(sDoc.TFPRMS = 131) {
vModule = CallPublished('ModuleIntf.CreateModule', 'RETAILDOC,WARNINGS:OFF');
x = CallPublished('ModuleIntf.LocateModule',VarArray(vModule, sDoc.FINDOC, 2));
x = CallPublished('SysRequest.PrintForm', VarArray(vModule, 2200, VarToStr(:ImpTable.vPrinter), vFile2, 4));
} else {
vModule = CallPublished('ModuleIntf.CreateModule', 'SALDOC,WARNINGS:OFF');
x = CallPublished('ModuleIntf.LocateModule',VarArray(vModule, sDoc.FINDOC, 2));
if(sDoc.COUNTRY = 1000) {
x = CallPublished('SysRequest.PrintForm', VarArray(vModule, 9300, VarToStr(:ImpTable.vPrinter), vFile2, 4));
} else {
x = CallPublished('SysRequest.PrintForm', VarArray(vModule, 9301, VarToStr(:ImpTable.vPrinter), vFile2, 4));
}
}
if(/*Κάποια συνθήκη που δηλώνει οτι αποθηκεύτηκε*/) {
x = SafeExecSQL('SoftoneConn', 'UPDATE FINDOC SET CCCESAVED = 1 WHERE FINDOC = ' + VarToStr(sDoc.FINDOC), Null);
}}Str(:ImpTable.vPrinter), vFile2, 4));
} else {
vModule = CallPublished('ModuleIntf.CreateModule', 'SALDOC,WARNINGS:OFF');
x = CallPublished('ModuleIntf.LocateModule',VarArray(vModule, sDoc.FINDOC, 2));
if(sDoc.COUNTRY = 1000) {
x = CallPublished('SysRequest.PrintForm', VarArray(vModule, 9300, VarToStr(:ImpTable.vPrinter), vFile2, 4));
} else {
x = CallPublished('SysRequest.PrintForm', VarArray(vModule, 9301, VarToStr(:ImpTable.vPrinter), vFile2, 4));
}
}
x = SafeExecSQL('SoftoneConn', 'UPDATE FINDOC SET CCCESAVED = 1 WHERE FINDOC = ' + VarToStr(sDoc.FINDOC), Null);
}