例 9: CICS VSAM データ・セットからキー付きレコードを読み取る

次の例では、File Manager Service Provider REST API 呼び出しを実行し、テンプレートを使用して CICS VSAM データ・セットにアクセスし、指定されたキー位置から 1 レコードを読み取ります。

この例では、一致するテンプレートまたはコピーブックを使用して CICS® VSAM ファイルをマップするサービス・アーカイブが作成され、デプロイされていることを前提とします。例えば、サービス・アーカイブは次のプロパティー・ファイルを使用して作成できます。

name=fmExample5
description=CICSR01:MYKSDS MAPPED BY MY.TEMPLATE(MYKSDS)
version=1.0
provider=filemanager
host=10.1.1.2
port=9043
userid=admin
passwd=s3cr3t
file=FI:CICSR01:MYKSDS
template=MY.TEMPLATE(MYKSDS)
timeout=300
connid=default

この例は、MY.TEMPLATE(MYKSDS) で見つかったテンプレートを使用して CICS® 領域 CICSR01 にある CICS® VSAM ファイル MYKSDS をマップします。この例では、生成された SAR ファイルと関連する組み込みの API が z/OS® Connect WLP サーバーにデプロイされていることを前提としています。

初回要求

データ・リソースからデータを読み取る初回 API 呼び出しには、z/OS® データ・リソースへの以降のアクセスで呼び出し元を認証できるように、HTTP Basic 認証ヘッダーが必要です。例:

Authorization : Basic dXNlcmlkOnBhc3N3b3Jk

ここで、Basic キーワードに続くストリングは、userid:password の Base64 エンコードを示します。

また、JSON ペイロードがあるすべての要求でも、値が application/json の Content-Type ヘッダーが必要です。

初回要求では、データ・リソースに命名したり、テンプレート情報を指定したりする必要はありません。この情報は API に関連付けられたサービス・アーカイブに既に含まれています。このため、API 呼び出し元が指定する必要があるのは、必要に応じて、オプションの operation パラメーターと position パラメーターのみです。

{
    "operation" :
    {
        "numRecords" : 1,
        "session" : false
    },
    "position" :
    {
        "key" : " X’0007331C’"
    }
}

この要求は、CICSR01 領域、16 進値のキーの位置 X'0007331C' の MYKSDS という CICS® ファイルへのアクセスを試行し、1 レコードを読み取ります。File Manager は false に設定されているため、サービス・プロバイダーは session セッションを維持しないか、トークンを返します。

成功時の応答

成功時の応答 (HTTP ステータス・コード 200) は次のようになります。

{
    "records" : 
    [
        {
            "layouts" : 
            [
                {
                    "CUSTOMER-ADDRESS" :
                    {
                        "CUSTOMER-NO" : 7331,
                        "CUSTOMER-STREET" : "2 MACQUARIE STREET",
                        "CUSTOMER-CITY" : "SYDNEY",
                        "CUSTOMER-COUNTRY" : "AUSTRALIA"    
                    }
                }
            ]
        }
    ]
}

サービス・プロバイダーによって保守されているセッションがなかったため、呼び出し元は File Manager セッションを終了する 2 番目の要求を出す必要はありません。