# Create a transient object

Create a transient object by using the [CreateSessionObject method](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/service-doc-createsessionobject.htm).

## Examples

Example 1:

[](https://help.qlik.com/en-US/sense-developer/Subsystems/EngineAPI/Content/Sense_EngineAPI/WorkingWithAppsAndVisualizations/CreateVisualizations/create-transient-object.htm)

#### The goal is to create a transient object that will be used as an app overview.

The client sends:

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "CreateSessionObject",
  "handle": 1,
  "params": [
    {
      "qInfo": {
        "qId": "",
        "qType": "SessionLists"
      },
      "qAppObjectListDef": {
        "qType": "sheet",
        "qData": {
          "id": "/qInfo/qId"
        }
      },
      "qDimensionListDef": {
        "qType": "Dimension",
        "qData": {}
      },
      "qMeasureListDef": {
        "qType": "Measure",
        "qData": {}
      }
    }
  ]
}
```

The engine returns:

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "qReturn": {
      "qType": "GenericObject",
      "qHandle": 2
    }
  },
  "change": [
    2
  ]
}
```

The app overview is created and the handle is 2.

The app overview contains the list of:

* app objects, for example, sheets; refers to "qAppObjectListDef"
* dimensions; refers to "qDimensionListDef"
* measures; refers to "qMeasureListDef"

qAppObjectListDef, qDimensionListDef and qMeasureListDef are dynamic properties inside a dynamic structure (they are part of the property qProp) and can be omitted. If qMeasureListDef is omitted in the app overview, the list of measures is not shown in the app overview.

Example 2:

[](https://help.qlik.com/en-US/sense-developer/Subsystems/EngineAPI/Content/Sense_EngineAPI/WorkingWithAppsAndVisualizations/CreateVisualizations/create-transient-object.htm)

#### The goal is to create a transient object that shows the current selections.

The client sends:

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "CreateSessionObject",
  "handle": 1,
  "params": [
    {
      "qInfo": {
        "qId": "",
        "qType": "SessionLists"
      },
      "qSelectionObjectDef": {}
    }
  ]
}
```

The engine returns:

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "qReturn": {
      "qType": "GenericObject",
      "qHandle": 2
    }
  },
  "change": [
    2
  ]
}
```

The transient object is created and the handle is 2.

Example 3:

[](https://help.qlik.com/en-US/sense-developer/Subsystems/EngineAPI/Content/Sense_EngineAPI/WorkingWithAppsAndVisualizations/CreateVisualizations/create-transient-object.htm)

#### The goal of this example is to create a sheet SH01, then to create a transient sheet SH02 that is linked to the sheet SH01.

1. Create the sheet SH01.

The client sends:

{ "jsonrpc": "2.0", "id": 1, "method": "CreateObject", "handle": 1, "params": [ { "title": "Title for SH01", "description": "Description of sheet 1", "qInfo": { "qId": "SH01", "qType": "linked" }, "qChildListDef": { "qData": { "title": "/title", "description": "/description", "meta": "/meta", "order": "/order", "id": "/qInfo/qId", "type": "/qInfo/qType", "lb": "/qListObjectDef", "hc": "/qHyperCubeDef" } } } ] }

The engine returns:

{ "jsonrpc": "2.0", "id": 1, "result": { "qReturn": { "qType": "GenericObject", "qHandle": 2 }, "qInfo": { "qId": "SH01", "qType": "linked" } }, "change": [ 2 ] }

The sheet SH01 is created.

2. Create the transient sheet SH02. This sheet should be linked to the sheet SH01. Therefore, the property qExtendsId is set to SH01 for the sheet SH02.

The client sends:

{ "jsonrpc": "2.0", "id": 2, "method": "CreateSessionObject", "handle": 1, "params": [ { "qInfo": { "qId": "SH02", "qType": "sheet" }, "qExtendsId": "SH01" } ] }

The engine returns:

{ "jsonrpc": "2.0", "id": 2, "result": { "qReturn": { "qType": "GenericObject", "qHandle": 3 } }, "change": [ 3 ] }

The transient sheet SH02 is created. This sheet is linked to the sheet SH01 and has the handle 3.

3. Get the layout of the sheet SH02.

The client sends:

{ "jsonrpc": "2.0", "id": 3, "method": "GetLayout", "handle": 3, "params": [] }

The engine returns:

{ "jsonrpc": "2.0", "id": 3, "result": { "qLayout": { "qInfo": { "qId": "SH02", "qType": "sheet" }, "qMeta": {}, "qExtendsId": "SH01", "qSelectionInfo": {}, "title": "Title for SH01", "description": "Description of sheet 1", "qChildList": { "qItems": [] } } } }

The sheet SH02 has the same properties as the sheet SH01.

## Learn more

* [Get the layout of an object](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineAPI/Content/Sense_EngineAPI/WorkingWithAppsAndVisualizations/RenderLayout/get-layout-generic-object.htm)
* [Remove a transient object](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineAPI/Content/Sense_EngineAPI/WorkingWithAppsAndVisualizations/CreateVisualizations/remove-transient-object.htm)