AppSuite APIの仕様
AppSuite API共通仕様
desknet's NEO APIの共通的な仕様に関しては、desknet's NEO 共通API仕様 > 共通仕様 をご覧ください。
モジュール名
appsr
部品識別子/部品名
[アプリケーション設定 > API設定]で「部品識別子でデータの取得、設定を行う」に設定している場合は部品識別子、設定していない場合は部品名で取得/設定します。
リクエスト
パラメーター名 | 指定する値 | 説明 |
app_id | [アプリケーション] |
必ず指定してください。
以下のいずれかの方法でアプリケーションを指定します。
|
データ一覧API
概要
アプリケーションのデータを一覧取得します。
リクエスト
パラメーター名 | 指定する値 | 説明 |
action | list_data | 固定値 |
app_id | [アプリケーションID | @アプリケーション識別子] | AppSuite APIの仕様をご覧ください。 |
fields | [部品設定JSON] |
レスポンスで取得する部品を指定します。省略した場合、最大50件の部品の値を取得します。 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件取得します。
|
レスポンス
キー | 値 | 説明 |
[データ] |
データ情報のオブジェクトです。形式はデータ参照APIのrecordとほぼ同じです。 データ参照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 | [部品設定] |
キーワード検索の対象の部品を指定します。詳細はkeywordの説明をご覧ください。 書式はデータ一覧APIと同じです。 |
filter | [絞り込み条件] | 指定した場合、その条件で絞り込んだ件数を取得します。JSON形式で指定します。絞り込み条件を指定する際の書式は、絞り込み条件をご覧ください。 |
keyword | [キーワード] |
指定した場合、そのキーワードで絞り込んだ件数を取得します。絞り込み時に検索対象となる部品は以下の通りです。(キーワード検索の対象となる部品タイプではない部品は除きます。)
|
レスポンス
キー | 値 | 説明 |
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を指定します。 |
レスポンス
キー | 値 | 説明 |
allow_write | [データの変更権] | このデータを変更できる場合にon、そうでない場合にoffになります。 |
allow_delete | [データの削除権] | このデータを削除できる場合にon、そうでない場合にoffになります。 |
val | [部品値] | 部品値のJSONオブジェクト値を参照してください。 |
deny_write | on | この部品値を変更できない場合、この項目が出力されます。この部品値が変更できる場合、deny_write自体出力されません。 |
type | [計算結果タイプ] | 計算した結果のタイプが設定されます。(部品が自動計算の場合のみ) |
hint | [計算エラー内容] | 計算エラーの場合、エラー内容が設定されます。(部品が自動計算の場合のみ) |
error | [エラーコード] |
部品値がエラーの場合、以下のエラーコードが設定されます。
|
部品 | 値の書式 |
文字(1行)/文字(複数行)/ラジオボタン/プルダウン/数値/リッチテキスト/ID | 値がそのまま設定されます。 |
チェックボックス/リストボックス | 選択値がタブ区切りで設定されます。 |
日付 | 値がyyyy-MM-dd形式で設定されます。 |
時刻 | 値が00:00:00からの経過秒数で設定されます。 |
日時 | 値がyyyy-MM-ddTHH:mm形式で設定されます。 |
添付ファイル |
|
自動計算 | 計算結果の値が設定されます。 |
ユーザー選択/ユーザー |
|
組織選択 |
|
表部品 |
|
参照データ一覧 | 値は設定されません。 |
実行例
- 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を指定したキー部品の値を設定すると、関係する複写部品の値も自動的に複写されます。 |
auto_action | [on | off] | offを指定した場合、当APIを使用してデータ変更時に自動処理(データの追加・変更時の処理)が実行されなくなります。onまたは省略した場合、自動処理は実行されます。 |
{{部品識別子/部品名}} | [部品値] |
部品ごとの値を設定します。部品のタイプごとの値の書式は以下です。
|
{{表部品}}行.{{添付ファイル}} | [ファイル] | 表部品の指定した行(0開始)の添付ファイル部品にアップロードします。その際、リクエストをマルチパートで送信する必要があります。 |
レスポンス
キー | 値 | 説明 |
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 \
-d relookup_key_field=112 \
--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と同様です。 |
auto_action | [on | off] | offを指定した場合、当APIを使用してデータ変更時に自動処理(データの追加・変更時の処理)が実行されなくなります。onまたは省略した場合、自動処理は実行されます。 |
{{revision}} | [レビジョン番号] | 必ず指定してください。指定した値とデータのレビジョン番号が一致するか検証されます。0を指定すると、検証されません。 |
{{部品識別子/部品名}} | [部品値] |
以下を除き、データ追加APIと同様です。
|
{{添付ファイル}}.del_attachment_id | [添付ファイルシステムID] | 添付ファイル部品の指定したIDの添付ファイルを削除します。 |
{{表部品}}行.{{添付ファイル}} | [ファイル] | 表部品の指定した行(0開始)の添付ファイル部品にアップロードします。その際、リクエストをマルチパートで送信する必要があります。 |
{{表部品}}行.{{添付ファイル}}.del_attachment_id | [添付ファイルシステムID] | 表部品の指定した行(0開始)の添付ファイル部品の指定した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を指定します。複数のデータを削除する場合、データIDをカンマで区切るか、複数のパラメーターで指定してください。 |
レスポンス
実行例
- 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,2
$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,2'
}
$response.Content
- 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 \
-d data_id=2
$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&data_id=2'
$response.Content