AppSuite(付録)

AppSuiteの機能を利用するための詳しい資料です。

印刷ボタン

AppSuite APIの仕様

AppSuite API共通仕様

desknet's NEO APIの共通的な仕様に関しては、desknet's NEO 共通API仕様 > 共通仕様 をご覧ください。

モジュール名

appsr

部品識別子/部品名

[アプリケーション設定 > API設定]で部品識別子でデータの取得、設定を行う設定にしてない場合、部品識別子の代わりに部品名で取得/設定します。

リクエスト

パラメーター名 指定する値 説明
app_id [アプリケーション] 必ず指定してください。 以下のいずれかの方法でアプリケーションを指定します。
  • アプリケーションID
  • 先頭に"@"を付けたアプリケーション識別子

データ一覧API

概要

アプリケーションのデータを一覧取得します。

リクエスト

パラメーター名 指定する値 説明
action list_data 固定値
app_id [アプリケーションID | @アプリケーション識別子] AppSuite APIの仕様をご覧ください。
fields [部品設定JSON]

レスポンスで取得する部品を指定します。省略した場合、すべての部品の値を取得します。ここで取得した部品がキーワード検索の対象の部品になります。

JSONのオブジェクトの配列で指定します。各要素でfield_namefield_aliasのどちらかを指定する必要があります。

【JSON】
[{"field_name":部品名},{"field_alias":部品識別子},…]
filter [絞り込み条件] 指定した場合、その条件でデータが絞り込まれます。JSON形式で指定します。絞り込み条件を指定する際の書式は、絞り込み条件をご覧ください。
keyword [キーワード] 指定した場合、そのキーワードでデータが絞り込まれます。
sort_field_id [部品のID] 並び順のキーになる部品を指定します。部品のIDは[アプリケーション設定 > 部品管理]にて確認できます。
sort_order [asc | desc] sort_field_idで指定した部品の値をどの順序で並べ替えるかを指定します。ascにすると昇順、descにすると降順になります。省略すると、昇順になります。
offset [開始位置] 何件目から取得するか(先頭は0)を指定します。省略すると、先頭から取得します。
limit [取得件数上限]
最大何件取得するかを指定します。省略すると、最大5000件取得します。

レスポンス

【JSON】
{ "status": "ok", "list": { "item": [ データ, … ] } }
キー 説明
[データ]

データ情報のオブジェクトです。形式はデータ参照APIrecordとほぼ同じです。

データ参照APIとの違いに関しては、部品別の機能対応表の一覧形式の画面に表示できる部品タイプをご覧ください。

実行例

  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=list_data \ --data-urlencode app_id=@sample_app \ --data-urlencode 'fields=[{"field_name":"担当"},{"field_alias":"customer"}]' \ --data-urlencode 'filter={"item":[{"field_id":"105","operator":"=","value":"-1 months:*"}]}' \ --data-urlencode keyword=山田 \ -d sort_field_id=101 \ -d sort_order=asc \ -d offset=0 \ -d limit=100
$response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'list_data' 'app_id' = '@sample_app' 'fields' = '[{"field_name":"担当"},{"field_alias":"customer"}]' 'filter' = '{"item":[{"field_id":"105","operator":"=","value":"-1 months:*"}]}' 'keyword' = '山田' 'sort_field_id' = '101' 'sort_order' = 'asc' 'offset' = '0' 'limit' = '100' } $response.Content

データ件数取得API

概要

アプリケーションのデータの件数を取得します。

リクエスト

パラメーター名 指定する値 説明
action count_data 固定値
app_id [アプリケーション] AppSuite APIの仕様をご覧ください。
fields [部品設定]

キーワード検索の対象の部品を指定します。省略した場合、すべての部品の値がキーワード検索の対象になります。

書式はデータ一覧APIと同じです。

filter [絞り込み条件] 指定した場合、その条件で絞り込んだ件数を取得します。JSON形式で指定します。絞り込み条件を指定する際の書式は、絞り込み条件をご覧ください。
keyword [キーワード] 指定した場合、そのキーワードで絞り込んだ件数を取得します。

レスポンス

【JSON】
{ "status": "ok", "allcnt": 総件数 }
キー 説明
allcnt [データ件数] アプリケーションのデータの件数です。条件を指定した場合はそれで絞り込まれた件数になります。

実行例

  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=count_data \ --data-urlencode app_id=@sample_app \ --data-urlencode 'fields=[{"field_alias":"customer"}]' \ --data-urlencode 'filter={"item":[{"field_id":"105","operator":"=","value":"-1 months:*"}]}' \ --data-urlencode keyword=山田
$response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'count_data' 'app_id' = '@sample_app' 'fields' = '[{"field_alias":"customer"}]' 'filter' = '{"item":[{"field_id":"105","operator":"=","value":"-1 months:*"}]}' 'keyword' = '山田' } $response.Content

