Twitter

 8.5.x 

Dateioperationen und LotusScript - 2 die nicht zusammenpassen

Michael Siegrist  8 März 2013 15:28:04
 
Dateioperationen mit Lotusscript bringen so ihre Tücken mit sich. Wenn andere Zeichensätze (z.B. hebräisch, kyrillisch, usw) beteiligt sind, wird es problematisch. Die schon länger bei IBM veröffentlichte
Technote 1284370 beschreibt das Problem und rät, kein Lotusscript sondern Java zu nutzen.
Mit LS2J kann man den kompletten Wechsel von Lotusscript nach Java umgehen und nur die Dateioperationen in Java implementieren.

Ein Beispiel einer einfachen Java-Klasse , welche mit LS2J angesprochen werden kann, findet sich hier :

import java.io.File; 

public class LS2J_File_Handling {

 public static String title = "LS2J File Handling Tools";
 
 public String renameFile(String file, String toFile) {
         File toBeRenamed = new File(file.replace("\\","/"));
         if (!toBeRenamed.exists() || toBeRenamed.isDirectory()) {
                 return("False");
         }
         File newFile = new File(toFile.replace("\\","/"));
         if (toBeRenamed.renameTo(newFile)) {
                 return("True");
         } else {
                 return("False");
         }
 }

 public String checkFile(String file ) {
         File toBeChecked = new File(file.replace("\\","/"));
         if (!toBeChecked.exists() || toBeChecked.isDirectory()) {
                 return("False");  
         } else {
                 return ("True");
         }
 }

 public String deleteFile(String file ) {
         File toBeDeleted = new File(file.replace("\\","/"));
         if (!toBeDeleted.exists() || toBeDeleted.isDirectory()) {
                 return("False");  
         } else {
                 try{
                         if (toBeDeleted.delete()) {
                                 return("True");
                         } else {
                                 return ("False");
                         }
                 }catch(Exception e){
                         return ("False");
                 }
         }
 }        
}

Sinn und Zweck von renameFile, checkFile und deleteFile sollten relativ einfach zu verstehen sein.

Zum Rufen der Java-Methoden benötigt man in LotusScript folgendes:
(Options) 
Uselsx "*javacon"
Use "LS2J_File_Handling"

Codefragment:

[.....]
strFileOld = "c:\Tmp\Test.txt"
strFileNew = "c:\Tmp\Test%_%תיק ניסיון.txt"

'Java Part Start
Dim jClass As JavaClass
Dim jObject As JavaObject
Dim jSess As JavaSession
Set jSess= New Javasession
Set jClass = jSess.GetClass("LS2J_File_Handling")
Set jObject =jClass.CreateObject

result = jObject.renameFile(strFileOld,strFileNew)
'Java Part End
[.....]

Damit umgeht man diese leidige Limitierung von LotusScript.