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

Versión 1 Siguiente »

 Extensión de la clase BasicModule

Se Implementan los siguientes métodos protected en la clase “BasicModule” para la obtención del valor de parámetros del módulo y parámetros adicionales definidos por el usuario, que permite la descripción de esos valores de forma dinámica. 

 Método getObligatoryParameter:

protected String getObligatoryParameter(

                  HashMap moduleParameters,

                  String moduleName,

                  String paramName,

                  ParamValueValidator validator,

                  String defaultValue,

boolean traceParam)

throws      ObligatoryParameterNotSetException,

                        InvalidModuleInputParameterException,

EvalRegExprInputParameterException {

El método devuelve el valor del parámetro indicado.

Si el parámetro es obligatorio y no viene informado se lanza la excepción à ObligatoryParameterNotSetException

Si el valor es una expresión regular y falla la obtención del valor se devuelve à EvalRegExprInputParameterException

Si el parámetro está mal informado se devuelve à InvalidModuleInputParameterException

 Método getOptionalParameter:

      protected String getOptionalParameter(

                  HashMap moduleParameters,

                  String moduleName,

                  String paramName,

                  ParamValueValidator validator,

                  String defaultValue,

                  boolean traceParam)

            throws InvalidModuleInputParameterException,

EvalRegExprInputParameterException {

 

El método devuelve el valor del parámetro indicado.

Si el valor es una expresión regular y falla la obtención del valor se devuelve à EvalRegExprInputParameterException

Si el parámetro está mal informado se devuelve à InvalidModuleInputParameterException       

 

Los parámetros dinámicos que se permiten en los dos métodos anteriores son:          

  • Una  constante
  • Un context attribute à @ATT{FIELD} where FIELD could be
    • uid à @ATT{uid}
    • externalUID  à @ATT{externalUID}
    • sender  à @ATT{sender}
    • receiver  à @ATT{receiver}
    • serviceName  à @ATT{serviceName}
    • scenarioName  à @ATT{scenarioName}
  • Payload content of module en claro à @MODULE{moduleName}.
  • Payload content of module en Base64 à @MODULE_ENCODEB64{ moduleName }

Si el moduleName es “actual à Devuelve el contentido del mensaje de entrada en el módulo.  Ej: @MODULE{actual}

  • Un context parameter à @PARAM{ParamName}
  • Un session context parameter à @S_PARAM{ParamName}
  • Un XPATH expression à
    • @XPATH{xpath expression}: Valor del XML de entrada en el módulo (Actual XML)
    • @XPATH_EXISTS{ xpath expression} Indica si la expresión XPATH existe o no en el XML de entrada en el módulo (Actual XML). Devuelve “true” en caso de encontrarlo y “false” en caso contrario.
    • @XPATH_ENCODEB64{xpath expression}: Valor del XML de entrada en el módulo (Actual XML) codificado en Base64.
    • @XPATH_DECODEB64{xpath expression}: Valor del XML de entrada en el módulo (Actual XML) decodificado de Base64.
    • @XPATH(moduleName){xpath expresion}: Valor del XML del module “moduleName”
    • @XPATH_EXISTS(moduleName){ xpath expression} Indica si la expresión XPATH existe o no en el XML del module “moduleName”.  Devuelve “true” en caso de encontrarlo y “false” en caso contrario.
    • @XPATH_ENCODEB64(moduleName){xpath expresion}: Valor del XML del module “moduleName”  codificado en Base64.
    • @XPATH_DECODEB64(moduleName){xpath expresion}: del XML del module “moduleName”  decodificado de Base64

 

  • Un MAP à La variable “mapEntry” definida a continuación, puede declararse con cualquiera de los valores dinámicos definidos.
    • @MAP[mapID][mapEntry]: Valor (mapEntry) de un MAPA (mapID) definido para el módulo actual de entrada en el módulo.
    • @MAP(moduleName)[mapID][mapEntry]: Valor (mapEntry) de un MAPA (mapID) definido para un módulo con nombre “moduleName”.

 

Un ejemplo de configuración y uso de @MAP sería:

xmltransform.miparametro=@MAP[codigoefact][@XPATH(core){/ZINVOIC02_EFAC/IDOC/E1EDKA1[PARVW ='RS']/PAORG}]

xmltransform.codigosefact_name[0]=5828

xmltransform.codigosefact_value[0]=ESB1234500003

xmltransform.codigosefact_name[1]=5829

xmltransform.codigosefact_value[1]= @XPATH{/Facturae/cualquiernodo/valor}

xmltransform.codigosefact_name[2]=5810

xmltransform.codigosefact_value[2]= ESB12345000009

xmltransform.codigosefact_name[3]=DEFAULT

xmltransform.codigosefact_value[3]= ESB12345000003

 

Los siguientes métodos definidos (getAdditionalData y getAdditionalDataKey) son otras formas de uso de los mapas que también están en los módulos.

Método getAdditionalData

protected HashMap getAdditionalData( HashMap moduleParameters, String moduleName,

String paramPrefix) throws InvalidModuleInputParameterException {

Este método devuelve el hashMap de los nombres y valores de los parámetros incrementales con el “paramPrefix” especificados, teniendo en cuenta que irán por parejas “_name”, “_value” más el [index].

Por ejemplo,  si se quieren definir parámetros específicos para “documentum”, en los que necesitemos añadir algún metadato adicional, se haría:

paramPrefix = “metadata” à Valor fijo establecido dentro del módulo. (También se puede hacer dinámico. Ejemplo abajo)

Opciones de parámetros a definir en el Adapter:

1-      Con parámetro “metadata” fijado en el código del módulo. (Como constante)

-          metadata_name[0] = “nombreMetadato”

-          metadata_value[0] = “valor”

-          metadata_name[1] = “nombreMetadato1”

-          metadata_value[1] = “valor1”

 

2-      Con parámetro dinámico: <modulename>.paramPrefix (Leído de los parámetros del módulo)

-          <modulename>.paramPrefix = “metadata

-          metadata_name[0] = “nombreMetadato”

-          metadata_value[0] = “valor”

-          metadata_name[1] = “nombreMetadato1”

-          metadata_value[1] = “valor1”

 Método getAdditionalDataKey:

protected String getAdditionalDataKey(HashMap moduleParameters, String moduleName, String paramPrefix, String keyName) throws InvalidModuleInputParameterException, EvalRegExprInputParameterException{

Este método devuelve el valor del “paramName” dado (actúa como key del hashmap), de entre valores de los parámetros incrementales con el “paramPrefix” especificados, teniendo en cuenta que irán por parejas “_name”, “_value” más el [index].

Este ”paramName” puede ser uno de los valores especificados en el punto Método getOptionalParameter.  Si se especifica un valor DEFAULT, se escogerá este si no encuentra ninguno.

 

Ejemplo para uso de certificados en módulo “wscall”. Parámetros a definir en el Adapter:

-          wscall.paramPrefix = “certificados”

-          wscall.paramKeyName= 02345 à Parámetro para recuperar el valor. Devolvería “Certificado2”

-          wscall.certificados_name[0] = 0001

-          wscall.certificados_value[0] = Certificado1

-          wscall.certificados_name[1] = 02345

-          wscall.certificados_value[1] = Certificado2

-          …

-          wscall.certificados_value[n] = DEFAULT

-          wscall.certificados_value[n] = CertificadoN

 

Ejemplo para uso de múltiples “hashmaps” en el módulo de documentum.

-          documdfs. paramPrefix_tipoDocumental=tipoDocumental

-          documdfs.tipoDocumental_paramKeyName=@XPATH(module){/Facturae/XXX}

-          documdfs.tipoDocumental_name[0]=NIF1

-          documdfs.tipoDocumental_value[0]=do_fac

-          documdfs.tipoDocumental_name[1]=DEFAULT

-          documdfs.tipoDocumental_value[1]=do_fac_default

-          documdfs.paramPrefix_user=user

-          documdfs.user_paramKeyName=@XPATH(module){/Facturae/XXX}

-          documdfs.user_name[0]= NIF1

-          documdfs.user_value[0]=usuario

-          documdfs.user_name[1]=DEFAULT

-          documdfs.user_value[1]=usuario_default

 

Nuevas clases creadas

Para implementar los métodos de obtención de parámetros se han creado las siguientes clases:

En el paquete de clases “com.realtech.efact.j2ee.ejb.adapter.orch.modules.core.extensions.module.params”:

  • ParamValueValidator.java
  • DefaultParamValueValidator.java
  • ParamValueRegexp.java      

 

En el paquete de clases “com.realtech.efact.j2ee.ejb.adapter.orch.modules.core.extensions.module.params.exceptions”:

  • ObligatoryParameterNotSetException.java
  • InvalidModuleInputParameterException.java
  • EvalRegExprInputParameterException.java

          

            Estas clases se han añadido a la Parte Pública (PP) “orch_api”  del DC “efact/j2ee/ejb/adapter/orch”

Nuevos mensajes de trazabilidad definidos

Se añaden nuevos mensajes asociados a la obtención del valor de los parámetros. Por lo tanto se añaden entradas en: 

  • BasicModuleBeanMessageKeys.java
  • message.properties



  • Sin etiquetas