データ参照API

概要

アプリケーションのデータを1件取得します。

リクエスト

パラメーター名 指定する値 説明
action get_data 固定値
app_id [アプリケーション] AppSuite APIの仕様をご覧ください。
data_id [データID] 必ず指定してください。取得対象となるデータのデータIDを指定します。

レスポンス

【JSON】
{ "status": "ok", "record": { "\\permissions": { "allow_write": データの変更権, "allow_delete": データの削除権, }, "部品識別子": { "val": 部品値 }, "自動計算": { "val": 部品値, "deny_write":"on", "type": 計算結果タイプ }, "自動計算(エラー)": { "val": 部品値, "hint": 計算エラー内容 }, "部品識別子": { "error": エラーコード, "deny_write":"on" }, … }, … } }
【JSON】部品識別子でデータの取得、設定を行わない場合
{ "status": "ok", "record": { "\\permissions": { "allow_write": データの変更権, "allow_delete": データの削除権, }, "部品名": { "val": 部品値 }, … }, … } }
キー 説明
allow_write [データの変更権] このデータを変更できる場合にon、そうでない場合にoffになります。
allow_delete [データの削除権] このデータを削除できる場合にon、そうでない場合にoffになります。
val [部品値] 部品値のJSONオブジェクト値を参照してください。
deny_write on この部品値を変更できない場合、この項目が出力されます。この部品値が変更できる場合、deny_write自体出力されません。
type [計算結果タイプ] 計算した結果のタイプが設定されます。(部品が自動計算の場合のみ)
hint [計算エラー内容] 計算エラーの場合、エラー内容が設定されます。(部品が自動計算の場合のみ)
error [エラーコード] 部品値がエラーの場合、以下のエラーコードが設定されます。
  • unauthorized: 値に参照権がありません。
  • reference_error: 参照エラーが発生しています。
  • under_maintenance: 参照先のアプリケーションがメンテナンス中です。
【部品値のJSONオブジェクト値】
部品 値の書式
文字(1行)/文字(複数行)/ラジオボタン/プルダウン/数値/リッチテキスト/ID 値がそのまま設定されます。
チェックボックス/リストボックス 選択値がタブ区切りで設定されます。
日付 値がyyyy-MM-dd形式で設定されます。
時刻 値が00:00:00からの経過秒数で設定されます。
日時 値がyyyy-MM-ddTHH:mm形式で設定されます。
添付ファイル
【JSON】
{ "attach": { "item": [ { "id": 添付ファイルシステムID, "attachdisp": ファイル名, "mimetype": MIME-Type, "url": ファイルURL, "size": ファイルサイズ(バイト) }, … ] } }
自動計算 計算結果の値が設定されます。
ユーザー選択/ユーザー
【JSON】
{ "users": { "item": [ { "id": ユーザーシステムID, "Name": 氏名, … }, … ] } }
組織選択
【JSON】
{ "groups": { "item": [ { "id": 組織システムID, "Name": 組織名, … }, … ] } }
表部品
【JSON】
{ "child_records": { "item": [ { "部品識別子": { "val": 部品値, … }, … }, … ] } }
参照データ一覧 値は設定されません。

実行例

  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=get_data \ --data-urlencode app_id=@sample_app \ -d data_id=1
$response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'get_data' 'app_id' = '@sample_app' 'data_id' = '1' } $response.Content

データダウンロードAPI

概要

アプリケーションのデータに添付されたファイルをダウンロードします。

リクエスト

データ参照APIかデータ一覧APIの添付ファイル値のurlをアクセス先URLとして使用します。その際、パラメーターかヘッダーにアクセスキーを付ける必要があります。

レスポンス

添付ファイルの実体が返ります。
  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsuite.cgi?action=download_data_file&app_id=1&field_id=104&id=1' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --output documents.zip
Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsuite.cgi?action=download_data_file&app_id=1&field_id=104&id=1' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -OutFile documents.zip

データ追加API

概要

アプリケーションにデータを追加します。

リクエスト

パラメーター名 指定する値 説明
action insert_data 固定値
app_id [アプリケーション] AppSuite APIの仕様をご覧ください。
relookup_key_field [部品ID]

キー部品の部品IDを指定してください。(複数指定可能)

ここでIDを指定したキー部品の値を設定すると、関係する複写部品の値も自動的に複写されます。

{{部品識別子}} [部品値]

