lunes, 2 de abril de 2018

REST Web Service: Consulta de RUC - SUNAT

Realice la implementación del Servicio Web para consultar el Registro Único de Contribuyentes (RUC) - SUNAT. Se utilizaron tecnologías como: PHP 7, Framework Laravel 5, MySQL y Scripts para Procesos Batch en Linux.

La URL para consultar debe tener el siguiente formato: http://services.wijoata.com/consultar-ruc/api/ruc/{RUC} o https://services.wijoata.com/consultar-ruc/api/ruc/{RUC}.

Ejemplo: http://services.wijoata.com/consultar-ruc/api/ruc/20600675070 o https://services.wijoata.com/consultar-ruc/api/ruc/20600675070

Así mismo la solicitud debe de contemplar:
  • Accept: application/json
  • Content-Type: application/json
  • Method: POST
El formato de la respuesta es de tipo: JSON, con la siguiente estructura:
{
    "status": 1,
    "msg": "Operación satisfactoria.",
    "ruc": "20600675070",
    "razonSocial": "TERPRO INGENIEROS S.A.C. - TERPRO S.A.C.",
    "direccion": "URB. LOS ROBLES LA MOLINA CAL. LOS TALLANES 196 Dpto. 301",
    "ubigeo": "150114"
}

A continuación, imagen para ilustrar el funcionamiento del Servicio Web:



Espero les sea de mucha ayuda.

Última actualización: 27-01-2021

Saludos,

Wijoata ;-)

miércoles, 2 de agosto de 2017

Ejecutar Clase Java desde Consola (Linux/Windows)

Existen casos que en los que se requiere ejecutar una clase Java para realizar la manipulación de datos y obtener indicadores o generar archivos de texto plano para una migración o corrección de datos por única vez.

Bueno, una posible y rápida solución es implementar el algoritmo en una clase Java y realizar su ejecución desde Consola.

Por ejemplo; si tenemos un archivo Java: Tarea01.java y deseamos ejecutarlo desde una consola Linux; debemos hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando:
    javac Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java Tarea01

Si la clase Java requiere una librería en particular, debemos hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando:
    javac -cp "ojdbc14.jar:" Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java -cp "ojdbc14.jar:" Tarea01
En caso, la ejecución se realice en una consola Windows; se debe hacer lo siguiente:
  1. Compilar el archivo Tarea01.java con el siguiente comando (las librerías son separadas por ";"):
    javac.exe -cp "ojdbc14.jar;" Tarea01.java
  2. Luego ejecutarlo con el siguiente comando:
    java.exe -cp "ojdbc14.jar;" Tarea01
