ORDA:フォームの標準アクションaccept

<code 4D>
DIALOG(“Input”;ds.test.all()[0])
</code 4D>

こんな感じでFormオブジェクトにエンティティをわたしてみました。
保存しようとしたのですが動作しませんでした。

現状では保存ボタンに
<code 4D>
Form.save()
</code 4D>
を指定する必要があるようです。

Formの指している先がエンティティなのはわかるので、標準アクションのacceptで自動で行ってもらうのがよいと思います。

悲観ロックのカレントレコードであれば,
ダイアログを表示した時点で(Locked)が確定しているので,
標準アクションで保存しても構わないかもしれませんが,
楽観ロックのエンティティの場合,
entity.save() から返されるstatusの処理は実用上,不可欠なので,
標準アクションのacceptで保存,という従来の設計では,
問題になるのではないでしょうか。

: Keisuke MIYAKO

悲観ロックのカレントレコードであれば,
ダイアログを表示した時点で(Locked)が確定しているので,
標準アクションで保存しても構わないかもしれませんが,
楽観ロックのエンティティの場合,
entity.save() から返されるstatusの処理は実用上,不可欠なので,
標準アクションのacceptで保存,という従来の設計では,
問題になるのではないでしょうか。

場所的には保存ボタンしかないので
返ってきたステータスでエラーの場合にはアラート出して保存処理がキャンセルされるだけでは?

保存は,https://doc.4d.com/4Dv17/4D/17.1/ACCEPT.301-4179343.ja.htmlACCEPT>(コマンドまたは標準アクション)ではなく,MODIFY/ADD RECORD等がしていることですので,DIALOGの流れでACCEPTにOKに1を代入する以上の役割を持たせる,ということになると,

  1. マスターテーブルの概念がないので,どのエンティティ/セレクションを保存するのか不明
  2. 表示だけが目的なのか,更新・追加が目的なのか,意図が不明

など,いろいろ不都合が生じるように思うのですが,いかがでしょうか。

: Keisuke MIYAKO

保存は,https://doc.4d.com/4Dv17/4D/17.1/ACCEPT.301-4179343.ja.htmlACCEP

(コマンドまたは標準アクション)ではなく,MODIFY/ADD
RECORD等がしていることですので,DIALOGの流れでACCEPTにOKに1を代入する以上の役割を持たせる,ということになると,

  1. マスターテーブルの概念がないので,どのエンティティ/セレクションを保存するのか不明
  2. 表示だけが目的なのか,更新・追加が目的なのか,意図が不明

など,いろいろ不都合が生じるように思うのですが,いかがでしょうか。

なるほど:roll:
そうすると、例えばですがそのあたりの定義をフォームのプロパティなどに記述できれば対応可能ということですかね。
現状はds.xxxxx.save()の記述は必須なのはしかたないところなのか…残念

他でもかきましたが、ORDAつかって記述するといままで必要なかったコードをゴリゴリ書かないとけいないで
結構戸惑ってます。 :-?

: Keiji HOSAKA

いままで必要なかったコードをゴリゴリ書かないと・・・

たとえば,(命名)セレクションからリレーションしたセレクションの内容や,特定のフィールドだけを抽出した要約など,
デバッガでは確認できず,従来のUIでは「コードをゴリゴリ」記述しなければ表示もできなかった情報が,逆にORDAならすぐに実現できるのではないでしょうか。

従来の方法で簡単にできることをORDAで開発する必要は_ありません_。
ORDAは,是非,従来の方法では難しかったことのために使用してください。

加えて,ORDAでクエリしてhttps://doc.4d.com/4Dv17/4D/17.2/USE-ENTITY-SELECTION.301-4387631.ja.htmlUSE ENTITY SELECTION>したり,従来の画面で入出力してhttps://doc.4d.com/4Dv17/4D/17.2/Create-entity-selection.301-4387632.ja.htmlCreate entity selection >するなど,両者を組み合わせることもできます。

: Keisuke MIYAKO

たとえば,(命名)セレクションからリレーションしたセレクションの内容や,特定のフィールドだけを抽出した要約など,
デバッガでは確認できず,従来のUIでは「コードをゴリゴリ」記述しなければ表示もできなかった情報が,逆にORDAならすぐに実現できるのではない
しょうか。

従来の方法で簡単にできることをORDAで開発する必要は_ありません_。
ORDAは,是非,従来の方法では難しかったことのために使用してください。

加えて,ORDAでクエリして<https://doc.4d.com/4Dv17/4D/17.2/USE-ENTITY-SELECTION.3
1-4387631.ja.html>USE ENTITY
SELECTION>したり,従来の画面で入出力して<https://doc.4d.com/4Dv17/4D/17.2/Create-enti
y-selection.301-4387632.ja.html>Create entity selection

するなど,両者を組み合わせることもできます。

それは同意します。
やってみたらアレ?ってなったので率直な感想として書きました。
デベロッパとしては、現状なにに向いているのか判断した上でつかわないといけないということですよね。 :mrgreen:

とりあえず、レコードの更新/追加などがあるリストボックスなどは従来の方法のほうがよさそうです。マスタ登録画面とか
逆にカスタムの検索画面からの検索や候補からの選択などは有用なきがします。

同僚が社内システムにORDAを取り込んでいるのですが,
ほぼ同じようなことを感想として述べていました。

データの表示:

今まで複数のフォームを開いて参照していたリンク情報が,ORDAで連動させたところ,とてもすっきりしてみやすくなった

データの入力と更新:

当面,従来の画面を使用する。将来的には,USE ENTITY SELECTION/Create entity selectionでORDAミックスするかも

・・・とのことです。