4D v18 R4での新機能

ORDA クラス

ORDAを使用して、データモデル上に高レベルクラス関数を作成することができるようになりました。これを使用してビジネス指向のコードを書いて複雑性を隠したり、エラーを減らしたり、開発プロセスのスピードを向上させたりすることができます。また、RESTサーバーを使用することでプロジェクトをAPIのように公開することもできます。

データモデルを管理するORDAクラス

ORDAのストラクチャー(データストア、データクラス、エンティティ、エンティティセレクション)は、特定のORDA クラスにリンクした、高度に特化したオブジェクト型から構成されています。これはつまりデータの実際の実装の煩雑性を隠した関数を書くことができるということを意味します。

ORDAクラスはアプリケーションプロジェクトで自動的に使用可能になります。4Dは以下のものを自動的に作成します:

  • DataStore: データストアに関連した関数を実装する
  • DataClass クラス: データクラスに関連した関数を実装する
  • Entity クラス: エンティティに関連した関数を実装する
  • EntitySelection クラス: エンティティセレクションに関連した関数を実装する

 

ORDA データモデルクラスとREST

ORDA データモデル用に定義されたクラス関数はREST リクエスト経由で呼び出すことができ、これによって目的の4Dアプリケーションプロジェクトの公開されたAPIを活用することができます。このとき、関数は必ずREST POST リクエストを使用して呼び出す必要があるという点に注意してください。

 

プログラミング関連の新機能

サーバーコードの開発

サーバーコードの開発とデバッグはプロジェクトアプリケーションにおいて容易になりました。コードを変更した後にいちいちサーバーアプリケーションを再起動する(標準モード)のではなく、4D Serer と同じコンピューター上にある4D リモートから接続することで、リモート側からプロジェクトファイル(コード、フォーム定義、リソース、など)を編集することが可能になります。

4D Developer クライアントが同じコンピューター上にある4D Serverへと接続した場合、.4DZ ファイルはサーバーからクライアントへと渡されません。4D リモートはプロジェクトファイル(メソッド、フォーム定義、リソースなど)をシングルユーザー版の4Dと同じように管理します。この方法なら、コードを編集して即座にそれをテストすることができます。

変更したファイルをサーバー側でリロードしたい場合、開発環境をアプリケーションモードへと切り替え、4D Server を最前面にもってくるか、または4D リモート側の”ファイル -> 全て保存“メニューを選択してください(あるいは、新しいRELOAD PROJECT コマンドを使用することでも可能です)。

クライアント側でメソッドを実行するのは、”全て保存“アクションを実行するのと同じ効力を持ち、結果として変更されたファイルをサーバー側でリロードする、という点に注意してください。

フォームオブジェクトの値にプログラミングを使用してアクセスする

変数や式に関わらず、フォームオブジェクトの値にアクセスするのを手助けするために、二つの新しいコマンドが追加されました。OBJECT Get value および OBJECT SET VALUE です。フォームオブジェクトから値を取得するためにはOBJECT Get value コマンドを使用し、フォームオブジェクトの名前を引数として渡します。同じようにフォームオブジェクトの値を設定するためには、OBJECT SET VALUE コマンドを使用し、フォームオブジェクトの名前と新しい値を引数として渡します。

 

新しい型宣言シンタックス

変数の宣言のための新しいシンタックスが利用できるようになりました。これにはvar キーワード使用し、変数の名前と型を宣言します。新しいシンタックスを使用すると変数を宣言する際の自動補完を大幅に向上させることができます。また同じデータベース内において、変数の宣言で従来のシンタックスと新しいシンタックスを併用することができます。

 

クロスオリジンリソース共有(CROS)のサポート

