Ir al final de los metadatos
Ir al inicio de los metadatos

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual View Version History

« Anterior Versión 28 Actual »

Modulo que realiza una llamada a un servicio REST

MODULO

NOMBRE TÉCNICO

PARAMETROS

DESCRIPCIÓN

restcall

localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean

restcall.bean

Path al bean del modulo. Ej: “localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean”



restcall.url

La url del servicio rest al que llamar. Puede ser dinamica jugando con los @ de los parametros. El: http://host:8080/alfresco/s/choc/invoice/getInvoiceInfo?noderef=@XPATH(core){/MT_GetStatusByIDRequest/ID}&alf_ticket=@XPATH(restLogin){/data/ticket}



restcall.verboHttpIndica el verbo HTTP a usar. Implementados POST y GET


restcall.URLConnectionHacemos tratamento especial para Cellnext con URLConnection en vez de liberías de Apache. Se hace SIEMPRE GET y el resto de parametros, salvo la url, isCMSSignedData y convertToXML se ignoran. Se hizo así ya que la conexión con las librerías de apache se truncaba sin el final del fichero. Ejemplo:  Truncated chunk ( expected size: 7754; actual size: 1183)


restcall.convert_to_jsonIndica si convertir el XML a JSON antes de enviar


restcall.convert_to_xmlIndica si convertir el JSON a XML una vez recibida la respuesta


restcall.convert_to_xml_nodoPrincipal

Indica el nombre del nodo principal del XML obtenido del JSON. Si no se indica no se agrega nodo principal y se obtendrá lo que venga en el JSON. Permite agregar nombre sin namespace:

restcall.convert_to_xml_nodoPrincipal=MT_SendInvoice

y con namespace:

restcall.convert_to_xml_nodoPrincipal=ns1:MT_SendInvoice xmlns:ns1="urn:fattura:emission:alfresco:sendInvoices"



restcall.ok_http_codes

Indica los codigos http que son aceptados como proceso realizado correctamente. Por defecto 200. Se define un valor o n:

  • restcall.ok_http_codes=200
  • restcall.ok_http_codes=200|||201


restcall.multipartPost

Indica si se debe hacer un multipart POST (X) para enviar ficheros. Requiere que el metodo sea POST y no aplica el parametro convert_to_json. De momento los multiparts  son de tipo XML. Ejemplo:

Content-Disposition: form-data; name="xmlInvoiceFile"; filename="IT07516921009_00010.XML"
Content-Type: text/xml

Si se requiere de otro tipo falta implementar.



restcall.multipart

Permite definir los multiparts a insertar en la petición POST. Debe usarse así para cada fichero a subir:

restInvoice.multipart_name[0]=xmlInvoiceFile
restInvoice.multipart_value[0]=@XPATH_DECODEB64(core){/MT_SendInvoice/Invoice/File}
restInvoice.multipartFilename_name[0]=xmlInvoiceFile
restInvoice.multipartFilename_value[0]=@XPATH(core){/MT_SendInvoice/Invoice/NomeFile}

Donde:

  • multipart_name define el nombre del campo multipart name
  • multipart_value define el fichero a subir. en este caso  @XPATH_DECODEB64(core){/MT_SendInvoice/Invoice/File}
  • multipartFilename_value define el nombre del fichero, filename

Es decir la petición quedará así:

Content-Disposition: form-data; name="xmlInvoiceFile"; filename="IT07516921009_00010.XML".

En este caso IT07516921009_00010.XML se ha obtenido de @XPATH(core){/MT_SendInvoice/Invoice/NomeFile}




restcall.isCMSSignedDataIndica se se va a recibir un fichero CMSSignedData para procesarlo y obtener el objeto firmado. El WS de Alfreso puede devolver:
1-xml de la factura
2- p7m con la factura (CMSSignedData)
3-base64 del p7m de la factura
Y no indica como va a venir la factura
La logica es:
1-Detectar si es un base64. Si lo es, se intenta decodificar.
2-intenta extraer p7m. Si va bien salida al siguiente paso, si no se supone que entro un xml y se manda la entrada original al siguiente paso
 



restcall.proxyHost

EL host del proxy que usar para la conexión HTTP. Si viene vacio no se usa proxy



restcall.proxyPort

EL puerto del proxy que usar para la conexión HTTP



restcall.proxyAuthFlag

Indica si se debe usar autenticación para el proxy, en cuyo caso, hay que completar los dos siguientes parámetros. Posibles valores: (‘X’ | ‘-‘).



restcall.proxyUser

Usuario del proxy.



restcall.proxyPassword

Password del anterior usuario.



restcall.user.authentication

Tipo de autenticación.

Valores posibles: password (valor por defecto) / certificate / none



restcall.user

Si user.authentication = password. El usuario de autenticación HTTP del Web Service



