Creación de procedimientos almacenados

Completado

Las transacciones se definen como funciones de JavaScript. Luego, la función se ejecuta cuando se invoca al procedimiento almacenado.

function name() {
}

Dentro de la función, el método getContext() recupera un objeto de contexto que se puede usar para realizar varias acciones, que incluyen:

  • Acceder al objeto de respuesta HTTP

  • Acceder al contenedor correspondiente de Azure Cosmos DB for NoSQL

Con el objeto de contexto puede invocar al método getResponse() a fin de acceder al objeto de respuesta HTTP para realizar acciones como la devolución de una respuesta HTTP OK (200) y el establecimiento del cuerpo de la respuesta en una cadena estática.

function greet() {
    var context = getContext();
    var response = context.getResponse();
    response.setBody("Hello, Learn!");
}

De nuevo, con el objeto de contexto puede invocar al método getCollection() para acceder al contenedor mediante la API de consulta de JavaScript.

function createProduct(item) {
    var context = getContext();
    var container = context.getCollection(); 
}

En este punto puede realizar operaciones típicas como la creación de un nuevo documento.

function createProduct(item) {
    var context = getContext();
    var container = context.getCollection(); 
    container.createDocument(
        container.getSelfLink(),
        item
    );
}

Este procedimiento almacenado está prácticamente terminado. Aunque este código se va a ejecutar correctamente, existe el riesgo de que se detecten errores y no se pueda devolver si el procedimiento almacenado ha superado el tiempo de espera. Hay que actualizar el código mediante la implementación de dos cambios más:

  • Almacene el valor booleano devuelto de container.createDocument y úselo para determinar si se debe devolver desde la función debido a un tiempo de espera del servidor inminente.

  • Agregue un tercer parámetro a container.createDocument para controlar posibles errores y establezca la respuesta de este procedimiento almacenado en el elemento recién creado devuelto desde la operación.

function createProduct(item) {
    var context = getContext();
    var container = context.getCollection(); 
    var accepted = container.createDocument(
        container.getSelfLink(),
        item,
        (error, newItem) => {
            if (error) throw error;
            context.getResponse().setBody(newItem)
        }
    );
    if (!accepted) return;
}

Sugerencia

También puede usar el acceso directo __ (subrayado doble) como equivalente a getContext().getCollection().