Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Transacciones de flujo de trabajo

WF proporciona el soporte técnico para participar en las transacciones del espacio de nombres System.Transactions usando la actividad TransactionScope para abarcar una unidad de trabajo con la que se haya realizado una transacción. Aunque la clase System.Transactions.TransactionScope debe completarse explícitamente, la actividad System.Activities.Statements.TransactionScope realiza una llamada implícita de finalización de la transacción cuando se haya completado correctamente. Las actividades que se contengan en Body de la actividad TransactionScope participan en la transacción. WF puede fluir las transacciones en un flujo de trabajo a través del uso de la actividad TransactedReceiveScope. Al igual que ocurre con la actividad TransactionScope, cualquier actividad contenida en la propiedad Body participa en la transacción. WF garantiza que las actividades dependientes de Transaction.Current funcionan con TransactionScope y TransactedReceiveScope. Si las actividades proporcionadas por el sistema no afrontan todos los requisitos, las actividades personalizadas se pueden compilar usando RuntimeTransactionHandle para habilitar los escenarios de flujo avanzado y del control de transacciones.

En el ejemplo siguiente, tomado del ejemplo de TransactionScope básico, se construye un flujo de trabajo que consta de una actividad Sequence que contiene actividades secundarias incluida una actividad TransactionScope. Las actividades Body de TransactionScope se ejecutan bajo la transacción inicializada por la actividad TransactionScope.

static Activity ScenarioOne()
{
    return new Sequence
    {
        Activities =
        {
            new WriteLine { Text = "    Begin workflow" },

            new TransactionScope
            {
                Body = new Sequence
                {
                    Activities = 
                    {
                        new WriteLine { Text = "    Begin TransactionScope" },

                        new PrintTransactionId(),
                                
                        new TransactionScopeTest(),

                        new WriteLine { Text = "    End TransactionScope" },
                    },
                },
            },

            new WriteLine { Text = "    End workflow" },
        }
    };
}


Para obtener más información, vea los ejemplos de Transacciones [Ejemplos de WF] básicos y los ejemplos de Transacciones [WF Scenario Samples] basados en escenarios.Para obtener más información, vea cómo usar TransactedReceiveScope, vea Flujo de las transacciones en los servicios de flujo de trabajo.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft