# US 11,308,068 B2 · Control systems for draft lifecycle

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,068 B2
- Document ID: US11308068B2
- Status: Granted
- Kind: B2
- Application number: 15/153,858
- Filed: 2016-05-13
- Published: 2017-11-16
- Granted: 2022-04-19
- Earliest claimed: 2016-05-13
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Harald Evers; Martin Zurmuehl; Ralf Handl; Tilmann David Kopp; Renzo Colle
- Web page: https://patentgrep.com/patent/US11308068B2

## CPC

- G06F 16/2315: {Optimistic concurrency control}
- G06F 16/93: Document management systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system includes identification of editing of an active document by a user, and, in response to the identified editing, setting of enqueue locks on the active document, creating a draft document corresponding to the active document and an enqueue context associated with the draft document, storing the enqueue context with the draft document and attaching the enqueue context to a request session, determining an eTag of the active document and storing the eTag with the draft document, and associating the user with the draft document as its exclusive user.

## Claims

### Claim 1

A system comprising:
a memory storing processor-executable process steps; and
a processor to execute the processor-executable process steps to cause the system to:
identify editing of an active document by a user; and
in response to the identified editing:
set enqueue locks on the active document;
create: 1. a draft document corresponding to the active document, and 2. an enqueue context associated with the draft document, wherein the enqueue context is created to associate the set enqueue locks with the draft document;
store the enqueue context with the draft document and attach the enqueue context to a request session;
determine an eTag of the active document and store the eTag with the draft document; and
associate the user with the draft document as its exclusive user
determine one or more modifying operations to the draft document, each of the one or more modifying operations occurring within a configured durable enqueue lock expiration time of a prior modifying operation;
detect that a time since a last determined modifying operation exceeds the configured durable enqueue lock expiration time; and
in response to the detection, dequeue all durable enqueue locks bound to the enqueue context associated with the draft document and send a notification to the user.

### Claim 2 (depends on 1)

A system according to claim 1, the processor to further execute the processor-executable process steps to cause the system to:
transfer the active document into an optimistic lock;
receive an instruction to activate the modified draft;
in response to the instruction to activate the modified draft, attach an enqueue context, lock the active document, and compare eTags of the draft document and active document;
if the compared eTags match, update the active document with the changes to the draft document, delete the draft document, and release all enqueue locks; and
if the compared eTags do not match, discard the draft document.

### Claim 3

A system comprising:
a memory storing processor-executable process steps; and
a processor to execute the processor-executable process steps to cause the system to:
identify editing of an active document by a user; and
in response to the identified editing:
set enqueue locks on the active document;
create a draft document corresponding to the active document and an enqueue context associated with the draft document;
store the enqueue context with the draft document and attach the enqueue context to a request session;
determine an eTag of the active document and store the eTag with the draft document; and
associate the user with the draft document as its exclusive user;
determine one or more modifying operations to the draft document, each of the one or more modifying operations occurring within a configured durable enqueue lock expiration time of a prior modifying operation;
detect that a time since a last determined modifying operation exceeds the configured durable enqueue lock expiration time minus a warning interval; and
in response to the detection, transmit a notification to the user indicating an upcoming lock expiration.

### Claim 4 (depends on 3)

A system according to claim 3, the processor to further execute the processor-executable process steps to cause the system to:
detect that a time since the last determined modifying operation exceeds the configured durable enqueue lock expiration time; and
in response to the detection, dequeue all durable enqueue locks bound to the enqueue context associated with the draft document and send a second notification to the user indicating lock expiration.

### Claim 5 (depends on 4)

A system according to claim 4, the processor to further execute the processor-executable process steps to cause the system to:
transfer the active document into an optimistic lock;
receive an instruction to activate the modified draft;
in response to the instruction to activate the modified draft, attach an enqueue context, lock the active document, and compare eTags of the draft document and active document;
if the compared eTags match, update the active document with the changes to the draft document, delete the draft document, and release all enqueue locks; and
if the compared eTags do not match, discard the draft document.

### Claim 6

A computer-implemented method comprising:
identifying editing of an active document by a user; and
in response to the identified editing:
setting enqueue locks on the active document;
creating: 1. a draft document corresponding to the active document, and 2. an enqueue context associated with the draft document, wherein the enqueue context is created to associate the set enqueue locks with the draft document;
storing the enqueue context with the draft document and attach the enqueue context to a request session;
determining an eTag of the active document and store the eTag with the draft document; and
associating the user with the draft document as its exclusive user;
determining one or more modifying operations to the draft document, each of the one or more modifying operations occurring within a configured durable enqueue lock expiration time of a prior modifying operation;
detecting that a time since a last determined modifying operation exceeds the configured durable enqueue lock expiration time; and
in response to the detection, dequeuing all durable enqueue locks bound to the enqueue context associated with the draft document and sending a notification to the user.

### Claim 7 (depends on 6)

A method according to claim 6, further comprising:
transferring the active document into an optimistic lock;
receiving an instruction to activate the modified draft;
in response to the instruction to activate the modified draft, attaching an enqueue context, locking the active document, and comparing eTags of the draft document and active document;
if the compared eTags match, updating the active document with the changes to the draft document, deleting the draft document, and releasing all enqueue locks; and
if the compared eTags do not match, discarding the draft document.

### Claim 8

A method comprising:
identifying editing of an active document by a user; and
in response to the identified editing:
setting enqueue locks on the active document;
creating: 1. a draft document corresponding to the active document, and 2. an enqueue context associated with the draft document, wherein the enqueue context is created to associate the set enqueue locks with the draft document;
storing the enqueue context with the draft document and attach the enqueue context to a request session;
determining an eTag of the active document and store the eTag with the draft document; and
associating the user with the draft document as its exclusive user;
determining one or more modifying operations to the draft document, each of the one or more modifying operations occurring within a configured durable enqueue lock expiration time of a prior modifying operation;
detecting that a time since a last determined modifying operation exceeds the configured durable enqueue lock expiration time minus a warning interval; and
in response to the detection, transmitting a notification to the user indicating an upcoming lock expiration.

### Claim 9 (depends on 8)

A method according to claim 8, further comprising:
detecting that a time since the last determined modifying operation exceeds the configured durable enqueue lock expiration time; and
in response to the detection, dequeuing all durable enqueue locks bound to the enqueue context associated with the draft document and sending a second notification to the user indicating lock expiration.

### Claim 10 (depends on 9)

A method according to claim 9, further comprising:
transferring the active document into an optimistic lock;
receiving an instruction to activate the modified draft;
in response to the instruction to activate the modified draft, attaching an enqueue context, lock the active document, and comparing eTags of the draft document and active document;
if the compared eTags match, updating the active document with the changes to the draft document, deleting the draft document, and releasing all enqueue locks; and
if the compared eTags do not match, discarding the draft document.