部品ごとの値を設定します。部品のタイプごとの値の書式は以下です。

  • 文字(1行)/文字(複数行)/ラジオボタン/プルダウン/数値/リッチテキスト: 値をそのまま指定します。
  • チェックボックス/リストボックス: 選択値をタブ区切りで指定します。
  • 日付: 値がyyyy-MM-dd形式で指定します。
  • 時刻: 00:00:00からの経過秒数で指定します。
  • 日時: 値がyyyy-MM-ddTHH:mm形式で指定します。
  • 添付ファイル: ファイルを指定します。その際、リクエストをマルチパートで送信する必要があります。
  • ユーザー選択: ユーザーシステムIDをタブ区切りで指定します。
  • 組織選択: 組織IDをタブ区切りで指定します。
  • 表部品: オブジェクト配列のJSON形式で指定します。
{{表部品}}.{{添付ファイル}} [ファイル] 表部品の指定した行(0開始)の添付ファイル部品にアップロードします。その際、リクエストをマルチパートで送信する必要があります。

レスポンス

【JSON】
{ "status": "ok", "ID": データID }
キー 説明
ID [データID] 追加されたデータのデータIDです。

実行例

添付ファイルをアップロードしない場合
  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=insert_data \ --data-urlencode app_id=@sample_app \ -d relookup_key_field=101 \ --data-urlencode '{{charge}}=1' \ --data-urlencode '{{customer}}=山田花子' \ --data-urlencode '{{details}}=[{"use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]'
Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'insert_data' 'app_id' = '@sample_app' 'relookup_key_field' = '101' '{{charge}}' = '1' '{{customer}}' = '山田花子' '{{details}}' = '[{"use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]' } $response.Content
添付ファイルをアップロードする場合
  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --form-string action=insert_data \ --form-string app_id=@sample_app \ --form-string '{{charge}}=1' \ --form-string '{{customer}}=山田花子' \ -F '{{document}}=@documents.zip' \ --form-string '{{details}}=[{"use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]' \ -F '{{details}}0.{{document}}=@receipt.png'
Add-Type -AssemblyName 'System.Net.Http' $formData = New-Object System.Net.Http.MultipartFormDataContent $action = New-Object System.Net.Http.StringContent('insert_data') $action.Headers.Clear() $action.Headers.Add('Content-Disposition', 'form-data; name="action"') $formData.Add($action) $app_id = New-Object System.Net.Http.StringContent('@sample_app') $app_id.Headers.Clear() $app_id.Headers.Add('Content-Disposition', 'form-data; name="app_id"') $formData.Add($app_id) $charge = New-Object System.Net.Http.StringContent('1') $charge.Headers.Clear() $charge.Headers.Add('Content-Disposition', 'form-data; name="{{charge}}"') $formData.Add($charge) $customer = New-Object System.Net.Http.StringContent('山田花子') $customer.Headers.Clear() $customer.Headers.Add('Content-Disposition', 'form-data; name="{{customer}}"') $formData.Add($customer) $document = New-Object System.Net.Http.StreamContent([System.IO.File]::OpenRead('./documents.zip')) $document.Headers.Add('Content-Disposition', 'form-data; name="{{document}}"; filename="documents.zip"'); $document.Headers.Add('Content-Type', 'application/zip'); $formData.Add($document) $details = New-Object System.Net.Http.StringContent('[{"use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]') $details.Headers.Clear() $details.Headers.Add('Content-Disposition', 'form-data; name="{{details}}"') $formData.Add($details) $detailsAdd = New-Object System.Net.Http.StreamContent([System.IO.File]::OpenRead('./receipt.png')) $detailsAdd.Headers.Add('Content-Disposition', 'form-data; name="{{details}}0.{{document}}"; filename="receipt.png"'); $detailsAdd.Headers.Add('Content-Type', 'image/png'); $formData.Add($detailsAdd) $headers = @{ 'X-Desknets-Auth' = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 'Content-Type' = $formData.Headers.ContentType } $body = $formData.ReadAsByteArrayAsync().Result $response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' -Headers $headers -Method Post -Body $body $response.Content

データ変更API

概要

アプリケーションにのデータを変更します。

リクエスト

パラメーター名 指定する値 説明
action update_data 固定値
app_id [アプリケーション] AppSuite APIの仕様をご覧ください。
data_id [データID] 必ず指定してください。変更対象となるデータのデータIDを指定します。
relookup_key_field [部品ID] データ追加APIと同様です。
{{revision}} [レビジョン番号] 必ず指定してください。指定した値とデータのレビジョン番号が一致するか検証されます。0を指定すると、検証されません。
{{部品識別子}} [部品値]

以下を除き、データ追加APIと同様です。

  • 表部品の値を変更する場合、以下のように変更後の値全体を指定します。
    • 行を追加する場合、data_idがないサブデータを配列の要素に含めます。
    • 行を変更する場合、変更対象のサブデータのdata_idを含むサブデータを配列の要素に含めます。
    • 行を削除する場合、送信するサブデータの配列に削除対象のdata_idを含むサブデータを含めないようにします。
{{添付ファイル}}.del_attachment_id [添付ファイルシステムID] 添付ファイル部品の指定したIDの添付ファイルを削除します。
{{表部品}}.{{添付ファイル}} [ファイル] 表部品の指定した行(0開始)の添付ファイル部品にアップロードします。その際、リクエストをマルチパートで送信する必要があります。
{{表部品}}.{{添付ファイル}}.del_attachment_id [添付ファイルシステムID] 表部品の指定した行(0開始)の添付ファイル部品の指定したIDの添付ファイルを削除します。