CORS プロトコルは、Webページが自身以外のドメインへリクエストを送るのを防ぎます。しかしながら、他のサイトがHTTP リクエストをあなたのサーバーへと送り、データなどを取得するのを許可したい場合、以下のような方法でそれを許可することができます:

  • プログラミングで許可: 新しいWEB SET OPTION および WEB Server コマンドを使用することで、特定のアクション(GET、POST、HEAD、PUT)が許可されたドメインを引数として受け取ります。
  • データベース設定で許可: 設定 > Web > オプション(II) ウィンドウにおいて設定することができます。

 

リストボックス

リストボックスの上級者向け機能がライセンスなしで利用可能に

リストボックスの上級者向け機能を使用するのに、4D View Pro ライセンスは不要となりました。無料で利用できるということです!今後は以下のような機能を持ったリストボックスを誰でも作成することができます:

  • 各行の高さをコンテンツに応じて自動的に調整する(これによってテキストまたはピクチャーの全体が表示されるようになります)
  • カラムに対してオブジェクト配列を使用する(これによって単一のリストボックスのカラムに様々なタイプの値を入力/表示できるようになります)

 

 

 

コードで移動可能行を設定

配列型リストボックスの場合、エンドユーザーが行を動かせるかどうか(例: グループ行を再編成したい等)をデザインモードで定義することができます。LISTBOX SET PROPERTY および LISTBOX Get property コマンドは lk movable rows 新しいプロパティをサポートするように新しくなりました。

 

管理

ユーザーに権限を動的に付与

独自のユーザー管理システムを使用する機能とSET USER ALIAS コマンドに加え、v18 R4ではエンドユーザーの権限を管理する機能が追加されました。新しいSET GROUP ACCESS コマンドを使用すると、ユーザーのグループ所属情報を動的に変更することができます。

Eメール

IMAPを使用してEメールを受信

4D v18 では、Eメールの新しい送信方法が導入されました。4D v18 R2 では、POP3を使用してEメールを取得する新しい方法が追加されました。4D v18 R4では、IMAP プロトコルを管理する新しい方法を初めて導入します。SMTP やPOP3 の時と同様、IMAP プロトコルを管理するための新しいIMAP New transporter コマンドが追加されました。またメールボックスを選択したりEメールをダウンロードするためのコマンドも追加されました。将来的なリリースでは、他のIMAP 機能のためのコマンドが追加されていく予定です。

4D for iOS

プッシュ通知

4D for iOSで、プッシュ通知が使用できるようになりました。これはユーザーに、よりアプリを使用するようになるための関連性のある情報を提供します。シンプルにプッシュ通知メッセージとタイトルを定義してください。そうすれば、あとは4D for iOSが送信プロセスを自動的に管理してくれます。

これに加えて、iPhone にインストールされたアプリでプッシュ通知が有効化されていれば、その通知をApple Watch で受け取ることもできます!

 

Eメール認証

4D for iOS では、アプリにログインしようとしている人の信ぴょう性と正当性を容易に評価します。それはEメールを、ログインしようとしている人に送信することで認証するというものです。基本的には、このプロセスはユーザーのセッションのステータスを更新することでアプリケーションへのアクセスを付与します:

  • ユーザーが自身のEメールアドレスをログインフォームで入力し、ログインボタンをクリックすると、そのセッションのステータスは更新され”pending”になります。
  • 次にユーザーに認証Eメールが送られます。ユーザーがメール内のリンクをクリックすると、セッションのステータスは更新され“pending” から “accepted”になります。
  • 認証プロセスが完了すると、ユーザーはアプリを再起動することができ、セッションのステータスが“accepted” であることから、アクセス権が付与されます。

このプロセスを管理し、容易にするためのコンポーネントも提供されていますので、この認証プロセスを必要な形で採用するこができます。

 

テンプレートから詳細フォームをビルドする

詳細フォームのテンプレートがスクロール可能になったことで、フィールドを好きな数だけドロップすることができるようになりました。詳細フォームにフィールドを追加するためにはたくさんの方法があります:

  • 空のテンプレートを選択すれば、制約なしにフィールドを全てドロップすることができます。
  • フィールドをビュー内のどこにでもドラッグ&ドロップできます。そして最後に追加されたフィールドの後か、または他の既に表示されているフィールドの間に即座に表示されます。
  • フィールドをダブルクリックします。フィールドはリストの最後に追加されます。
  • 左側のフィールド一覧の利用可能なフィールドをどれか右クリックします。するとメニューが表示され、それを使用して詳細フォームに必要なフィールドを追加することができます。

 

セキュリティ

新しいCryptokeyクラス

一般的な暗号オペレーション(署名と認証、暗号化、復号化、など)を実行するためのメソッド群を提供する、新しいクラスが提供されました。CryptoKey クラスです。これを利用するとデータの秘匿性を保護したり、メッセージの整合性を検証したり、送信者の正当性を検証したりするための方法を提供します。これを使用すると以下のようなことができます:

  • 秘匿性: データを認証されてないアクセスから保護する
  • 整合性: データが完全で正しいかどうかを保証する
  • 正当性: メッセージの送信者/受信者の正当性を検証する

クイックレポート

バーチャルストラクチャーのサポート

クイックレポートにおいてバーチャルストラクチャーを使用することが可能になりました。これを使用すると、代替テーブル名/代替フィールド名(エイリアス)を設定することが可能になり、テーブルやフィールドをエンドユーザーにより分かりやすくさせることができます。

 

4D write Pro

PDFへの直接書き出し

印刷ドライバーや追加のソフトウェアを何もインストールすることなく、4D Write Pro ドキュメントを直接PDFフォーマットで書き出すことができるようになりました。直接書き出しは早くて信頼できるだけではなく、その書き出し結果をより精細にコントロールすることができるようになります。またハイパーリンクのサポートに加え、画像サイズなどを最適化することができるようになりました。WP EXPORT DOCUMENT コマンドは新しいwk pdf 定数をサポートするようにアップデートされました。

フォーミュラ: キャリッジリターンの振る舞いを管理する

キャリッジリターンの扱いを定義するための新しいドキュメントプロパティwk break paragraphs in formulas が利用できるようになりました。以下のいずれかの値をとります:

  • wk true: 段落ブレークとして解釈されます。
  • wk false: (デフォルト値) 改行(ラインブレーク)として解釈されます。

4D Write Pro ウィジェットからの読み込みと書き出し

4D Write Pro インターフェースウィジェットに新しいタブが追加され、ドキュメントを異なるフォーマットで読み込み/書き出しができるようになりました。

4D View Pro

オフスクリーンエリア

4D View Pro コマンドと関数をオフスクリーンエリアで操作するための新しいコマンドが利用できるようになりました。VP Run offscreen area です。これを使用するためには、シンプルにエリアの情報と引数(例: エリア名と、4D View Pro エリアからイベントが送られた時に呼び出すメソッド名など)をコマンドに渡すだけです。

セルの結合と結合解除

以下の新しいコマンドによって、自由にプログラミングでセル結合/セルの結合解除ができるようになりました:

  • セルを結合する: 結合したセルを全て内包したレンジを定義し、そのレンジを新しいVP ADD SPAN コマンドに引数として渡すと、そのレンジ内のセルが単一スパンのセルになります。
  • 結合されたセルを全て取得するためには、VP Get spans コマンドを使用します。
  • VP REMOVE SPAN コマンドを使用すると、ドキュメント内の結合されたセルを解除します。

フォーミュラ: 再計算、停止、そして再開

3つの新しいコマンドを使用することで、フォーミュラの計算をいつでも好きにトリガーできるようになりました:

  • VP RECOMPUTE FORMULAS – データが変更されたときなどにフォーミュラを再計算することができます。
  • VP SUSPEND COMPUTINGVP RESUME COMPUTING – それぞれ、計算を一時停止/再開することができます。
 
 

もっと知りたいですか?4D v18 R4についての全ての記事を読んでみましょう!