何を実現したいのかを書きましょう
PowerShellにて、Excelの情報をAPI経由で新規レコードとして作成できるようにしたいです。
発生した問題やエラーメッセージを具体的に書きましょう
その中で、ユーザー選択フィールドに対応する情報を組み込もうとすると以下のようなエラーが発生します。
Invoke-RestMethod : {“code”:“CB_IJ01”,“id”:“kQNmpYZx3xA84qKlmX3f”,“message”:“不正なJSON文字列です。”}
実行したコードをコピー&ペーストしましょう
# kintoneの接続情報
$domain = 'xxx.cybozu.com'
$appId = 'xxx'
$apiToken = 'xxx'
# レコードを一括作成
$recordUrl = "https://$domain/k/v1/records.json"
# CSVファイルパスとエンコーディング
$csvFilePath = 'C:\Users\ITS12308\Desktop\kintone.csv'
# CSVファイルを読み込む
$csvData = Import-Csv -Path $csvFilePath -Encoding oem
# レコード情報の格納用変数
$recordDataList = @()
# CSVの各行を処理
foreach ($row in $csvData) {
# レコード情報を作成し、$recordDataListに追加
$recordData = @{
# '文字列__1行_' = @{"value"=$row.文字列__1行_}
# '文字列__1行__0' = @{"value"=$row.文字列__1行__0}
# '文字列__1行__1' = @{"value"=$row.文字列__1行__1}
'_1' = @{"value"=$row.最優先}
'_2' = @{"value"=$row.Status}
'_3' = @{"value"=$row.Phase}
'_4' = @{"value"=$row.業務種類}
'_5' = @{"value"=$row.グループ名}
'_6' = @{"value"=$row.作業タイトル}
'_7' = @{"value"=$row.作業開始日}
'_8' = @{"value"=$row.作業期限日}
'_9' = @{"value"=
@{ "code"= $row.ログインメールアドレス
"name"= $row.作業担当者
}
}
'_10' = @{"value"=$row.工数__予想人日_}
'_11' = @{"value"=$row.工数__実績人日_}
'_12' = @{"value"=$row.詳細メモ}
# 必要なフィールドと値を追加
}
$recordDataList += $recordData
}
# レコードを一括作成
$recordUrl = "https://$domain/k/v1/records.json"
Write-Host $records
$records = @{
'app' = $appId
'records' = $recordDataList
} | ConvertTo-Json -Depth 30
# json をバイト配列にする
$body = [System.Text.Encoding]::UTF8.GetBytes($records)
#>
$headers = @{
'X-Cybozu-API-Token' = $apiToken
}
$response = Invoke-RestMethod -Uri $recordUrl -Headers $headers -ContentType 'application/json' -Method Post -Body $body
# レスポンスの確認
if ($response -ne $null) {
Write-Host "レコードの作成に成功しました。"
} else {
Write-Host "レコードの作成に失敗しました。"
Write-Host $response
}
<検証済み事項>
ユーザー選択のフィールドコード’_9’に関連するコードを除いた場合は問題なく、新規タスクが作成される
「xxx」に部分については自社テナントのドメイン、アプリID、APIトークンを入力、動作確認済み。
エクセル内の情報(列名の文字コード、表示形式など)は問題ないことを確認済み