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('<!--?xml version="1.0" encoding="iso-8859-1"?-->') 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