例 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 番目の要求を出す必要はありません。