Hello,
I have a maintenance that imports data from xml files located in the server.
The maint is called with qupdating, yet still SERP freezes for all users while the import
is running.
The same happens if the function is called via background task
As far as I understand, NonStop maintenances allows system users to carry out their normal update
tasks while it runs, I need help. with locating what is wrong the below implementation :
Version 8.1 2016-02-12
Windows Server & Clients.
Selection of the relevant part of the code ..
global
updating function boolean DoClaimXmlFileImport(var string errstr)
begin
record AKClaimSubVc ClaimSubr, oldClaimSubr;
record AKClaimVc Claimr, Claim2r;
folder = "Claims//Submissions//Imports";
tofolder = "Claims//Submissions//Imports//Processed";
filename = GetFileNameInDir(folder,0);
if (blank(filename)) then begin
goto LDoClaimXmlFileImport;
end;
importfile = filename;
tofilename = filename;
filename = folder & "//" & filename;
xdata = ParseXMLFile(filename);
RecordNew(ClaimSubr);
curstrkey = "Claim.Submission/Header/";
senderid = XmlGet(xdata,curstrkey & "SenderID");
//reading and adding data to record .....
while (TestEOF==false) begin
ImportField;
NextImportLine(true);
end;
ClaimSubr.ImportCount = filecnt;
ClaimSubr.ImportFileName = importfile;
if (RecordStore(ClaimSubr,false)) then begin end;
UpdateBrowses("AKClaimSubVc");
MoveFile(tofilename,folder,tofolder);
eventdate = CurrentDate;
Logtext(0,"ClaimSubr.ImportCount: " &ClaimSubr.ImportCount);
AKUpdateClaimHist(ClaimSubr.SerNr,"","SubImp",ClaimSubr.TransactionDate,eventdate,filecnt,eventamount,sernr,"");
DoClaimXmlFileImport = false;
return;
end;
global
procedure ClaimXmlFileImportMn(record RcVc RepSpec)
begin
String 255 errstr;
Logtext(0,"DoClaimXmlFileImportRemote");
while (qupdating.DoClaimXmlFileImport(errstr)) begin
end;
return;
end;