新規フォームでオブジェクトモデルは取得できるのか

kisyaman 11views 更新:2017年8月2日

できない(はず)です。

事前に出勤ボタンが押下された後に、もともと開かれていた別のウィンドウで新規のフォームを作成したときに、打刻した時刻を新規の新規フォームに反映させる、というチケットに取り組んでいます。新規のフォームを作成した段階で、「すでにデータがあるよ!」と知らせる関数までは作れたのですが、すでにデータがある場合で、その打刻のデータを反映できないでいます。

まず最初に考えたのが、以下のように新規にオブジェクトモデルを取得し、this の clock_in_time に変数をセットする、ということです。これで、update の際にvelocity で呼んでいる $!result.ClockInTime.Hour で参照できると思いました。その後も色々と試したのですが、どうも上手く値がセットされませんでした。

EipTExtTimecard timecard = ExtTimecardUtils.getEipTExtTimecard(rundata, context);
this.clock_in_time.setValue(timecard.getClockInTime());

rundata も context も定義されているのに取得できないため、 そこでそもそもオブジェクトモデルを取得するためには他の条件も必要なのではないか、 ということで定義をみてみました。すると、以下の様に定義されていました。 なお、これが null になってしまうと、クエリを作ってフェッチするところまで進みません。 新規フォームに進む条件が、以下のパラメターが無いことですので、 新規フォームではオブジェクトが作れません。

String timecardid =
  ALEipUtils.getTemp(rundata, context, ALEipConstants.ENTITY_ID);

そこで、オブジェクトモデルを取得するのはやめて、 login_uid, session_date という2つのターゲットのレコードを限定できる 変数があるので、重複をチェックした関数と同じ要領で、該当するデータ・セットから最新のカラムを取得します。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません