入出力コンテキストは、CSVファイルやRDB、クラウドデータベースなどの外部のデータソースとやりとりするコンテキストです。
コンテキサーの業務アプリ(.ctp)には、コンテキストのデータそのものを保持することはできないため、コンテキサーのデータを永続化するには、入出力コンテキストを定義しておく必要があります。
入出力コンテキストは、データ読込みとデータ書出しによって入出力先のデータソースにあるデータを出し入れします。
データ読込みとは、入出力先のデータソースからコンテキストへレコードを入力する機能です。
データ書出しとは、入出力先のデータソースへコンテキストにある行を出力する機能です。入出力先がRDBなどキーによってレコードを操作するデータソースでは、データ書出し時に、入出力コンテキストでの操作を挿入,更新,削除のいずれかに分けて適切なクエリが内部で自動的に発行されます。
入出力コンテキストの入出力先を設定するために、データソースを設定する必要があります。RDBの場合にはODBCのデータソース名などを設定します。データソースの設定にもとづいて、テーブルなどのオブジェクトの数だけ入出力コンテキストを定義します。
コンテキスト定義「項目一覧」タブで項目の「表示」欄にチェックがある場合には、チェックがあるものを入出力の対象とし、チェックがないものは無視されます(CSVの場合は位置が詰められます)。
コンテキスト詳細「アクセス許可」タブをクリックすると、項目ごとのアクセス権の設定画面が表示されます。この画面で、コンテキストの項目単位にログインしたユーザが入出力コンテキストにアクセスできる権限を個別に設定できます。
入出力コンテキストが持つ各行には、外部入出力先に対してレコードを追加する・更新する・削除することを示す「書出しフラグ」が記録されています。書出しフラグによって、データ書き出し時に、外部入出力先へレコードを書き出し処理の内容を決めています。
担当者がパネルにて行を操作した際や、転記,入力補助,コマンドによって行が操作された際に、操作内容に応じて、追加フラグ・更新フラグ・削除フラグの各フラグが記録されます。
書出しフラグは、入出力コンテキストに対応するエンティティの内容が変更された際に記録されます。例えば、入出力コンテキストAとパネルコンテキストBが同じエンティティEに対応しているとします。この場合には、パネルコンテキストBでレコードが操作されると、それに対応するエンティティEの要素を通じて、入出力コンテキストAの該当する行のフラグが立ちます。
書出しフラグは、データ書出しが完了するとクリアされます。ただし何らかの理由で正常に書き出せなかった行では、正常に書き出されるまで書出しフラグはそのままとなります。
データ同期が有効な入出力用コンテキストでは、行が追加・変更・削除されるとすぐに書出しされます。
また「業務データ書出」画面の「結果」欄は「データ同期済み」と表示されます。「追加」,「更新」,「削除」の各欄の件数は、常に0件となります。データ同期が失敗した場合は「結果」欄に「データ同期(未完)」と表示され、書き出せなかった行のフラグが立ったままとなります。
次のような場合は、入出力コンテキストが操作されても、フラグが立ちません。
コンテキスト詳細「フィールド対応」タブでコンテキストの項目と、入出力先のデータソースのフィールドとの対応付けを設定します。
RDBなど入出力先で適切なデータ型で入出力する必要がある場合に、項目に対応するフィールドのデータ型やデータサイズ、NULL値の扱いなどを設定します。