メインコンテンツへスキップ

新しいレコードタイプの作成

カスタム Appian アプリケーションが ABBYY FlexiCapture Connector for Appian と連携できるようにするには、以下で説明するエンティティを作成する必要があります。これらのエンティティを作成する前に、ABBYYFlexiCapturePlugin.jar プラグインが Appian サーバーにインストールされていることを確認してください。Appian サーバーにプラグインをインストールするには、コネクターの配布パッケージから次のフォルダーにコピーするだけです: APPIAN_INSTALL/_admin/plugins/。次に、以下を行います。

型が”Data Store Entity”の定数を返すAFC_GetConstantDSEByRecordTypeNameルールの作成

Web APIのCreateRecordメソッドでは、型が”Data Store Entity”の定数を返すルールが必要です。このルールは、レコードを作成するデータストアとデータ型を決定します。
  1. Appian Designerでアプリケーションを開き、New → Expression Rule をクリックします。
  2. Create from scratch を選択し、Name フィールドと Save In フィールドに入力して、Create & Edit をクリックします。
  3. Rule Inputs ダイアログで、+ icon をクリックし、型が”Text”で名前が”RecordTypeName”の新しい入力変数を作成します。
  4. 左側の Code Editor に次のコードを貼り付けます。
if(ri!RecordTypeName == "New Records", /* RecordTypeNameパラメーターに、新しいレコードタイプの名前を複数形で指定します。  */
cons!New_Constant, /* cons! の後に、レコードタイプの定数名を指定します。 */
null /* アプリケーションにレコードタイプが複数ある場合は、「null」を上記と同じ「if」条件に置き換え、2番目のレコードタイプの名前とその定数の名前を指定してください。 */
)
入力された RecordTypeName が保存済みのレコードタイプの名前 (複数形) と同じ場合、データ ストアとデータ型を関連付ける DataStoreEntity 定数が返されます。

データ型の完全修飾名を返す AFC_GetDataTypeByRecordTypeName ルールの作成

Web API の CreateRecord メソッドでは、データ型の完全修飾名を返すルールが必要です。
  1. Appian Designer でアプリケーションを開き、New → Expression Rule をクリックします。
  2. Create from scratch を選択し、Name フィールドと Save In フィールドに必要事項を入力して、Create & Edit をクリックします。
  3. Rule Inputs ダイアログで、+ icon をクリックし、型が “Text”、名前が “RecordTypeName” の新しい入力変数を作成します。
  4. 左側の Code Editor に、次のコードを貼り付けます。
if(ri!RecordTypeName == "New Records", /* RecordTypeName パラメーターには、新しいレコードタイプの名前(複数形)、データ型の完全名、およびレコードタイプの名前空間を指定します。 */
'type!{urn:com:appian:types}NewDataType',
null
/* アプリケーションに複数のレコードタイプが存在する場合は、"null" を上記と同じ "if" 条件に置き換え、2番目のレコードタイプの名前、データ型の完全名、およびレコードタイプの名前空間を指定してください。 */
)
入力された RecordTypeName が、保存されているレコードタイプの名前 (複数形) と同じ場合は、データ型の完全名を含む string が返されます。そうでない場合は、null が返されます (名前空間はデータ型のプロパティで確認できます) 。データ型のプロパティを表示するには、ABBYYFlexiCapture アプリケーションで目的のデータ型を開きます。左上隅にあるデータ型名をクリックすると、データ型のプロパティ ウィンドウが開き、そこで名前空間を確認できます。

ナレッジセンターに新しいドキュメントを追加するための Web API メソッドを作成する

  1. Appian Designer でアプリケーションを開き、New → Web API をクリックします。
  2. Name フィールドと Endpoint フィールドに “UploadDocument” (引用符なし) と入力します。HTTP MethodPOST に変更し、Create & Edit をクリックします。
  3. テンプレート選択ダイアログを閉じ、次のコードを Code Editor に貼り付けます。
with(
local!value: http!request.body,
a!httpResponse(
statusCode: 200,
headers: {},
body: uploaddocument(local!value)
)
)
Code Editor に uploaddocument(String query) メソッドが表示されるのは、APPIAN_INSTALL/_admin/plugins/ABBYYFlexiCapturePlugin.jar file がある場合のみです。このメソッドは、ファイルの内容を含む JSON 文字列を作成した JAVA メソッドに直接送信し、ドキュメントが格納されたフォルダーの ID を含む JSON 文字列を受け取ります。

データベーステーブルにデータを登録する Web API メソッドの作成

  1. Appian Designer でアプリケーションを開き、New → Web API をクリックします。
  2. Name フィールドと Endpoint フィールドに「CreateRecord」 (引用符は含めない) と入力します。HTTP MethodPOST に変更し、Create & Edit をクリックします。
  3. テンプレート選択ダイアログを閉じ、次のコードを Code Editor に貼り付けます。
with(
local!value: cast(
rule!AFC_GetDataTypeByRecordTypeName(http!request.queryParameters.RecordTypeName),
a!fromJson(http!request.body)
),
a!writeToDataStoreEntity(
dataStoreEntity: rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName),
valueToStore: local!value,
onSuccess: a!httpResponse(
statusCode: 200,
headers: {
a!httpHeader(name: "Content-Type", value: "application/json")
},
body: a!toJson(
fv!storedValues
)
),
onError: a!httpResponse(
statusCode: 500,
headers: {
a!httpHeader(name: "Content-Type", value: "application/json")
},
body: a!toJson(
{
error: "There was an error writing to the data store"
}
)
)
)
)
  • rule!AFC_GetDataTypeByRecordTypeName(http!request.queryParameters.RecordTypeName) ルールは、入力としてレコードタイプ名を指定するパラメーター (Web API メソッドが ABBYY FlexiCapture Connector for Appian から受け取るもの) を受け取り、データ型の完全名を返します。
    • rule!AFC_GetConstantDSEByRecordTypeName(http!request.queryParameters.RecordTypeName) は、Data Store Entity 定数を返します。
  1. 右側のペインで、New Query Parameter ボタンをクリックし、クエリ文字列に RecordTypeName という名前の新しいパラメーターを追加します。最後に、Set as default test value オプションを選択し、Save をクリックします。