Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

224
Vistas
.Net SAP Transaction reinicio desde el cliente

Estoy usando la biblioteca .Net NCo 3.0 y probé un ejemplo de tRFC en el que veo que la ID de la transacción se crea y se asocia con la función RFC y luego se invoca, después de una transacción exitosa, la ID de la transacción se elimina, aquí mantenemos la Transacción detalles en la base de datos para cada operación tRFC, entonces, en este caso, si la transacción falla, podemos obtener la ID de la base de datos y podemos intentarlo de nuevo, me gustaría saber la implementación del código del mecanismo de reintento, existe la posibilidad de que el servidor SAP está inactivo, así que cuándo y cómo reiniciar y asegurarse de que la transacción iniciada se ejecute solo una vez, sin pérdida de datos ni duplicación.

 TidStore tidStore = new TidStore("clientTidStore", false); static RfcTransaction CreateTransaction(TidStore tidStore, out string data) { RfcTransaction trans = new RfcTransaction(); // This creates a fresh TID.; Console.Write("Please enter some input data: "); data = Console.ReadLine(); FileStream dataFile = new FileStream(trans.Tid.TID, FileMode.Create, FileAccess.ReadWrite); byte[] utf8Data = Encoding.UTF8.GetBytes(data); dataFile.Write(utf8Data, 0, utf8Data.Length); dataFile.Close(); tidStore.CreateEntry(trans.Tid.TID); return trans; } private void SubmitTransaction(RfcTransaction trans, TidStore tidStore, String data) { try { IRfcTable dataTable = stfc_write_to_tcpic.GetTable("TCPICDAT"); dataTable.Append(); dataTable.SetValue(0, data); // Insert the function module into the transaction: trans.AddFunction(stfc_write_to_tcpic); stfc_write_to_tcpic = (IRfcFunction)stfc_write_to_tcpic.Clone(); dataTable = stfc_write_to_tcpic.GetTable("TCPICDAT"); dataTable.SetValue(0, data + " -- data of the second function module"); trans.AddFunction(stfc_write_to_tcpic); trans.Commit(_ECCsystem); tidStore.SetStatus(trans.Tid.TID, TidStatus.Committed, null); File.Delete(trans.Tid.TID); _ECCsystem.ConfirmTransactionID(trans.Tid); tidStore.DeleteEntry(trans.Tid.TID); } catch (Exception e) { tidStore.SetStatus(trans.Tid.TID, TidStatus.RolledBack, e.Message); } } } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe crear su propia función con un intervalo de tiempo para verificar qué TID aún no se han procesado.

over 4 years ago · Santiago Trujillo Denunciar

0

Con respecto al manejo y la implementación del manejo de transacciones de SAP en el lado del programa externo, hay algunas explicaciones generales en la Guía de programación de SAP NetWeaver RFC SDK 7.50 que creo que son muy útiles. Consulte los capítulos 4.3, 4.4 y 5.5. Es más detallado que lo que se explica en la Guía de programación de SAP .NET Connector 3.0 y también se puede adaptar fácilmente a las API de programación de NCo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda