martes, mayo 20, 2008

Reutilizar un tipo importado de una RFC

En muchas ocasiones habremos deseado aprovechar los tipos importados de las RFCs, evitando así diseñar los tipos necesarios para el mapeo con éstas, sobre todo si constan de muchos campos. Pues bien, existe una manera de hacerlo un poco casera pero eficaz. Para ello deberemos localizar en primer lugar la RFC/iDoc donde se encuentre el tipo a utilizar.

Una vez localizada, exportaremos el esquema XSD del tipo de mensaje deseado. En este caso exportaremos el correspondiente a la petición (request). Para ello iremos al menú Tools -> Export XSD -> Request... . Ésto nos generará el fichero .xsd en la ubicación que le hayamos indicado. A continuación, editaremos dicho fichero para poder importarlo desde el tipo que vayamos a crear. Supongamos que el tipo de datos que vamos a crear se llamará DT_DUMMY y que pertenece al dominio "http://dummy.es".


En primer lugar deberemos reemplazar el nombre del dominio con el que fue exportado el esquema. En este caso el dominio es "urn:sap-com:document:sap:rfc:functions", debiendo remplazarlo por "http://dummy.es". En sugundo lugar, faltará reemplazar el nombre del tipo del elemento "item" de "*_E_INTE_CAN_ALMACEN" a "DT_DUMMY". Guardamos los cambios.

Con ésto ya podremos crear el nuevo tipo de datos basado en el de la RFC. El nombre del tipo de datos y del dominio debe coincidir con lo que hemos puesto en el fichero. Para importar el esquema modificado deberemos seleccionar la etiqueta "XSD" y pulsar el icono de importar esquema.


En el momento de importarlo nos aparecerá un mensaje de aviso informando que se ignorará el elemento global que se define en el esquema, pero no debemos de darle mayor importancia ya que hace referencia al nombre de la RFC del que proviene. Con ello tendremos definido el nuevo tipo con los mismos campos y características que el tipo de la RFC, solo faltará aplicar las reglas de cardinalidad en función de las especificaciones.

No hay comentarios: