Q: I was wondering if Limagito File Mover can generate an xml on output with the same name as the input filename.
A: Yes this is possible. In this case we’ll add a second Destination. This ‘Pascal Script’ Destination will create the Xml file. It will only generate this xml if the first Destination succeeds.
1.You can use any Source. In our example we used a Windows Folder.
2.We only want write the Xml file if the first Destination Succeeds. Therefore we have to select ‘Destination Memory & Exit Cyclus On Error’ as Destination Option in the Function Setup.
3. Add Pascal Script (PScript) as Second Destination
4. Pascal Script Destination Setup
We received the following example xml from the user (but we can generate other xml structures too):
<?xml version=”1.0″ encoding=”iso-8859-1″?>
<AdWatchData>
<adwatch-ad-number>HOU4001521801</adwatch-ad-number>
<file_name>HOU4001521801.pdf</file_name>
</AdWatchData>
We created the following Pascal Script which will generate the xml file. Please don’t forget to adjust the ‘ctOutputPath’ Const which will be different in your case. In our example we’ll create the xml file in: ‘C:\Test\Out\’.
Var
tmpFileExt: String;
tmpFileName, tmpFileNameNoExt: String;
tmpXml: TStringList;
Const
ctOutputPath = 'C:\Test\Out\'; // must end with a \
Begin
psExitCode:= 0;
tmpFileExt := ExtractFileExt(psFileName);
tmpFilenameNoExt := psStringReplace(psFileName, tmpFileExt, '');
tmpFileName := tmpFileNameNoExt + '.xml';
// Create XML
tmpXml := TStringList.Create;
Try
tmpXml.Add('')
tmpXml.Add('');
tmpXml.Add('' + tmpFileNameNoExt + '');
tmpXml.Add('' + psFileName + '');
tmpXml.Add('');
// Save to File
Try
tmpXml.SaveToFile(ctOutputPath + tmpFileName);
psExitCode := 1;
Except
psLogWrite(1, '', 'SaveToFile Error, File: ' + ctOutputPath + tmpFileName);
End;
Finally
tmpXml.Free;
End;
End.
5.RunTimeLog Result:
6. Generated Xml on Output:
#FileTransfer
Best regards,
Limagito Team