2

このコードは、現在のすべてのバージョンのファイルを1つのフォルダーから別のフォルダーに移動しますが、古いバージョンはすべて移動しません。(コンテキストは、DocumentumにアクセスするDFCのJavaコードです。)

 String strObjId = versionColl.getString("r_object_id");
        com.documentum.fc.common.IDfId curObjectID = new DfId(strObjId);
        IDfSysObject curObj = (IDfSysObject)sess.getObject(curObjectID);
        versionlabel = curObj.getAllRepeatingStrings("r_version_label", ",");
        System.out.println("Moving document with Name:" + objName + "  and version:" + versionlabel);
        if (runMode.equals("1")) {
         curObj.unlink(oldpath);
         curObj.link(newpath);
         curObj.setString("a_special_app", curObj.getString("r_modifier"));
         curObj.setTime("a_last_review_date", curObj.getTime("r_modify_date"));
         curObj.setString("a_category","MOVED");
         curObj.save();
         System.out.println("Successfully Moved document with Name:" + objName + " and version:" + versionlabel);
        }

古いバージョンの移動中に発生したエラーは、「ドキュメントが不変」でした。そこで、不変フラグを一時的に無効にし、ファイルを移動できるようにしてから、不変フラグをtrueにリセットするこのコードを追加しました。

curObj.setBoolean("r_immutable_flag", false);

問題は、このコードが本番環境(Windows)でクラッシュしたときに、開発マシン(Windows)で完全に実行された(リンクエラーが発生した)ことでした。なぜこれがそのまま機能しているのか、そしてこの問題を解決するための他のコードについてのアイデアは素晴らしいでしょう。ありがとう。

4

1 に答える 1

1

与えられた小さな情報に基づいて、それは何でもかまいませんが、私の推測では、それは権限の問題である. 具体的には、このコードを実行しているユーザーに、移動しようとしているドキュメントの 1 つ (または複数) を移動するための適切なアクセス許可がないか、コードを実行しているユーザーに、オブジェクトをターゲット フォルダーにリンクするための十分なアクセス許可がありません。

于 2009-10-23T04:47:50.970 に答える