1

xml ドキュメントを取得するファイル リーダー チャネルがあります。デフォルトでは、ファイル リーダー チャネルはチャネル マップに「originalFilename」を入力します。これは、フル パスではなく、ファイルの名前のみを示します。ハードコーディングせずにフルパスを取得する方法はありますか?

4

3 に答える 3

3

次のように、ソース リーダーの任意のプロパティを取得できます。

var sourceFolder = Packages.com.mirth.connect.server.controllers.ChannelController.getInstance().getDeployedChannelById(channelId).getSourceConnector().getProperties().getProperty('host');

アクセスできる他のプロパティのリストとともに、Mirth フォーラムに投稿しました http://www.mirthcorp.com/community/forums/showthread.php?t=2210

于 2012-03-20T22:22:48.613 に答える
2

ディレクトリをチャネル デプロイ スクリプトに入れることができます。

globalChannelMap.put("pickupDirectory", "/Mirth/inbox");

次に、両方のソース コネクタでそのマップを使用します。

${pickupDirectory}

および別のチャネル スクリプトで:

function getFileLastModified(fileName) {
   var directory = globalChannelMap.get("pickupDirectory").toString();
   var fullPath = directory + "/" + fileName;
   var file = Packages.java.io.File(fullPath);
   var formatter = new Packages.java.text.SimpleDateFormat("yyyyMMddhhmmss"); 
   formatter.setTimeZone(Packages.java.util.TimeZone.getTimeZone("UTC")); 
   return formatter.format(file.lastModified()); 
};
于 2012-03-07T13:45:43.767 に答える
1

残念ながら、ファイルのフル パスを取得するための変数やメソッドはありません。もちろん、[ディレクトリ] フィールドにパスを入力する必要があるため、パスはすでにわかっているはずです。パスをチャネル変数に格納するためにプリプロセッサを使用して実験しましたが、ディレクトリ フィールドは変数を参照できません。したがって、必要なすべての場所にフルパスをハードコーディングする必要があります。

于 2009-11-24T22:14:06.773 に答える