Risk Assessクイック連携を開始する

概要

クイック連携インポートでは、CRAユーザーはスプレッドシートをHTTPSプロトコル経由で直接アップロードできます。 これにより、ユーザーはインタフェイスを使用せずにインバウンドインポートを自動化して実行できます。 以下に、さまざまな一般的なプログラミング言語を使ってこれを実行する方法の実用的な例を示すさまざまなコードスニペットがあります。

認証

成功するには、発行されたRisk Assessクイック連携リクエストごとに有効な認証情報を提供する必要があります。

提供されたRisk Assessユーザーは、「QuickIntegration」グループまたは「QuickIntegration - Engagements」グループのいずれかのメンバーである必要があります。 QuickIntegrationグループを使用すると、アカウントはすべてのクイック連携リソースにアクセスできます。 QuickIntegration - Engagementsグループは、クイック連携エンゲージメントリソースのみへアクセスを制限します。 これらのグループが現在Risk Assessインスタンスに存在しない場合は、現地のRisk Assess管理者またはCoupaカスタマーサービス担当者に連絡して作成を依頼してください。

HTTPヘッダーDescription
username有効なリスクアセスメントユーザー名
password有効なリスクアセスメントパスワード

内容タイプ

内容タイプヘッダーには、以下のいずれかのタイプが含まれている必要があります。 これは、アップロードされるファイル形式を識別するために使用されます。

注:

データをoctet-streamとして送信する場合、Content-Dispositionヘッダーにファイル名が必要となります。

Content Type Headerファイルタイプ
application/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel 2007以降のバージョン(xlsx)
application/vnd.ms-excelExcel 2003以前のバージョン(xls)
text/csvカンマ区切り値(csv)
application/octet-stream

Content-Dispositionのfilename値によって決定されるファイル形式

例: Content-Disposition: form-data; name="file"; filename="user_import.xlsx"

コードサンプル

Java

package httpPostExample;import java.io.File;import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils;public class uploadFile { public static void main(String[] args) { try { String url = "https://rportal.hiperos.com/QuickIntegration/Suppliers"; String filePath = "c:\\hiperos\\outbox\\Suppliers_import.xlsx"; HttpClient httpClient = HttpClientBuilder.create().build(); HttpContext httpContext = new BasicHttpContext(); HttpPost httpPost = new HttpPost(url); httpPost.setHeader("username", "Your_3PM_Username_Here"); httpPost.setHeader("password", "Your_3PM_Password_Here"); httpPost.setHeader("Connection", "close"); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); final File file = new File(filePath); FileBody fb = new FileBody(file, "text/csv"); builder.addPart("file", fb); final HttpEntity entity = builder.build(); httpPost.setEntity(entity); HttpResponse postResponse = httpClient.execute(httpPost, httpContext); HttpEntity responseEntity = postResponse.getEntity(); System.out.println(EntityUtils.toString(responseEntity)); } catch(Exception ex) { ex.printStackTrace(); } } }
C#
using System; using System.Net;namespace QuickIntegration_Sample { class Program { static void Main() { const string uriString = "https://rportal.hiperos.com/QuickIntegration/Suppliers"; const string fileName = @"c:\\hiperos\\outbox\\Suppliers_import.xlsx"; // Create a new WebClient instance. WebClient client = new WebClient(); // Add authentication headers to request. client.Headers.Add("username", "Your_3PM_Username_Here"); client.Headers.Add("password", "Your_3PM_Password_Here"); // Upload the file to the URI. // 'UploadFile (uriString, fileName )'メソッドは、HTTP POSTメソッドを暗黙的に使用します。 byte[] responseArray = client.UploadFile(uriString, fileName); string response = System.Text.Encoding.ASCII.GetString(responseArray); //レスポンスをデコードして表示します。 Console.WriteLine("\nResponse Received. アップロードされたファイルの内容は次のとおりです:\n{0}", response); } } }

例外処理とエラーコード

次のHTTPレスポンスステータスコードはクイック連携によって使用され、インポートステータスを呼び出し元に通知します。

ステータスコード結果Description
201作成済み新しいオブジェクトが正常に作成されました。
202承認済みデータはインポートキューに追加されました(システム生成の確認メールがその後届きます)。
204内容なしインポートする新しいデータまたはアップデートされたデータが見つからなかったか、ファイルが正しい形式ではありませんでした。
400Bad Request問題の行や列が見つかりました。 レビューがレスポンスで検証メッセージを返しました。
401権限がありませんリクエストにユーザー名とパスワードのhttpヘッダーが見つかりませんでした。
403Forbiddenログインに失敗。見つからないか、権限がありません。
500サーバーエラーインポートデータをデータベースに保存できませんでした