Here is my current soloution, The only issue with this is it isn't finding the value within the <Identifier>. Any suggestions?
recManufacturingSetup.FINDFIRST;
objFiles.RESET;
objFiles.SETFILTER(Path, '%1', recManufacturingSetup.AegisFolderPackoutRoot);
objFiles.SETFILTER(Name, '@*xml');
objFiles.SETRANGE("Is a file", TRUE);
IF objFiles.FINDSET(FALSE, FALSE) THEN REPEAT
recAegisPackoutImport."Folder Path" := objFiles.Path;
recAegisPackoutImport.Filename := objFiles.Name;
IF recAegisPackoutImport.FINDLAST THEN
recAegisPackoutImport."Line No." := recAegisPackoutImport."Line No." + 1
ELSE
recAegisPackoutImport."Line No." := 1;
recAegisPackoutImport.INSERT;
UNTIL objFiles.NEXT = 0;
//Get file names from table and remove end tags
IF recAegisPackoutImport.FINDSET THEN REPEAT
PackoutFileName :=
COPYSTR(recAegisPackoutImport.Filename,1,12);
//Check Whse Serial Batch List for existing Serial No.
whseSerialBatchList.RESET;
whseSerialBatchList.SETRANGE("No.", PackoutFileName);
IF NOT whseSerialBatchList.FINDFIRST THEN BEGIN
whseSerialBatchList."No." := PackoutFileName;
whseSerialBatchList.Insert;
//Read XML Doc and Find Identifier.
CLEAR(xmlDoc);
xmlDoc := xmlDoc.XmlDocument();
xmlDoc.Load(recAegisPackoutImport."Folder Path" + recAegisPackoutImport.Filename);
xmlRoot := xmlDoc.DocumentElement();
xmlNodeListPackoutData := xmlDoc.GetElementsByTagName('InventoryItem'); //ll
xmlNodePackoutData := xmlNodeListPackoutData.Item(intNode);
//Find the Value Within Identifier
FOR intNodeBatch := 0 TO xmlNodeListpackoutData.Count() -1 DO BEGIN
SerialNoText :=
cuXMLDOMManagement.FindNodeText(
xmlNodePackoutData,
'Identifier');
//Add Batch No to Serial No Information
recSerialNoInformation.RESET;
recSerialNoInformation.SETRANGE("Serial No.", SerialNoText);
IF recSerialNoInformation.FINDFIRST THEN BEGIN
recSerialNoInformation."Batch No." := PackoutFileName;
recSerialNoInformation.MODIFY;
CLEAR(SerialNotext);
END;
END;
END;
CLEAR(PackoutFileName);
UNTIL recAegisPackoutImport.NEXT =0;