レスポンス

【JSON】
{ "status": "ok", "ID": データID }
キー 説明
ID [データID] 変更したデータのデータIDです。

実行例

添付ファイルをアップロードしない場合
  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=update_data \ --data-urlencode app_id=@sample_app \ -d data_id=1 \ --data-urlencode '{{revision}}=1' \ --data-urlencode '{{charge}}=1' \ --data-urlencode '{{details}}=[{"data_id":"1","use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]'
$response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'update_data' 'app_id' = '@sample_app' 'relookup_key_field' = '101' '{{revision}}' = '1' '{{charge}}' = '1' '{{details}}' = '[{"data_id":"1","use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]' } $response.Content
添付ファイルをアップロードする場合
  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --form-string action=update_data \ --form-string app_id=@sample_app \ --form-string '{{revision}}=1' \ --form-string '{{charge}}=1' \ -F '{{document}}=@documents.zip' \ --form-string '{{document}}.del_attachment_id=10' \ --form-string '{{details}}=[{"data_id":"1","use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]' \ -F '{{details}}0.{{document}}=@receipt.png' \ --form-string '{{details}}0.{{document}}.del_attachment_id=10'
Add-Type -AssemblyName 'System.Net.Http' $formData = New-Object System.Net.Http.MultipartFormDataContent $action = New-Object System.Net.Http.StringContent('update_data') $action.Headers.Clear() $action.Headers.Add('Content-Disposition', 'form-data; name="action"') $formData.Add($action) $app_id = New-Object System.Net.Http.StringContent('@sample_app') $app_id.Headers.Clear() $app_id.Headers.Add('Content-Disposition', 'form-data; name="app_id"') $formData.Add($app_id) $revision = New-Object System.Net.Http.StringContent('1') $revision.Headers.Clear() $revision.Headers.Add('Content-Disposition', 'form-data; name="{{revision}}"') $formData.Add($revision) $charge = New-Object System.Net.Http.StringContent('1') $charge.Headers.Clear() $charge.Headers.Add('Content-Disposition', 'form-data; name="{{charge}}"') $formData.Add($charge) $document = New-Object System.Net.Http.StreamContent([System.IO.File]::OpenRead('./documents.zip')) $document.Headers.Add('Content-Disposition', 'form-data; name="{{document}}"; filename="documents.zip"'); $document.Headers.Add('Content-Type', 'application/zip'); $formData.Add($document) $details = New-Object System.Net.Http.StringContent('[{"use":"滞在費","price":"10000"},{"use":"接待費","price":"8000"}]') $details.Headers.Clear() $details.Headers.Add('Content-Disposition', 'form-data; name="{{details}}"') $formData.Add($details) $detailsAdd = New-Object System.Net.Http.StreamContent([System.IO.File]::OpenRead('./receipt.png')) $detailsAdd.Headers.Add('Content-Disposition', 'form-data; name="{{details}}0.{{document}}"; filename="receipt.png"'); $detailsAdd.Headers.Add('Content-Type', 'image/png'); $formData.Add($detailsAdd) $detailsDelete = New-Object System.Net.Http.StringContent('10') $detailsDelete.Headers.Clear() $detailsDelete.Headers.Add('Content-Disposition', 'form-data; name="{{details}}0.{{document}}.del_attachment_id"') $formData.Add($detailsDelete) $headers = @{ 'X-Desknets-Auth' = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 'Content-Type' = $formData.Headers.ContentType } $body = $formData.ReadAsByteArrayAsync().Result $response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' -Headers $headers -Method Post -Body $body $response.Content

データ削除API

概要

アプリケーションのデータを削除します。

リクエスト

パラメーター名 指定する値 説明
action delete_data 固定値
app_id [アプリケーション] AppSuite APIの仕様をご覧ください。
data_id [データID] 削除対象となるデータのデータIDを指定します。(複数指定可能)

レスポンス

【JSON】
{ "status": "ok" }

実行例

  • curl
  • PowerShell
curl 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' \ -H 'X-Desknets-Auth: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ -d action=delete_data \ --data-urlencode app_id=@sample_app \ -d data_id=1
$response = Invoke-WebRequest -Uri 'https://local.yourdomain/cgi-bin/dneo/appsr.cgi' ` -Headers @{'X-Desknets-Auth'='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} ` -Method Post ` -Body @{ 'action' = 'delete_data' 'app_id' = '@sample_app' 'data_id' = '1' } $response.Content