Doctor de la plaga y Leproso de The Darkest Dungeon

Conversión chapucera de unos soldados de Frostgrave para usarlos como Doctor de la plaga y leproso del Darkest Dungeon para el juego que estoy haciendo, lo que me recuerda que esto estaba abandonado y no hay fotos del dungeon modular que estoy haciendo… ya las pondré.

SII (Suministro Inmediato de Información) en Visual FoxPro sin morir en el intento

Esto estaba ya casi abandonado, pero añado un post explicando mis vicisitudes en el trabajo conectando con los servicios web de Hacienda para remitir el SII (Suministro Inmediato de Información) por si a alguien está en la misma situación de desespero y mis avances en el tema le resultan útiles, aunque no creo que quede ya nadie en la misma situación: en las empresas normales esto se resolvió hace meses, pero en mi empresa somos tan chulos que dejamos esto para una semana antes de entrar en vigor.

La situación es la siguiente: aplicación de gestión desarrollada en Visual FoxPro, por lo que nuestra intención es hacerlo también en VFP. La generación de XMLs no supone ningún problema, ya me he pegado antes con ellos en el índice único de ANCERT, los hacemos a mano (mejor dicho a martillo), y aunque es un trabajo costoso y sufrido no supone mayor problema. El tema de realizar la conexión segura y envío a los servicios web de Hacienda ya es otra historia, no es una técnica que usemos habitualmente más allá de conexiones simples como las del Catastro, y la de Hacienda, con certificados seguros mediante, dista mucho de ser simple.

Los primeros intentos fueron infructuosos y por más que buscamos información no conseguimos resolverlo. Intentamos resolverlo de forma nativa en VFP mediante _ws3client.vcx (la forma nativa que tiene VFP para tratar con los web services) y también con MSSOAP.SoapClient30, las dos funcionaban parcialmente pero se atascaban a la hora procesar el certificado seguro, y por más que buscamos y probamos cosas –y creedme, busqué y probé de TODO– no conseguimos pasar de ahí. Incluso me lancé de forma desesperada a una solución híbrida en Visual Basic .net, generando los XML en Fox, enviándolos con el bridge .net y procesando la respuesta de nuevo con Fox, pero las prisas y desarrollar algo en una herramienta que no es la habitual no es la mejor combinación.

Al final y casi de casualidad lo intenté mediante una conexión simple HTTP (la forma más sencilla y clásica de consumir servicios web) y funcionó sin muchos problemas y desde Fox, quedando además el código resultante en unas ridículas cuatro líneas (quitando todas las validaciones y controles adicionales, claro). A continuación dejo el código simplificado y detalles técnicos por si a alguien les resulta útil:

Lo primero es generar los XML, como he dicho anteriormente lo hacemos a mano mediante:

set console off
set talk off
set textmerge on to memvar xmltmp NOSHOW
*...
set textmerge to

*Conversión UTF-8
xmltmp =STRCONV(xmltmp,9)

Después de eso iniciamos la conexión al web service. Las conexiones HTTP no entienden de namesservices ni de bindingports, así que lo que hago es abrir el .wsdl del servicio que queremos enviar (los siete disponibles están en el anexo I del manual de Hacienda, o aquí), y extraigo la dirección de los servicios a llamar que se encuentran al final en el tag <wsdl:service name=”siiService”>. Tener en cuenta que hay direcciones para producción y para pruebas, por lo que habrá que tratar las dos como corresponda.


IF UPPER(thisform.cmbModo.displayValue)="PRUEBAS"
sEndPoint="https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
ELSE
sEndPoint="https://www1.agenciatributaria.gob.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
endif

IF TYPE("oHTTP")#"O"
oHTTP=createobject("winhttp.winhttprequest.5.1")
endif
oHTTP.Open("POST", sEndPoint, .F.)

*Elegir Certificado, el common name del certificado se puede sacar de la ventana de certificados de opciones de internet, o mediante comando en la powershell: dir cert:\currentuser\my
*El nombre a sacar viene identificado como CN en algúno de los elementos de la pestaña detalles del certificado
*Debe ser un certificado válido, vigente y dado de alta en Hacienda
oHTTP.SetClientCertificate("CURRENT_USER\My\"+ALLTRIM(emp.cncertif))

ohttp.Send(xmlFraE) && El XML generado junto con las cabeceras y cierres finales

XMLRespuesta=ohttp.ResponseText

*Procesar la respuesta
*...

Y básicamente eso es todo, por supuesto queda todo el tema de la generación, encadenación de distintos servicios (no entiendo muy bien por qué no han definido un único esquema para todos los casos), pero la parte de comunicar con el web service se reduce a eso.

Y para finalizar una cita del entrañable Necronomicón aparentemente dirigida a Visual Fox Pro: “Que no está muerto lo que yace eternamente, y con los eones extraños incluso la muerte puede morir”.

Hasta siempre

bowie

Fallout 4: trailer final

¡Que me funcione, que me funcione, que me funcione!

Mars Two

mars2_portada1

He intentado no contar nada de Mars Two en este blog, porque siempre hablo demasiado pronto y luego no termino nada, pero hoy ha llegado el día: doy por finalizado el desarrollo de Mars Two, un juego para PC estilo point & click que he estado desarrollando durante un tiempo.

El juego no es que sea indie, es que es totalmente amateur, y por supuesto totalmente gratuito, así que si a alguien no le gusta… bueno, como dice el tagline del blog: hay miles de cosas en el mundo que son mucho peor.

Mars Two es una pequeña aventura gráfica que fui desarrollando al mismo tiempo que diseñaba un motor y un constructor de aventuras, y más que nada sirve de tutorial de ejemplo para que otros puedan aprovechar el constructor y se animen a diseñar su propia aventura gráfica. Tanto el código fuente de la aventura como el constructor estrá disponible próximamente para descargar.

De momento aquí dejo el instalable de la versión final de Mars Two, espero que os guste.

mars2_portada2Descargar Mars Two

No puedo pasar sin dar las gracias a la comunidad de Bennugd, el lenguaje con el que está programado el juego por su inestimable ayuda, y a la gente de The Game Kitchen y su maravilloso The Last Door, por demostrar que el pixel es bello, que fue lo que me impulsó a desarrollar este juego.

Marvels’s Jessica Jones, trailer oficial

The flight of the conchords – The humans are dead

Uno de ellos es Jermaine Clement, del que ya hemos hablado por aquí alguna de vez a propósito de su parecido con Benicio del Toro y de su participación en Lo que hacemos en las sombras (actor/director).


Flashbacks

RSS Últimos temas escuchados

  • Se ha producido un error; es probable que la fuente esté fuera de servicio. Vuelve a intentarlo más tarde.

Licencia

Creative Commons License


Esta obra está bajo una licencia de Creative Commons.

Member of The Internet Defense League