0

非常に多くのフィールドを持つテーブルがあります。jt400( flei00.write(newrec);) でデータを挿入しようとすると、エラーが発生しますCPF5035 Data mapping error on member FLEI00.。空のレコードまたはほとんど空のレコードを挿入しようとしても、エラー メッセージは同じです。どのフィールドが問題を引き起こしているかを知る方法はありますか? 私は一日中それと戦ってきましたが、何をチェックすればよいかわかりません:-(。ヘルプ(たとえば、詳細情報を探す場所)は大歓迎です。

4

1 に答える 1

3

IBM i では、ジョブ ログは、特定のジョブで発生したエラーの詳細を見つけるための場所です。JT400 ジョブの場合、JT400 アプリはソケット経由でサーバー ジョブに接続します。通常、これらのジョブは「事前に開始」されており、接続を待機しています。5250 インターフェースに慣れていない場合、これをナビゲートするのは難しい場合があります。

以下は、ジョブ ログ メッセージを取得する JT400 プログラムです。エラーが発生している同じセッションでこれを実行すると、問題の原因となっているフィールドに関する詳細が表示されます。

import java.util.*;
import com.ibm.as400.access.*;

public class TestJobLog {
    public static void main(String[] args) {

   int i = 0;

try {
    AS400 system = new AS400();

   JobLog jobLog = new JobLog(system);

   // what attributes?
   jobLog.clearAttributesToRetrieve();
   jobLog.addAttributeToRetrieve(JobLog.MESSAGE_WITH_REPLACEMENT_DATA);
   jobLog.addAttributeToRetrieve(JobLog.MESSAGE_HELP_WITH_REPLACEMENT_DATA);

   // load the messages
   jobLog.load();

    // Create a list and subset it
    Enumeration list = jobLog.getMessages();

   System.out.println("There are " + Integer.toString(jobLog.getLength()) + " messages.");

    while (list.hasMoreElements())  {
      i++;
      QueuedMessage message = (QueuedMessage) list.nextElement();
        String text = message.getID() +
                    " " + message.getType() +
                    " " + message.getText() + "\n" +
                    " " + message.getMessageHelpReplacement() + "\n";
        System.out.println(Integer.toString(i) + " " + text);
        }

   jobLog.close();

    System.exit(0);

    } catch (Exception e) {
        System.out.println(e);
    }

}
}
于 2013-12-12T19:52:12.053 に答える