スクリプト・ハンドラー
REST API は、単純な構成を使用してデータを取得または処理するためのほとんどのユース・ケースをサポートできます。 場合によっては、既存の API を使用してデータを取得または処理することが困難なシナリオが存在します。 そのような場合は、起動ポイントではなく、スクリプトを作成できます。
GET または POST のいずれかを使用してスクリプトを呼び出すことができます。以下に例を示します。
https://myurl.com/maximo/api/script/SCRIPTNAME?lean=1以下の表に、暗黙的変数をリストします。
| 変数名 | 説明 |
|---|---|
| 要求 | 実行された要求の OslcRequest 表記。 この変数は、クエリパラメータまたはヘッダーとして提供された値を取得するための重要なメソッド request.getQueryParam(“parameter” や request.getHeader(“header” を示します。 また request.getUserInfo( を呼び出すことUserInfo にアクセスできます。 |
| requestBody | POST、PATCH、PUT の要求でサブミットされたデータのストリング表現 |
| httpMethod | このメソッドが GET、POST、PUT などであったかどうか。 request.getHttpMethod(を呼び出すことでも取得できます。 |
| responseBody | このスクリプトは、この変数を、応答で返す byte [] または String として設定します。 応答を返す予定がない場合、この変数は必要ありません。 |
| responseHeaders | スクリプトは、この HashMap に追加のヘッダーを提供して、呼び出し側アプリケーションに戻ることができます。 |
以下のスクリプト例は、照会パラメーターに基づいてユーザーのデフォルトの挿入サイトを変更します。
# This example changes the user's default insert site based on the query parameter.
# This is different from setting it on the MAXUSER record because this updates for the current session.
from psdi.server import MXServer
maxServer=MXServer.getMXServer()
siteid=request.getQueryParam("siteid")
if siteid and maxServer.isValidSite(siteid):
userInfo=request.getUserInfo()
userSet=maxServer.getMboSet("MAXUSER",userInfo)
userSet.setQbeExactMatch(True)以下の例のような GET/POST 要求を指定して呼び出します。
https://myurl.com/maximo/oslc/script/setinsertsite?lean=1&siteid=BEDFORD