OBJECT Codeunit 51000 Import witNAV STD { OBJECT-PROPERTIES { Date=19/11/18; Time=[ 9:08:15]; Modified=Yes; Version List=ADD.001; } PROPERTIES { OnRun=VAR l_cuFileMangement@1103358000 : Codeunit 419; BEGIN // Parameters g_txtDir := 'C:\Program Files\witNAV-gateway\server\xml'; IF l_cuFileMangement.SelectFolderDialog('Open Files',g_txtDir) THEN BEGIN g_txtDir += '\'; g_txtProcessedFolderName := 'Processed'; IF NOT l_cuFileMangement.ClientDirectoryExists(g_txtDir + g_txtProcessedFolderName) THEN l_cuFileMangement.CreateClientDirectory(g_txtDir + g_txtProcessedFolderName); g_intXMLPortNoReceivables := 51001; g_intXMLPortNoOrders := 51000; // Import Receivables f_ImportReceivables(g_txtDir,g_txtProcessedFolderName,g_intXMLPortNoReceivables); // Import Orders f_ImportOrders(g_txtDir,g_txtProcessedFolderName,g_intXMLPortNoOrders); IF (GUIALLOWED AND (g_intCobros <> 0)) THEN MESSAGE(FORMAT(g_intCobros) + ' imported receivables.'); IF (GUIALLOWED AND (g_intPedidos <> 0)) THEN MESSAGE(FORMAT(g_intPedidos) + ' imported orders.'); END; END; } CODE { VAR g_txtDir@1100262001 : Text[1024]; g_txtProcessedFolderName@1100262000 : Text[250]; g_intXMLPortNoReceivables@1100262002 : Integer; g_intXMLPortNoOrders@1100262003 : Integer; g_intCobros@1100262004 : Integer; g_intPedidos@1100262005 : Integer; PROCEDURE f_ImportReceivables@1100262001(txtPath@1100262000 : Text[1024];txtProcessedFolderName@1100262005 : Text[1024];intXMLPortNo@1100262001 : Integer); VAR txtFile@1100262002 : Record 2000000022; _File@1100262004 : File; _DatafileInstream@1100262003 : InStream; BEGIN txtFile.SETRANGE("Is a file",TRUE); txtFile.SETRANGE(Path,txtPath); txtFile.SETFILTER(Name,'receivable*'); IF txtFile.FIND('-') THEN BEGIN REPEAT // Import XML file _File.OPEN(txtFile.Path + txtFile.Name); _File.CREATEINSTREAM(_DatafileInstream); IF XMLPORT.IMPORT(intXMLPortNo, _DatafileInstream) THEN BEGIN _File.CLOSE; // Move XML file to processed folder IF f_moveFile(txtFile.Path + txtFile.Name,txtFile.Path,txtFile.Name,txtProcessedFolderName) THEN BEGIN COMMIT; g_intCobros += 1; END; END ELSE BEGIN XMLPORT.IMPORT(intXMLPortNo, _DatafileInstream); _File.CLOSE; END; UNTIL txtFile.NEXT = 0; END; END; PROCEDURE f_ImportOrders@1100262000(txtPath@1100262000 : Text[1024];txtProcessedFolderName@1100262005 : Text[1024];intXMLPortNo@1100262001 : Integer); VAR txtFile@1100262002 : Record 2000000022; _File@1100262004 : File; _DatafileInstream@1100262003 : InStream; BEGIN txtFile.SETRANGE("Is a file",TRUE); txtFile.SETRANGE(Path,txtPath); txtFile.SETFILTER(Name,'order*'); IF txtFile.FIND('-') THEN BEGIN REPEAT // Import XML file _File.OPEN(txtFile.Path + txtFile.Name); _File.CREATEINSTREAM(_DatafileInstream); IF XMLPORT.IMPORT(intXMLPortNo, _DatafileInstream) THEN BEGIN _File.CLOSE; // Move XML file to processed folder IF f_moveFile(txtFile.Path + txtFile.Name,txtFile.Path,txtFile.Name,txtProcessedFolderName) THEN BEGIN COMMIT; g_intPedidos += 1; END; END ELSE BEGIN XMLPORT.IMPORT(intXMLPortNo, _DatafileInstream); _File.CLOSE; END; UNTIL txtFile.NEXT = 0; END; END; PROCEDURE f_moveFile@1103358002(txtFullFilename@1103358000 : Text[1024];txtPath@1100262000 : Text[1024];txtFileName@1100262001 : Text[250];txtDestinationFolderName@1103358003 : Text[250]) blnMoveOk : Boolean; VAR Path@1103358002 : Text[250]; Name@1103358001 : Text[250]; BEGIN blnMoveOk := TRUE; IF NOT FILE.COPY(txtFullFilename,txtPath + txtDestinationFolderName + '\' + txtFileName) THEN BEGIN blnMoveOk := FALSE; END ELSE BEGIN IF NOT FILE.ERASE(txtFullFilename) THEN BEGIN blnMoveOk := FALSE; END; END; END; BEGIN END. } }