Log del JSON enviado al Service Layer cuando SAP rechaza, para todos los documentos. Versión 2.1.5.0

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>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-14 17:06:07 -05:00
1 parent 1ce0da7735
commit e5ea57b673
5 files changed
+39 -24

No files matched your search

@@ -5,14 +5,18 @@ using System.Text;
namespace Net.Data.HelperData.Log
{
// Guarda en ITCA_LOG_INTEGRACION el JSON enviado al Service Layer cuando SAP rechaza el documento.
// 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
{
public static void AddError(string proceso, string docEntryOrigen, object jsonEnviado, string respuesta)
// 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 ?? "");
@@ -25,10 +29,10 @@ namespace Net.Data.HelperData.Log
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 = proceso;
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 = docEntryOrigen ?? "";
hanaCommand.Parameters.Add("DOCENTRY", HanaDbType.VarChar).Value = docEntryOrigen ?? "";
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");
@@ -6,7 +6,6 @@ using Net.Business.Entities.ServicesLayer.CreditNotes;
using Net.Connection;
using Net.Connection.ServiceLayer;
using Net.CrossCotting;
using Net.Data.HelperData.Log;
using System;
using System.Collections.Generic;
using System.Net.Http;
@@ -51,8 +50,6 @@ namespace Net.Data.ServicesLayer.CreditNotes
if (!data.Exito)
{
// Solo si SAP rechaza: guarda el JSON enviado al Service Layer para poder revisarlo
HelperLogServiceLayer.AddError("NotaCredito Error", DocEntryOrigen(entidad), entidad, data.Mensaje);
return resultadoTransaccion.GetInformacionResultado(-1, -1, data.Mensaje);
}
@@ -60,17 +57,10 @@ namespace Net.Data.ServicesLayer.CreditNotes
}
catch (Exception ex)
{
HelperLogServiceLayer.AddError("NotaCredito Error", DocEntryOrigen(entidad), entidad, ex.Message);
return resultadoTransaccion.GetInformacionResultado(-1, -1, ex.Message.ToString());
}
}
// DocEntry del documento base (factura o solicitud de devolucion) de la primera linea
private static string DocEntryOrigen(BE_CreditNotesNotes entidad)
{
return entidad?.DocumentLines?.Count > 0 ? entidad.DocumentLines[0].BaseEntry?.ToString() : null;
}
public async Task<BE_ResultadoTransaccion<BE_BaseResponseSap>> UpdateCreateCreditNotes(dynamic entidad, int DocEntry)
{