miércoles, 22 de agosto de 2018

- La transacción asociada con la conexión actual se ha completado, pero no se ha desechado. Debe desecharse antes de utilizar la conexión para ejecutar instrucciones SQL.

Hola amigos,

En esta ocasion veremos como solucionar este problema "- La transacción asociada con la conexión actual se ha completado, pero no se ha desechado. Debe desecharse antes de utilizar la conexión para ejecutar instrucciones SQL." que nos da cuando usamos transacciones largas con transactionscope, estableciendo el tiempo mas largo en nuestro web.config solucionaremos este problema.




<configuration>
   <system.transactions>
    <defaultSettings timeout="00:40:00" />  
</system.transactions>

  
  <appSettings>


Slds

miércoles, 1 de agosto de 2018

An error occurred while parsing EntityName. Line 1, position 2083. Facturacion Electronica

Estimados,

Cuando tengamos este tipo de error, tenemos que tener en cuenta que al cargar el xml (LoadXml)
con el caracter & ya que esto ara que se caiga parse del documento.


Slds

martes, 26 de junio de 2018

Generar Tabla de Calendarios y Calendarios x Empleado



Estimados,

En esta ocasión les dejare este pequeño ejemplo como yo realice un calendario y calendario empleado por temas de rrhh.

Slds



declare @Fecha datetime = '01/12/2018'

 declare @ini datetime
declare @fin datetime

--primer dia del mes
SELECT  @ini =  DATEADD(mm, DATEDIFF(mm,0,@Fecha ), 0)

--ultimo dia del mes
SELECT @fin  = dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@Fecha  )+1, 0));


 declare @begdate as datetime
declare @enddate as datetime
declare @diff as int

declare @T_Fecha Table
(
Periodo varchar(10),
Annio int  ,
Mes int  ,
Fecha datetime ,
Feriado bit
)

set @begdate = (select cast( @ini as datetime)  )
set @enddate = (select cast(@fin as datetime)  )
set @diff = datediff(day, @begdate ,@enddate)

while (@begdate <= @enddate) --insertar el registro hasta que fecha inicio y fin sean iguales
begin
     --insert into @T_Fecha  values( ( cast( year(@begdate) as varchar)+ '-' + RIGHT( '00' + cast( month(@begdate) AS varchar), 2)  ) , year(@begdate), month(@begdate),  @begdate , 0)
insert into Calendario values( ( cast( year(@begdate) as varchar)+ '-' + RIGHT( '00' + cast( month(@begdate) AS varchar), 2)  ) , year(@begdate), month(@begdate),  @begdate , 0)
set @begdate = dateadd(day,1,@begdate) --vamos incrementando los días
end

select distinct Periodo from Calendario 

select distinct idpersonal  , Periodo from dbo.personal
left join Calendario on Calendario.Periodo=Calendario.Periodo

insert into   EmpleadoCalendario
select distinct idpersonal  , Periodo from dbo.personal
left join Calendario on Calendario.Periodo=Calendario.Periodo

select * from EmpleadoCalendario where idempleado = 3

martes, 19 de junio de 2018

Limpiar Formulario desde C# ASP.NET - Nuevo

Para limpiar un formulario desde un boton "Nuevo", podemos realizarlos con este pequeño codigo, esto incluye asi tengamos querystrings en nuestros formularios.



Response.Redirect(Request.RawUrl.Replace(Request.Url.Query, ""));




Slds

viernes, 24 de noviembre de 2017

Cannot find libSQLDBCHDB.dll:null HANA

Estimado,

En esta ocasión veremos como solucionar este problema.





esto lo resolvemos cambiando las propiedades del proyecto 



Slds



viernes, 9 de junio de 2017

Store procedure SAP Hana

Estimados,

En esta ocasión veremos como generar un store procedure en Hana Studio e invocarlo desde visual Studio .net, asimismo adjuntare las DLL necesarias para la conexion asi como la cadena de conexion,  sabemos que no hay mucha información sobre Hana studio hasta el momento, seria bueno sus comentarios,

Saludos,

DROP PROCEDURE "Pa_OrdenCompra_Listar";

CREATE PROCEDURE "Pa_OrdenCompra_Listar" (
IN Id int)

as
BEGIN




select "DocNum" ID, "CardCode" as Codigo,"CardName" as Proveedor, "Address" Direccion, "DocTotal" Total ,cast(  "DocDate" as char(10)) Fecha , "DocCur" Moneda
from opor

;

END

  void DataHana()
    {

        HanaConnection oHanaConnection = new HanaConnection("Server=192.168.1.XX:TUPUERTO;UserID=TUUSUARIO;Password=TUCLAVE");
        oHanaConnection.Open();

        String strSQL = "select * from BD.OIGN ";

        //Execute the SQL statement
        HanaCommand cmd = new HanaCommand(strSQL, oHanaConnection);
        String strCommand = @"call  ""BD"".""Pa_OrdenCompra_Listar"" (1)";
        DataTable oDataTable = new DataTable();
        HanaCommand oHanaCommand = new HanaCommand();
        oHanaCommand.Connection = oHanaConnection;
        //  oHanaCommand.CommandType = CommandType.StoredProcedure;
        oHanaCommand.CommandText = strCommand;// @"ZZ_DESARROLLO.bpvs_CL_LY_VOUCHER";

        // CALL "bpvs_CL_LY_VOUCHER" ({?DocKey@})

        //oHanaCommand.Parameters.AddWithValue("Id", 1);

        HanaDataAdapter oHanaDataAdapter = new HanaDataAdapter(oHanaCommand);

        //Read and store the result set
        HanaDataReader reader = cmd.ExecuteReader();


        oHanaDataAdapter.Fill(oDataTable);


        string Filas = oDataTable.Rows.Count.ToString();

        //Bind the result set to a DataGridViewer/
        GridFamiliaProductos.DataSource = oDataTable;
        GridFamiliaProductos.DataBind();

        //Close the reader connection

        reader.Close();

        //Close the database connection

        oHanaConnection.Close();

    }