Se mueve de CreditNotesRepository a ConnectionServiceLayer (PostAsync, PatchAsyncSBA, PatchNoContentAsync) con un hook asignado en Startup. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
50 lines
2.8 KiB
C#
50 lines
2.8 KiB
C#
using Newtonsoft.Json;
|
|
using Sap.Data.Hana;
|
|
using System;
|
|
using System.Text;
|
|
|
|
namespace Net.Data.HelperData.Log
|
|
{
|
|
// Guarda en ITCA_LOG_INTEGRACION el JSON enviado al Service Layer cuando SAP rechaza un envio (cualquier documento).
|
|
// Misma tabla que Net.Business.Services.Log.B_Log (esa clase no se puede usar desde Net.Data).
|
|
public class HelperLogServiceLayer
|
|
{
|
|
// query: ruta del recurso del Service Layer (ej. "CreditNotes", "StockTransfers")
|
|
public static void AddError(string query, object jsonEnviado, string respuesta)
|
|
{
|
|
try
|
|
{
|
|
var recurso = query ?? "";
|
|
if (recurso.Length > 30) recurso = recurso.Substring(0, 30);
|
|
|
|
var trama = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(jsonEnviado));
|
|
var tramaRespuesta = Encoding.UTF8.GetBytes(respuesta ?? "");
|
|
|
|
using (var hana = new HanaConnection(LocalData.ConnectionString))
|
|
{
|
|
hana.Open();
|
|
HanaCommand hanaCommand = hana.CreateCommand();
|
|
hanaCommand.CommandText = "INSERT INTO \"ITC_WMS_SAP\".\"ITCA_LOG_INTEGRACION\" (\"CODIGO\", \"ORIGEN\", \"TRAMA_ORIGEN\", \"TRAMA_RESPUESTA\", \"PROCESO\", \"FECHA\", \"NRO_ORDEN\", \"DOCENTRY\", \"DOCNUMSAP\", \"DOCENTRYSAP\", \"HORA\") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
hanaCommand.Parameters.Add("CODIGO", HanaDbType.VarChar).Value = Guid.NewGuid().ToString();
|
|
hanaCommand.Parameters.Add("ORIGEN", HanaDbType.VarChar).Value = "ServiceLayer";
|
|
hanaCommand.Parameters.Add("TRAMA_ORIGEN", HanaDbType.Blob).Value = trama;
|
|
hanaCommand.Parameters.Add("TRAMA_RESPUESTA", HanaDbType.Blob).Value = tramaRespuesta;
|
|
hanaCommand.Parameters.Add("PROCESO", HanaDbType.VarChar).Value = "ServiceLayer Error";
|
|
hanaCommand.Parameters.Add("FECHA", HanaDbType.Date).Value = DateTime.Now.ToString("yyyy-MM-dd");
|
|
hanaCommand.Parameters.Add("NRO_ORDEN", HanaDbType.VarChar).Value = recurso;
|
|
hanaCommand.Parameters.Add("DOCENTRY", HanaDbType.VarChar).Value = recurso;
|
|
hanaCommand.Parameters.Add("DOCNUMSAP", HanaDbType.VarChar).Value = "0";
|
|
hanaCommand.Parameters.Add("DOCENTRYSAP", HanaDbType.VarChar).Value = "0";
|
|
hanaCommand.Parameters.Add("HORA", HanaDbType.VarChar).Value = DateTime.Now.ToString("HH:mm:ss");
|
|
hanaCommand.CommandType = System.Data.CommandType.Text;
|
|
hanaCommand.ExecuteNonQuery();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
// el log nunca debe romper el flujo principal
|
|
}
|
|
}
|
|
}
|
|
}
|