Se desea que el ERP sea capaz de ejecutar acciones (apertura de formularios, ejecución de procesos, etc) a partir de un protocolo de URL especifico.


Versión 4:

Importante

Para poder utilizar esta funcionalidad es necesario que el cliente esté trabajando con el entorno TechFun.


La dirección URL deberá tener el siguiente formato:

erp://[tokenbasededatos]/[cadenab64]

Versión 5:

La dirección URL deberá tener el siguiente formato:

erp5://[tokenbasededatos]/[cadenab64]


Para obtener el token de base de datos del usuario podemos utilizar la siguiente consulta:

SELECT object_id('ahora_sesion')

Ejemplo de URL:

erp://628197288/SU1QUklNSVJPQkpFVE98W3siQ29sZWNjaW9uIjoiQ2xpZW50ZXMiLCJpZERvYyI6MDAwMDF9XXxDbGllbnRlfENsaWVudGVz

- [tokenbasededatos]:  Es el object_id de la tabla ahora_sesion de la base de datos desde donde se genera la dirección.

- [cadenab64]: Serán los datos de la petición representados en una cadena base 64.


Impresión de un objeto

 

 IMPRIMIROBJETO|Herencia|HijoDefecto|Objeto

  • Herencia: Se debe construir un objeto con formato JSON con dos propiedades: Coleccion e IdDoc.
  • HijoDefecto: hijo defecto del objeto. Cliente
  • Objeto: Clientes


IMPRIMIROBJETO|[{"Coleccion":"NombreColeccion","idDoc":valoridDoc}]|HijoDefecto|Coleccion
IMPRIMIROBJETO|[{"Coleccion":"Clientes","idDoc":1}]|Cliente|Clientes
IMPRIMIROBJETO|[{"Coleccion":"Facturas","idDoc":1}]|Factura|Facturas


Acceder a un objeto

 

  • Objeto: Clientes
  • IdDoc: IdDoc = 100
  • QueryFinal: SELECT iddoc _iddoc_, ''+ISNULL(CAST(Cliente AS VARCHAR(200)), '')+' - '+ISNULL(CAST(IdCliente AS VARCHAR(200)), '')+'' _cadenadescrip_, IdCliente, Cliente, Nif, DescripFormaPago, Ciudad, NumTelefono, NumFax, E_Mail From VDLG_CLIENTES
  • Where (Si no hay Where por defecto se pondrá ‘IdDoc >= 1’)
  • NuevaVentana: true o false. Indica si se abre una nueva ventana de VB6 o se carga el objeto sobre la anterior
  • Herencia: Indica si el objeto proviene de un objeto padre para heredar las propiedades. Si no proviene se deja el parámetro vacío
  • GroupBy: sirve para las flechas de navegación de los formularios, al cambiar de objeto seguir el orden de la colección. Si no contiene el groupby se deja el parámetro vacío.
  • OrderBy: sirve para las flechas de navegación de los formularios, al cambiar de objeto seguir el orden de la colección. (ORDER BY IdCliente asc)
  • FinalQueryCampos: Query con campos parseados iddoc y _cadenadescrip_. En la versión de prueba probar poniendo el mismo valor que el parámetro QueryFinal de arriba. Si es necesario se implementará la funcionalidad que hace Techfun
  • Arbol: por defecto poner noarbol

  • ABRIROBJETO|Clientes|IdDoc=2658|SELECT iddoc _iddoc_, ''+ISNULL(CAST(Cliente AS VARCHAR(200)), '')+' - '+ISNULL(CAST(IdCliente AS VARCHAR(200)), '')+'' _cadenadescrip_, IdCliente, Cliente, Nif, DescripFormaPago, Ciudad, NumTelefono, NumFax, E_Mail From VDLG_CLIENTES|IdDoc >= 1|false|[{"Coleccion":"Clientes"}]||ORDER BY IdCliente asc|SELECT iddoc , ''+ISNULL(CAST(Cliente AS VARCHAR(200)), '')+' - '+ISNULL(CAST(IdCliente AS VARCHAR(200)), '')+'' , IdCliente, Cliente, Nif, DescripFormaPago, Ciudad, NumTelefono, NumFax, E_Mail From VDLG_CLIENTES|noarbol



Abrir un colección

  • Objeto: Clientes
  • IdDoc: IdDoc = 1,723


ABRIRCOLECCION|Clientes|idDoc IN (1,723)



Ejecución de un proceso asociado al objeto (Menú contextual)


EJECUTAMENUOBJETO|herencia||Objeto|id


  • Herencia: Mismo formato del parámetro herencia de arriba: {“Coleccion”: “Clientes”, “IdDoc”: 100}
  • Objeto: Nombre del objeto (Clientes)
  • Id: Id del menú que se debe ejecutar.

-- Ver las opciones de menú de un Objeto
SELECT Distinct Cmn.Caption, Cmp.IdProceso, Cmp.Estado, Cmp.Orden,Cmn.IdTecla
FROM CEESI_Menus Cmn
INNER JOIN CEESI_Menu_Procesos Cmp ON Cmn.IdMenu = Cmp.IdMenu
INNER JOIN CEESI_Procesos Cpr ON Cmp.IdProceso = Cpr.IdProceso
INNER JOIN vCeesi_menu_Objeto cmo ON cmp.IdMenu=cmo.IdMenu AND cmp.Objeto=cmo.Objeto
WHERE Cmp.Objeto='nombredelObjeto'
ORDER BY Cmp.Orden, Cmp.IdProceso

EJECUTAMENUOBJETO|[{"Coleccion":"Facturas","IdDoc":1}]||Facturas|62
EJECUTAMENUOBJETO|[{"Coleccion":"Facturas","IdDoc":1}]||Facturas|63


Versión 4:

Ejecución de un Visual Basic Script

Importante

Válido para ejecutar cualquier bloque de código de VBScript. OJO NO INVOCAR AL

‘frmAux.Descargar’ PORQUE FALLARÁ LA EJECUCIÓN:


VBSCRIPT|CodigoScript|


VBSCRIPT|Sub Main() MsgBox "Test" End Sub|


Versión 5:

Ejecución de un Script de C#


 CSCRIPT|CodigoScript

CSCRIPT|using AhoraCore;
using AhoraOCX;
using AhoraSistema;
using static AhoraCore.VBA.Interaction;
using static AhoraCore.VbMsgBoxResult;
using static AhoraCore.VbMsgBoxStyle;
using System;

namespace AhoraScriptsVacia
{
    public class Script_Auto : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
      MsgBox("PRUEBA LANZADA");
        }
    }
}