例 5: IMS™ データベース内の位置から読み取る
次の例では、File Manager Service Provider REST API 呼び出しを実行して、IMS™ データベース内で位置を決め、その位置でセグメントを読み取ります。
初回要求
IMS™ データ・リソースからデータを読み取る初回 API 呼び出しには、IMS™ データ・リソースへの以降のアクセスで呼び出し元を認証できるように、HTTP Basic 認証ヘッダーが必要です。例:
Authorization : Basic dXNlcmlkOnBhc3N3b3Jk
ここで、Basic キーワードに続くストリングは、userid:password の Base64 エンコードを示します。
また、JSON ペイロードがあるすべての要求でも、値が application/json
の Content-Type ヘッダーが必要です。
初回の要求では、データをマップするために、IMS™ サブシステムの名前、IMS™ データベース名、PSB メンバー名、IMS™ 領域タイプ、および File Manager/IMS ビューも必要です。動的 PSB がサポートされ、psbName パラメーターと値 DYNAMIC を使用して指定できます。
position パラメーターを使用して、データベースおよびキー・セグメントの階層に一致する一連の segmentKey を指定できます。この例では、キー値が「02922399-001」のルート・セグメントを配置しています。
{
"resource" :
{
"ssid" : "IFB2",
"database" : "HDOU#1",
"psbMember" : "PHDOU#1",
"pcbName" : "DBPCB1",
"regionType" : "BMP"
},
"view" :
{
"viewName" : "IMS.VIEW(HDOU#1)"
},
"operation" :
{
"numSegments" : 1,
"session" : false
} ,
"position" :
{
"segmentKeys" :
[
{
"segmentName" : "PARTROOT",
"keyValue" : "02922399-001",
"operator" : "EQ"
}
]
}
}
この要求では、IMS™ サブシステム IFB2 の IMS™ データベース HDOU#1 内の所定の位置から 1 セグメントを読み取ります。この要求では、PSB メンバー PHDOU#1 と、PSB メンバーでラベルが DBPCB1 の PCB が使用されます。領域タイプは BMP です。この要求では、ビュー IMS.VIEW(HDOU#1) を使用して、応答でセグメント・フィールドをマップアウトします。
File Manager/IMS が false に設定されているため、サービス・プロバイダーは session
セッションを維持しません。
成功時の応答
成功時の応答 (HTTP ステータス・コード 200) は次のようになります。
{
"segments":
[
{
"segment":
{
"layout": "PARTROOT",
"segname": "PARTROOT",
"fields":
[
{
"field": "ROOT-TYPE",
"type": "AN",
"value": "02"
},
{
"field": "ROOT-KEY",
"type": "AN",
"value": "922399-001"
},
{
"field": "ROOT-SPACES",
"type": "AN",
"value": " "
},
{
"field": "ROOT-WOSNAME",
"type": "AN",
"value": "CONNECTOR"
}
]
}
}
]
}
サービス・プロバイダーによって保守されているセッションがなかったため、呼び出し元は FM/IMS セッションを終了する 2 番目の要求を出す必要はありません。