restcall.password

Si user.authentication = password, La password de autenticación HTTP del Web Service



restcall.user.certificate.gestor

Si user.authentication = certificate, Tipo de gestión del certificado

Valores posibles: keystorage (Key Storage estándar de SAP PI) / certificateGestor (B+ Secure Keystore).



restcall.certificate.view

Si user.certificate.gestor  = keystorage, View del Key Storage estándar de SAP PI para la autenticación con certificado



restcall.certificate.alias

Si user.certificate.gestor  = keystorage, Alias de la anterior vista para la autenticación con certificado. (PRIVATE KEY)



restcall.certificate.public.aliasSi user.certificate.gestor  = keystorage, key storage alias del certificado público del certificado de autenticación. Debe estar en la misma vista que la clave privada. (CERTIFICATE)


restcall.certificate.gestor.alias

Si user.certificate.gestor  = certificateGestor, Alias del cetificado en el B+ Secure Keystore. (CERTIFICATE)



restcall.certificate.gestor.jndi

Si user.certificate.gestor  = certificateGestor,  JNDI del B+ Secure Keystore. Valor: ejb:/appName=realtech.com/efact~j2ee~ear~gestcrt, jarName=realtech.com~efact~j2ee~ejb~gestcrt.jar, beanName=GestorCertEJBBean, interfaceName=com.realtech.efact.j2ee.ejb.gestor.cert.ejb.GestorCertEJBBeanLocal



restcall.isHTTPS      

Indica si es conexión HTTPS o no (‘X’ | ‘-‘), cualquier otra cosa.



restcall.httpsPort

El puerto https a usar en las conexiones https



restcall.sslProtocol

El protocolo para las conexiones SSL TLS: "SSLv3","TLSv1", "TLSv1.1", "TLSv1.2"}, El soporte de los protocolos varía en función de la JDK del servidor. http://www.ateam-oracle.com/tls-and-java/



restcall.sslCipherProtocol

Para definir los protocolos de cifrado SSL. Si se define más de uno separa por !!. Ej:  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256!!TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

Si no se define coge los definidos en el servidor.



restcall.trust.all.servers

Indica si quieres que la conexión https se establezca sin validar el certificado (X). Modo pruebas. NO SE DEBE USAR PARA ESCENARIOS REALES NI EN PRODUCTIVO.



restcall.xpath.http.error.as.functional

Indica si se debe tratar una respuesta HTTP correcta (200OK) como error funcional (OrchestratorModuleFunctionalException), si se encuentra en la respuesta el valor de la expresión xpath indicada. Para especificar esta propiedad es necesario que la respuesta sea XML o que se haya especificado el parametro convert_to_xml.



restcall.xpath.http.error.as.technical

Indica si se debe tratar una respuesta HTTP correcta (200OK) como error técnico (OrchestratorModuleLockableException), si se encuentra en la respuesta el valor de la expresión xpath indicada. Para especificar esta propiedad es necesario que la respuesta sea XML o que se haya especificado el parametro convert_to_xml.



restcall.treat.http.error.as.functional

Indica si se debe tratar un error HTTP como una excepción funcional o no (‘X’ | ‘-‘),. Por defecto error lockable. Si se trata como funcional, es necesario utilizar el parámetro "ex_functional_mod" para indicar los módulos a ejecutar en ese caso.



restcall.header

Permite añadir Headers HTTP a la petición. Se debe usar asi:

restcall.header_name[0]=Connection
restcall.header_value[0]=Keep-Alive
restcall.header_name[1]=Expect
restcall.header_value[1]=100-Continue



restcall.timeOut

Establece el timeout de la conexión en s. default value 300 sg like SAP


Ejemplos de utilización:

POST

#Modulo restLogin 
restLogin.bean=localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean
restLogin.verboHttp=POST
restLogin.convert_to_json=X
restLogin.convert_to_xml=X
restLogin.url=http://34.241.153.194:8080/alfresco/service/api/login
restLogin.user.authentication=none
#restLogin.use_content_of=xmltransformLogin


GET
#Modulo restGetStatus
restGetStatus.bean=localejbs/com.realtech.adapter.orch.modules.core.ext.RestBean
restGetStatus.verboHttp=GET
restGetStatus.convert_to_xml=X
restGetStatus.convert_to_xml_nodoPrincipal=ns0:MT_GetStatusByIDResponse xmlns:ns0="urn:fattura:emission:alfresco:getStatus"
restGetStatus.url=http://34.241.153.194:8080/alfresco/s/choc/invoice/getInvoiceInfo?noderef=@XPATH(core){/MT_GetStatusByIDRequest/ID}&alf_ticket=@XPATH(restLogin){/data/ticket}
restGetStatus.user.authentication=none
#restGetStatus.use_content_of=core


  • Sin etiquetas