Example 5: Read from a position within an IMS™ database

In the following example, File Manager Service Provider REST API calls are issued to position within an IMS™ database and then read a segment at that position.

Initial request

An initial API call to read data from an IMS™ data resource requires an HTTP Basic Authorization header so that the caller can be authenticated for subsequent access to IMS™ data resources. For example:

Authorization : Basic dXNlcmlkOnBhc3N3b3Jk

where the string after the Basic keyword represents a Base64 encoding of userid:password.

All requests with a JSON payload also require a Content-Type header with a value of application/json.

The initial request also requires the name of the IMS™ subsystem, the IMS™ database name, a PSB member name, an IMS™ region type, and a File Manager/IMS view to map the data. Dynamic PSBs are supported and can be specified by using the psbName parameter and the value DYNAMIC.

The position parameters allow the specification of a series of segmentKeys, which match the hierarchy of the database and keyed segments. In this case, we are positioning on a root segment with a key value equal to "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"
            }
        ]
    }  
}

This request reads one segment from the nominated position within the IMS™ database HDOU#1 in IMS™ subsystem IFB2. The request will use PSB member PHDOU#1 and the PCB with label DBPCB1 in the PSB member. The region type is BMP. The request will use the view IMS.VIEW(HDOU#1) to map out the segment fields in the response.

The service provider will not persist a File Manager/IMS session because session is set to false.

Successful response

A successful response (HTTP Status Code 200) will be similar to the following:

{
    "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"
                    }
                ]
            }
        }
    ]
}

The caller does not need to issue a second request to terminate the FM/IMS session because no session was maintained by the service provider.