# CreateDraftAsync Method

## Overloads

| [CreateDraftAsync(String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm#Qlik_Engine_IApp_CreateDraftAsync_System_String_) |  | Creates a draft of an object.<br><br>This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.<br><br>Replace the published object by the content of the draft by invoking the `CommitDraft method`. |
| --- | --- | --- |
| [CreateDraftAsync(AsyncHandle, String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm#Qlik_Engine_IApp_CreateDraftAsync_Qlik_Engine_AsyncHandle_System_String_) |  | Creates a draft of an object.<br><br>This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.<br><br>Replace the published object by the content of the draft by invoking the `CommitDraft method`. |
| [CreateDraftAsync<T>(AsyncHandle, Func<Response, T>, String)](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm#Qlik_Engine_IApp_CreateDraftAsync__1_Qlik_Engine_AsyncHandle_System_Func_Qlik_Engine_Communication_IO_Response___0__System_String_) |  | Creates a draft of an object.<br><br>This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.<br><br>Replace the published object by the content of the draft by invoking the `CommitDraft method`. |

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm)

## CreateDraftAsync(String)

Creates a draft of an object.

This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.

Replace the published object by the content of the draft by invoking the `CommitDraft method`.

### Declaration

```

          [Obsolete("")]
Task<string> CreateDraftAsync([QixName("qId")] string id)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| System.String | id | Identifier of the object to create a draft from. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;System.String&gt; |  |

### Remarks

The identifier is set by the engine.

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm)

## CreateDraftAsync(AsyncHandle, String)

Creates a draft of an object.

This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.

Replace the published object by the content of the draft by invoking the `CommitDraft method`.

### Declaration

```

          [Obsolete("")]
Task<string> CreateDraftAsync(AsyncHandle asyncHandle, [QixName("qId")] string id)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| [AsyncHandle](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.AsyncHandle.htm) | asyncHandle | Handle to asynchronous method request |
| System.String | id | Identifier of the object to create a draft from. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;System.String&gt; |  |

### Remarks

The identifier is set by the engine.

[](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm) [](https://help.qlik.com/en-US/sense-developer/Subsystems/NetSDKAPIref/Content/Qlik.Engine.IApp.CreateDraftAsync.htm)

## CreateDraftAsync&lt;T&gt;(AsyncHandle, Func&lt;Response, T&gt;, String)

Creates a draft of an object.

This method can be used to create a draft of a sheet or a story that is published. This is a way to continue working on a sheet or a story that is published.

Replace the published object by the content of the draft by invoking the `CommitDraft method`.

### Declaration

```
[Obsolete("")]
Task<T> CreateDraftAsync<T>(AsyncHandle asyncHandle, Func<Response, T> onResult, [QixName("qId")] string id)
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| [AsyncHandle](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.AsyncHandle.htm) | asyncHandle | Handle to asynchronous method request |
| System.Func&lt;[Response](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/NetSDKAPIref/Content/Qlik.Engine.Communication.IO.Response.htm), T&gt; | onResult | Continuation function |
| System.String | id | Identifier of the object to create a draft from. |

### Returns

| Type | Description |
| --- | --- |
| System.Threading.Tasks.Task&lt;T&gt; |  |

### Type Parameters

| Name | Description |
| --- | --- |
| T |  |

### Remarks

The identifier is set by the engine.