Una herramienta ligera y simple de utilizar cuando se trata de trabajar con Scripts implementados archivos Java es Gel (https://drive.google.com/open?id=0B8qXL-W9xQqabng3X1dvczZtckU)



Espero les sea de mucha ayuda.

Saludos,

Wijoata

lunes, 1 de agosto de 2016

Implementación de un Proxy Cliente desde un WSDL - SOAP - Java

Muchos desarrolladores siempre utilizan IDEs para la implementación de un Cliente Proxy para utilizar un Servicio Web; generándose las clases de la implementación en paquetes por defecto que define el WSDL del Servicio Web, los cuales se ven mal al momento de anexarlos a nuestro proyecto.

Por ejemplo: Tenemos un proyecto, en el que estamos trabajando con los siguientes paquetes:

  • latam.company.proyecto.controller
  • latam.company.proyecto.model
  • latam.company.proyecto.service
  • latam.company.proyecto.util
  • pe.com.other.company.ws.consult (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • pe.com.other.company.ws.consult.Error.V1  (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • pe.com.other.company.ws.consult.TestHeader.V1  (Paquetes de las Clases del Servicio Web - Cliente Proxy)

En este caso, el IDE generó las clases del Cliente Proxy en los paquetes: pe.com.other.company.ws.consult, los cuales son distintos al estándar que se esta manejando en nuestro proyecto.

Para mantener el estándar, recomiendo realizar lo siguiente:

  1. Utilizar el ejecutable o herramienta que viene en el SDK de java, de nombre wsimport.exe (WINDOWS) o wsimport (LINUX). La ubicación en el SDK: ..\Java\jdk1.7.0_25\bin\wsimport.exe (WINDOWS).
  2. Ejecutarlo el comando desde la consola, de la siguiente forma: 
    1. wsimport -p latam.company.proyecto.ws -keep -verbose http://192.168.2.140/TEST/Subscriptions/Consult?wsdl
    Donde:
     -p latam.company.proyecto.ws: Indica el paquete donde deseamos que se generen las clases de la implementación. El nombre del paquete debe seguir el estándar de la solución a implementar. 
     -keep: Nos permite guardar los archivos generados. (*.java, *.class).
     -verbose: Mensajes del proceso de generación.
     http://192.168.2.140/TEST/Subscriptions/Consult?wsdl: Ubicación del WSDL del Servicio Web. Este también puede ser una ubicación local, por ejemplo: "D:\TEST\Consult.wsdl" para Windows.

Luego de generar las clases, se deben agregar al proyecto, quedando de la siguiente forma:
  • latam.company.proyecto.controller
  • latam.company.proyecto.model
  • latam.company.proyecto.service
  • latam.company.proyecto.util
  • latam.company.proyecto.ws (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • latam.company.proyecto.ws.Error.V1 (Paquetes de las Clases del Servicio Web - Cliente Proxy)
  • latam.company.proyecto.ws.TestHeader.V1 (Paquetes de las Clases del Servicio Web - Cliente Proxy)
 
De esta forma se mantendría un orden en la arquitectura lógica de la solución. 






jueves, 22 de octubre de 2015

Oracle DataBase - Como eliminar objetos de un Usuario

Hoy les explicaré como eliminar objetos de un determinado tipo, estos pueden ser: 'TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE', que han sido creados por el usuario que ha iniciado sesión.

Para esto, nos ayudará el siguiente bloque anónimo: 
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
  FOR cur_rec IN (SELECT object_name, object_type
                  FROM   user_objects
                  WHERE  object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE')) LOOP
    BEGIN
      IF cur_rec.object_type = 'TABLE' THEN
        EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '" CASCADE CONSTRAINTS';
      ELSE
        EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"';
      END IF;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.put_line('FAILED: DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"');
    END;
  END LOOP;
END;

Dónde: 

  • SET SERVEROUTPUT ON SIZE 1000000: Tamaño del buffer en bytes para escribir en el log: DBMS_OUTPUT.put_line. 
  • object_type IN ('TABLE', 'VIEW', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE'): Indicamos los tipos de objetos que vamos a eliminar. 
  • IF cur_rec.object_type = 'TABLE' THEN: Condición para eliminar Objetos de Tipo: TABLE, ya que difiere de la forma de eliminar los demás objetos en: CASCADE CONSTRAINTS, las cuales son palabras reservadas que borran primero todas las Foreing Keys que referencian a la tabla.

Saludos, 

domingo, 5 de julio de 2015

Comparar archivos con SUBLIME TEXT 3

Comparar archivos con Sublime Text; me llamo la atención, ya que hacerlo con esta herramienta me pareció demasiado fácil, tan simple como usar las teclas cursores (arriba, abajo, derecha o izquierda); así que les comento como utilizarlo:

Requerimientos:


Instalación de Sublimerge:


1. Ir a la Opción de menú: Preferences > Package Control.


 2. Ejecutamos el Comando: Install Package.


3. Buscamos el Package: Sublimerge 3


4. Una vez instalado, activamos el Package, sino se encuentra en la lista, entonces ya esta activado.

Comprar archivos:

1. Cargamos la carpeta donde se encuentran los archivos a comparar, luego los seleccionamos y procedemos a seleccionarlos. Hacemos Click derecho y seleccionamos: Sublimerge > Compare Selected Files;

2. Se abre una ventana en la que podemos comparar los archivos seleccionados.


3. Pulsamos la tecla Cursor hacia abajo y comenzamos a comprar.  Si deseamos pasar algún cambio del archivo de la Derecha a la Izquierda, simplemente pulsamos la tecla Cursor Izquierda y viceversa.



4. Pasando cambios del archivo de la Derecha al archivo de la Izquierda. Una vez terminada la comparación, guardamos y listo!!.

Espero les sea de mucha ayuda.

Actualizado: 29/06/2021

Saludos,

Wijoata

sábado, 7 de junio de 2014

El Trabajo del Futuro

En esta ocasión les comparto un vídeo muy interesante, que lleva como título "El Trabajo del Futuro"; donde nos muestra la realidad del siglo XXI y sus acelerados cambios, tanto para profesionales como para las empresas de este tiempo. 

Y una de las frases más interesantes: 
"Siempre que te pregunten si puedes hacer un trabajo, contesta que sí y ponte enseguida a aprender como se hace" (F. D. Roosevelt).

Disfrútenlo. 

Saludos, 



jueves, 16 de enero de 2014

Instalación de MariaDB 10.0 en Ubuntu 13.10 saucy x64



Registrando Repositorio:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu saucy main'

Nota: Url para buscar repositorios de otros SO Linux. Aquí



Luego de registrado el Key y Agregado el Repositorio; se actualizan todos los paquetes que Ubuntu con el siguiente comando:

sudo apt-get update 

Instalando MariaDB:
Ahora procedemos a instalar el Motor de Base de Datos MariaDB con el siguiente comando:

sudo apt-get install mariadb-server

Luego de descargar los archivos de instalación necesarios, se inicia el asistente de instalación solicitándonos el password del usuario root (Dos Veces, para confirmar):


Ingresando Password de root


Instalando MariaDB

Para poder administrar los servicios por consola en Ubuntu de una manera amigable; usamos el comando (Es el simil al comando chkconfig):

sudo apt-get install sysv-rc-conf

Luego, de instalarlo solo ejecutamos: sudo sysv-rc-conf:

Panel de Administración de: sysv-rc-conf

Administrando MariaBD - localhost

Administrando MariaDB - HeidiSQL

La relación de Google y MariaDB:


El equipo de MySQL de Google está en el proceso de traslado de los usuarios internos de Google desde MySQL 5.1 a MariaDB 10.0. El equipo de MySQL de Google y el equipo de SkySQL están trabajando juntos para avanzar en la fiabilidad y el conjunto de características de MariaDB.