jueves, 16 de febrero de 2023

dapihttp - Error La conexion con el servidor finalizo anormalmente (The connection with the server was terminated abnormally)

Este error se ha dado en Windows 7, debido a que los protocolos TLS 1.1 y TLS 1.2 no estan activados por defecto para WinHTTP.

Para configurarlos seguir los pasos indicados en este KB


miércoles, 2 de noviembre de 2022

Leer datos con REST

Ejemplo de conexión via REST y búsqueda sobre una carpeta 

<script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/gh/CloudyVisionArg/cdn@102/doorsapi.js" type="text/javascript"></script>

<script>
Doors.RESTFULL.ServerUrl = 'https://cloudycrm.net/restful';
Doors.RESTFULL.ApiKey = myApiKey;

var folderId = 9999; // ID de la carpeta
var fields = 'campo1, campo2'; // Lista de campos separados por coma
var formula = 'nrocliente = \'VC2541\''; // Filtro de la busqueda
var order = 'campo1';      // Campo por el cual se ordenan los resultados acepta ademas asc o desc
var maxDocs = 0;           // Cantidad maxima de registros (0 = sin limite)
var recursive = false; // Establece si búsqueda es recursiva
var maxDescrLength = 0; // Largo maximo de los campos de texto (0 = sin limite)
DoorsAPI.folderSearch(folderId, fields, formula, order, maxDocs, recursive, maxDescrLength).then(
    function (res) {
        alert(JSON.stringify(res));
    },
    function (err) {
        alert(JSON.stringify(err));
    }
)
</script>

martes, 27 de septiembre de 2022

LAST_LOGON

Con este query puede obtenerse el ultimo acceso de los usuarios:

select ACC_ID, NAME, EMAIL, 
(select top 1 LOGON_TIME from cloudyDoorsMaster_w1.dbo.SYS_CNN_LOG 
where INS_ID = 99 and ACC_ID = SYS_ACCOUNTS.ACC_ID order by LOGON_TIME desc) as LAST_LOGON
from SYS_ACCOUNTS where TYPE = 1 order by NAME


Nota: Reemplazar el 99 por el ID de la instancia en la base master

viernes, 18 de marzo de 2022

Setear el valor de un DTPicker con JavaScript

Al nombre del control le vamos a agregar el sufijo _div :

$('#midtpicker_div').data('DateTimePicker').date(new Date()); // Setea la fecha actual
$('#midtpicker_div').data('DateTimePicker').date(null); // Borra la fecha

Documentacion del control: https://getdatepicker.com/4/


jueves, 3 de marzo de 2022

Funcion PerteneceGrupo para SQL


Esta función permite verificar si una cuenta pertenece a un grupo recursivamente

Sirve para utilizar en vistas, selectores de cuenta o autocomplete

Retorna un número mayor a 0 cuando pertenece al grupo o 0 cuando no pertenece

Uso:

select dbo.PERTENCE_GRUPO(<acc_id>,<acc_id_grupo>)


Script SQL

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE FUNCTION [dbo].[PERTENECE_GRUPO]

(

@accId int,

@group int

)

RETURNS int

AS

BEGIN

DECLARE @Result int;

WITH cte_acc AS (

SELECT       

[ACC_ID_PARENT], 

   [ACC_ID_CHILD]

FROM       

[SYS_ACC_REL]

WHERE [ACC_ID_CHILD] = @accId

UNION ALL

SELECT 

R.[ACC_ID_PARENT], 

   R.[ACC_ID_CHILD]

FROM 

[SYS_ACC_REL] R

INNER JOIN cte_acc o 

ON o.[ACC_ID_PARENT] = R.[ACC_ID_CHILD]

)

SELECT @Result = count(*) FROM cte_acc WHERE ACC_ID_PARENT = @group;

RETURN @Result;

END


lunes, 15 de noviembre de 2021

generic3 no llama a callBackFunction

Una ventana de generic3 abierta desde un <a> con target"_blank", no llama a callBackFunction al Guardar y salir.

Para corregir esto es necesario agregar rel="opener" al tag <a>. Ej:

    <a href="generic3.asp?etc" target="_blank" rel="opener">Mi enlace</a>


Mas información: https://stackoverflow.com/questions/57060721/window-opener-is-null-ios-12-3-1-safari-and-chrome


martes, 28 de septiembre de 2021

Herramienta de conversion de json a xml y viceversa

Herramienta http que convierte un string JSON a XML o un string XML a JSON

Esta herramienta tiene 2 formas de ser utilizada:

- Convirtiendo un string enviado en el body de la petición

- Realizando una petición a una URL externa (proxy de petición)


El modo de convertir un string es el siguiente:

Método: POST

URL: /w/utilities/jsonxmlserializer?mode=toxml

Cuerpo: {"results":[{"micasa":"blanca"}]}


El modo de realizar una petición a una URL externa es el siguiente (solicitud de ejemplo PUT a example.com y devolviendo xml):

Metodo: POST

URL: /w/utilities/jsonxmlserializer?mode=toxml&request=example.com&method=PUT

Cuerpo: {"results":[{"micasa":"blanca"}]} (Este es el cuerpo que se enviará a example.com)


URL de la herramienta

/w/utilities/jsonxmlserializer

Método: POST


Parámetros aceptados

Parámetro: mode

Este parámetro determina si el cuerpo de la solicitud se deberá cambiar a xml o a json. El cuerpo de la solicitud debe ser el opuesto al recibido (si quiero transformar a xml, el cuerpo deberá ser json y si quiero transformar a json deberá ser xml)

Valores permitidos: toxml, tojson

Enviar por: querystring

Requerido


Parámetro: request

De ser enviado, este parámetro se utilizará para realizar una petición al valor proporcionado y el cuerpo de la respuesta a esa petición, se utilizará para convertirse a xml o json según determine el parámetro mode

Valores permitidos: URL encodeada

Enviar por: querystring

Opcional


Parámetro: method

Método http para utilizar en la petición definida por el parámetro request

Valores permitidos: POST,GET,PUT,DELETE,PATCH

Enviar por: querystring

Requerido si parametro "request" es enviado


Parámetro: headers

Valor encodeado de headers a enviar en la peticion definida por el parámetro "request" con el formato: Nombre:Valor|Nombre:Valor

Valores permitidos: cualquier cadena de texto soportada por URL con el formato mencionado

Enviar por: querystring

Opcional