Exécuter une transaction
2 min
Vue d’ensemble
Une transaction assemble plusieurs opérations d'écriture d'entités en une seule opération tout ou rien.
Prérequis
Afin de lier une opération d'écriture d'une entité à une transaction, il est nécessaire de fournir l'identifiant de la transaction en paramètre.
Exemple
import { rollbackTransaction, transaction } from '@fasstech/oip-core/transactions';
// Create a new transaction
const transactionId = await transaction();
let project;
project = await $Project();
// Here, project is: {}
project = setProjectExternalId('1', project);
project = await updateProject(project, { transactionId });
// Here, project is: { externalId: '1' }
project = setProjectExternalId('2', project);
project = await updateProject(project, { transactionId });
// Here, project is: { externalId: '2' }
project = setProjectStatus('PROJECT_STATUS_1', project);
project = await updateProject(project, { transactionId });
// Here, project is: { externalId: '2', status: 'PROJECT_STATUS_1' }
// Revert all operations performed on transaction `transactionId`
await rollbackTransaction(transactionId);
// Here, project is: { externalId: null, status: null }
project = setProjectExternalId('3', project);
project = await updateProject(project);
// Here, project is: { externalId: '3', status: null }