Saltar al contenido

Detalles de Conexión SAP HANA XS Advanced

Introducción

Versión del conector

Esta documentación se basa en la versión 21.0.8257 del conector.

Empezando

Compatibilidad con la versión SAP HANA XSA

El conector aprovecha la API de SAP HANA XSA para habilitar el acceso bidireccional a SAP HANA XSA.

Establecer una Conexión

SAP HANA XSA utiliza el estándar de autenticación OAuth. Antes de conectarse, es necesario establecer un Servicio OData SAP HANA XSA OData. Consulte Crear una aplicación OAuth personalizada como guía.

Una vez que haya configurado el Servicio OData, puede establecer una conexión usando Credenciales personalizadas.

Uso de la Autenticación OAuth

Utilice el estándar de autenticación OAuth para conectarse a la API de SAP HANA XSA V3. Puede autenticarse con una cuenta de usuario. El conector facilita esto como se describe a continuación.

Uso de una Cuenta de Usuario para Autenticarse en SAP HANA XSA

El flujo de la cuenta de usuario requiere que el usuario que se autentica interactúe con SAP HANA XSA a través del navegador.

Creación de una Aplicación OAuth Personalizada

Deberá crear una aplicación OAuth personalizada para conectarse a los datos. Consulte Crear una aplicación OAuth personalizada para un procedimiento.

Credenciales Personalizadas

Puede registrar una aplicación para obtener el OAuthClientId y OAuthClientSecret.

Cuándo Crear una Aplicación OAuth Personalizada

Deberá crear una aplicación OAuth personalizada para conectarse.

Uso de una Cuenta de Servicio para Conectarse a SAP HANA XSA

Las cuentas de servicio tienen autenticación silenciosa, sin autenticación de usuario en el navegador. También puede usar una cuenta de servicio para delegar ámbitos de acceso de toda la empresa al conector.

Debe crear una aplicación OAuth en este flujo. Luego puede conectarse a los datos de SAP HANA XSA a los que la cuenta de servicio tiene permiso para acceder. Consulte Credenciales personalizadas para obtener una guía de autenticación.

Creación de una Aplicación OAuth Personalizada

Este controlador puede consumir un servicio OData implementado en una de sus aplicaciones SAP HANA XSA.

Configuración del Servicio OData SAP HANA XS Advanced

El servicio OData en una aplicación XSA se define en un módulo de servidor mediante la creación de un archivo filename.xsodata. Los archivos XSOData contienen las especificaciones de su servicio OData creado.

Configuración XS UAA

En una aplicación avanzada de servicios extendidos (XS) de SAP HANA multidestino, el módulo de servicio de cuenta de usuario y autenticación (UAA) de XS se utiliza para autenticar y autorizar a los usuarios para el acceso a la API. La UAA utiliza OAuth 2.0 como flujo de autenticación y autorización. Antes de conectar, se deben realizar algunas configuraciones en el módulo XS UAA.

En cualquiera de los /path/appname o path/appname/security directorio, cree un archivo JSON llamado xs-security.json. En este archivo, defina la configuración para el módulo UAA.

Para definir el módulo, coloque los ámbitos y roles para acceder al servicio OData en el archivo xs-security.json.

Como ejemplo:

"scopes": [{
"name": "$XSAPPNAME.odataAccess",
"description": "Access the OData service."
}]

El rol creado hará referencia al ámbito definido anteriormente. Como ejemplo:

"role-templates": [{
"name": "ODataAccess",
"description": "Role for accessing the OData service",
"scope-references": [
"$XSAPPNAME.odataAccess"
]
}]

Se necesita una configuración adicional si el usuario planea usar el tipo de concesión CODE. En el archivo xs-security.json, agregue lo siguiente:

"oauth2-configuration": {
"token-validity": 90000, //time in seconds when an access token expires
"redirect-uris": ["http://localhost:33333"] //the default callback of  Drivers
}
Configuración del Módulo Web

Al definir las rutas para el módulo web, defina una enrutar adicional para el archivo XSOData. Por ejemplo:

"routes": [{
"source": "^/euro.xsodata/.*$", //OData service endpoint
"destination": "js_module_service_url", //server module service url defined in mta.yaml
"authenticationType": "xsuaa",
"scope": "$XSAPPNAME.odataAccess" //the scope which grants access to the OData service
}]

Observe que hay un atributo de ámbito que hace referencia al ámbito que otorga acceso al servicio OData. Después de compilar y ejecutar con éxito su aplicación, debemos ir y otorgar a los usuarios acceso a nuestro servicio OData.

Gestión de Funciones

Para crear una colección de rol, vaya a XSA-COCKPIT -> Security -> Role Collections -> New Role Collection. Proporcione a la colección el nombre que desee. Abra la colección de rol que creó y haga clic en Add Role. En el archivo xs-security.json, configure el identificador de la aplicación en su aplicación y la modelo de rol en la rol ODataAccess que se especificó. Para asignar el rol creado a un usuario, vaya a XSA-COCKPIT -> User Management -> Assign Role Collections -> Add, luego busque el rol creado por nombre o búsquelo en la lista, luego haga clic en Save.

Obtención de Credenciales de Cliente

Puede encontrar las credenciales del cliente navegando a XSA-COCKPIT -> Your Organization -> Your Application -> Services -> Service Instances -> XSUAA Service -> Show Sensitive Data. En el archivo JSON que se muestra, anote la identificación del cliente, el secreto del cliente y la URL. La URL especificada aquí es el alojar utilizado para autenticar y autorizar a los usuarios.

Conexión a una Cuenta SAP HANA XSA

Una vez que haya configurado correctamente su aplicación y ya tenga acceso al Servicio OData, siga las instrucciones en Credenciales personalizadas para conectarse a su aplicación SAP HANA XSA.

El módulo XS UAA utiliza OAuth2.0 como método de autorización. Solo se admiten los tipos de concesión CÓDIGO y CONTRASEÑA.

Credenciales Personalizadas

Puede usar una aplicación OAuth personalizada para autenticarse con una cuenta de servicio o una cuenta de usuario. Consulte Uso de la autenticación OAuth para más información.

Autenticarse con una Cuenta de Usuario
Autenticación de Escritorio con una Aplicación OAuth Personalizada

Siga los pasos a continuación para autenticarse con las credenciales de una aplicación OAuth personalizada. Consulte Crear una aplicación OAuth personalizada.

Obtenga y actualice el token de acceso de OAuth

Después de configurar lo siguiente, está listo para conectarse:

  • InitiateOAuth: Establézcalo en GETANDREFRESH. Puede usar InitiateOAuth para evitar repetir el intercambio de OAuth y configurar manualmente OAuthAccessToken.
  • OAuthClientId: Establézcalo en el ID de cliente especificado en el archivo JSON del servicio UAA.
  • OAuthClientSecret: establezca esto en el secreto del cliente especificado en el archivo JSON del servicio UAA.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.
  • CallbackURL: Establézcalo en http://localhost:33333.

Cuando se conecta, el conector abre el extremo de OAuth en su navegador predeterminado. Inicie sesión y otorgue permisos a la aplicación. Luego, el conector completa el proceso de OAuth:

  1. Extrae el token de acceso de la URL de devolución de llamada y autentica las solicitudes.
  2. Actualiza el token de acceso cuando caduca.
  3. Guarda los valores de OAuth en OAuthSettingsLocation para persistir a través de las conexiones.

Usando el tipo de concesión de contraseña

Para conectarse a SAP Hana XSA utilizando el tipo de concesión PASSWORD, establezca lo siguiente:

  • InitiateOAuth: Establézcalo en GETANDREFRESH. Puede usar InitiateOAuth para evitar repetir el intercambio de OAuth y configurar manualmente OAuthAccessToken.
  • OAuthClientId: Establézcalo en el ID de cliente especificado en el archivo JSON del servicio UAA.
  • OAuthClientSecret: establezca esto en el secreto del cliente especificado en el archivo JSON del servicio UAA.
  • URL: establezca esto en el extremo del servicio OData.
  • OAuthGrantType: Establézcalo en CONTRASEÑA.
  • XSUAAURL: establezca esto en la URL del servicio UAA.
  • User: Configure el nombre de usuario de su cuenta.
  • Password: Establece la contraseña de tu cuenta

Máquinas Sin Cabeza

Uso de OAuth en una Máquina Sin Cabeza

Las siguientes secciones muestran cómo autenticar un servidor sin periféricos u otra máquina en la que el conector no puede abrir un navegador. Puede autenticarse con una cuenta de usuario o con una cuenta de servicio.

Autenticarse con una Cuenta de Usuario

Para autenticarse con una cuenta de usuario, debe hacerlo desde otra máquina. La autenticación es un proceso de dos pasos.

  1. En lugar de instalar el conector en otra máquina, puede seguir los pasos a continuación para obtener el OAuthVerifier valor. O bien, puede instalar el conector en otra máquina y transferir los valores de autenticación de OAuth, después de autenticarse a través del flujo habitual basado en el navegador.
  2. A continuación, puede configurar el conector para actualizar automáticamente el token de acceso desde la máquina sin periféricos.

Puede seguir el flujo de autenticación de OAuth sin cabeza utilizando las credenciales de OAuth para su aplicación de OAuth personalizada.

Uso de las Credenciales para una Aplicación OAuth Personalizada

Cree una aplicación OAuth personalizada

Deberá crear una aplicación OAuth personalizada para conectarse.

Consulte Crear una aplicación OAuth personalizada para un procedimiento. Luego puede seguir los procedimientos a continuación para autenticarse y conectarse a los datos.

Obtenga un código verificador

Establezca las siguientes propiedades en la máquina sin periféricos:

  • InitiateOAuth: Ajústelo a APAGADO.
  • OAuthClientId: establezca esto en la ID del cliente en la configuración de su aplicación.
  • OAuthClientSecret: establezca esto en el secreto del cliente en la configuración de su aplicación.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.
  • CallbackURL: Establézcalo en http://localhost:33333.

Luego puede seguir los pasos a continuación para autenticarse desde otra máquina y obtener el OAuthVerifier propiedad de conexión.

  1. Llame a GetOAuthAuthorizationURL procedimiento almacenado* con el parámetro de entrada CallbackURL establecido en el URI de redirección exacto que especificó en la configuración de su aplicación.
  2. Abra la URL devuelta en un navegador. Inicie sesión y otorgue permisos al conector. A continuación, se le redirige a la URL de devolución de llamada, que contiene el código verificador.
  3. Guarde el valor del código verificador. Establecerá esto en el OAuthVerifier propiedad de conexión.

En la máquina sin periféricos, establezca las siguientes propiedades de conexión para obtener los valores de autenticación de OAuth:

  • InitiateOAuth: Establézcalo en ACTUALIZAR.
  • OAuthClientId: establezca esto en la clave de consumidor en la configuración de su aplicación.
  • OAuthClientSecret: establezca esto en el secreto del consumidor en la configuración de su aplicación.
  • OAuthVerifier: Establézcalo en el código del verificador.
  • OAuthSettingsLocation: configure esto para conservar los valores de autenticación OAuth cifrados en el archivo especificado.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.

Después de generar el archivo de configuración de OAuth, configure las siguientes propiedades para conectarse a los datos:

  • InitiateOAuth: Establézcalo en ACTUALIZAR.
  • OAuthClientId: establezca esto en la clave de consumidor en la configuración de su aplicación.
  • OAuthClientSecret: establezca esto en el secreto del consumidor en la configuración de su aplicación.
  • OAuthSettingsLocation: Establézcalo en el archivo que contiene los valores de autenticación de OAuth cifrados. Asegúrese de que este archivo otorgue permisos de lectura y escritura al proveedor para habilitar la actualización automática del token de acceso.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.

Transferir configuración de OAuth

Siga los pasos a continuación para instalar el conector en otra máquina, autenticar y luego transferir los valores de OAuth resultantes.

En una segunda máquina, instale el conector y conéctese con el siguiente conjunto de propiedades:

  • InitiateOAuth: Establézcalo en GETANDREFRESH.
  • OAuthSettingsLocation: establezca esto en un archivo de texto grabable.
  • OAuthClientId: Establézcalo en el ID de cliente asignado cuando registró su aplicación.
  • OAuthClientSecret: establezca esto en el secreto de cliente asignado cuando registró su aplicación.
  • CallbackURL: Establézcalo en http://localhost:33333.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.

Pruebe la conexión para autenticarse. Los valores de autenticación resultantes se escriben, se cifran, en la ruta especificada por OAuthSettingsLocation. Una vez que haya probado con éxito la conexión, copie el archivo de configuración de OAuth en su máquina sin periféricos. En la máquina sin periféricos, configure las siguientes propiedades de conexión para conectarse a los datos:

  • InitiateOAuth: Establézcalo en ACTUALIZAR.
  • OAuthClientId: establezca esto en la clave de consumidor en la configuración de su aplicación.
  • OAuthClientSecret: establezca esto en el secreto del consumidor en la configuración de su aplicación.
  • OAuthSettingsLocation: establezca esto en la ruta a su archivo de configuración de OAuth. Asegúrese de que este archivo otorgue permisos de lectura y escritura al conector para habilitar la actualización automática del token de acceso.
  • URL: establezca esto en el extremo del servicio OData.
  • XSUAAURL: establezca esto en el alojar del servicio UAA.

Notas Importantes

Procedimientos Almacenados

  • Las funciones de procedimientos almacenados descritas en esta documentación no se admiten actualmente.
  • Debido a que los procedimientos almacenados no se admiten actualmente, cualquier característica que dependa de los procedimientos almacenados tampoco se admite actualmente.

Archivos de Configuración y Sus Rutas

  • Todas las referencias a la adición de archivos de configuración y sus rutas se refieren a archivos y ubicaciones en Harmony Agente donde está instalado el conector. Estas rutas deben ajustarse según corresponda según el agente y el sistema operativo. Si se utilizan varios agentes en un grupo de agentes, se requerirán archivos idénticos en cada agente.

Características Avanzadas

Esta sección detalla una selección de funciones avanzadas del conector SAP HANA XSA.

Vistas definidas por el usuario

El conector le permite definir tablas virtuales, llamadas vistas definidas por el usuario, cuyo contenido se decide mediante una consultar preconfigurada. Estas vistas son útiles cuando no puede controlar directamente las consultas que se envían a los controladores. Consulte Vistas definidas por el usuario para obtener una descripción general de la creación y configuración de vistas personalizadas.

Configuración SSL

Usar Configuración SSL para ajustar cómo el conector maneja las negociaciones de certificados TLS/SSL. Puede elegir entre varios formatos de certificado; ver el SSLServerCert propiedad en "Opciones de cadena de conexión" para obtener más información.

Apoderado

Para configurar el conector mediante Configuración de proxy de Agente Privado, Selecciona el Use Proxy Settings casilla de verificación en la pantalla de configuración de la conexión.

Vistas Definidas por el Usuario

El conector Jitterbit para SAP HANA XSA le permite definir una tabla virtual cuyos contenidos se deciden mediante una consultar preconfigurada. Estas se denominan Vistas definidas por el usuario, que son útiles en situaciones en las que no puede controlar directamente la consultar que se envía al controlador, por ejemplo, cuando se utiliza el controlador de Jitterbit. Las vistas definidas por el usuario se pueden utilizar para definir predicados que siempre se aplican. Si especifica predicados adicionales en la consultar a la vista, se combinan con la consultar ya definida como parte de la vista.

Hay dos formas de crear vistas definidas por el usuario:

  • Cree un archivo de configuración con formato JSON que defina las vistas que desea.
  • Declaraciones DDL.

Definición de Vistas Usando un Archivo de Configuración

Las vistas definidas por el usuario se definen en un archivo de configuración con formato JSON llamado UserDefinedViews.json. El conector detecta automáticamente las vistas especificadas en este archivo.

También puede tener múltiples definiciones de vista y controlarlas usando UserDefinedViews propiedad de conexión. Cuando utiliza esta propiedad, el conector solo ve las vistas especificadas.

Este archivo de configuración de vista definida por el usuario tiene el siguiente formato:

  • Cada elemento raíz define el nombre de una vista.
  • Cada elemento raíz contiene un elemento hijo, llamado query, que contiene la consultar SQL personalizada para la vista.

Por ejemplo:

{
    "MyView": {
        "query": "SELECT * FROM SampleTable WHERE MyColumn = 'value'"
    },
    "MyView2": {
        "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
    }
}

Utilizar el UserDefinedViews propiedad de conexión para especificar la ubicación de su archivo de configuración JSON. Por ejemplo:

"UserDefinedViews", "C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json"

Esquema para Vistas Definidas por el Usuario

Las vistas definidas por el usuario se exponen en UserViews esquema por defecto. Esto se hace para evitar que el nombre de la vista entre en conflicto con una entidad real en el modelo de datos. Puede cambiar el nombre del esquema utilizado para UserViews configurando UserViewsSchemaName propiedad.

Trabajar con Vistas Definidas por el Usuario

Por ejemplo, una instrucción SQL con una vista definida por el usuario llamada UserViews.RCustomers solo enumera clientes en Raleigh:

SELECT * FROM Customers WHERE City = 'Raleigh';

Un ejemplo de una consultar al controlador:

SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';

Dando como resultado la consultar efectiva a la fuente:

SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';

Ese es un ejemplo muy simple de una consultar a una vista definida por el usuario que es efectivamente una combinación de la consultar de vista y la definición de vista. Es posible componer estas consultas en patrones mucho más complejos. Todas las operaciones de SQL están permitidas en ambas consultas y se combinan cuando corresponde.

Configuración SSL

Personalización de la Configuración SSL

De forma predeterminada, el conector intenta negociar SSL/TLS comparando el certificado del servidor con el almacén de certificados de confianza del sistema.

Para especificar otro certificado, consulte SSLServerCert propiedad de los formatos disponibles para hacerlo.

Modelo de Datos

Descripción general

Esta sección muestra los objetos de la API disponibles y proporciona más información sobre la ejecución de SQL para las APIs de SAP HANA XSA.

Características clave

  • El conector modela el Servicio OData de SAP HANA XSA como tablas y vistas relacionales, lo que le permite escribir SQL para consultar datos de SAP HANA XSA.
  • Procedimientos almacenados* le permiten ejecutar operaciones en SAP HANA XSA.
  • La conectividad en vivo a estos objetos significa que cualquier cambio en su cuenta de SAP HANA XSA se refleja de inmediato al usar el conector.

Mesas

El conector obtiene dinámicamente los metadatos de la tabla del servicio SAP HANA XSA OData. Consulte Descubrimiento de metadatos para más información.

Puntos de vista

El conector obtiene dinámicamente metadatos de vista de solo lectura del servicio SAP HANA XSA OData. Consulte Descubrimiento de metadatos para más información.

Procedimientos almacenados

NOTE: Los procedimientos almacenados no se admiten actualmente. Consulte la nota anterior para detalles.

Procedimientos almacenados son interfaces similares a funciones para SAP HANA XSA. Procedimientos almacenados* le permiten ejecutar operaciones en SAP HANA XSA, incluida la descarga de documentos y el movimiento de sobres.

Procesamiento colaborativo de consultas

El conector descarga la mayor parte posible del procesamiento de sentencias SELECT a las APIs de SAP HANA XSA y luego procesa el resto de la consultar en la memoria. Ver SupportEnhancedSQL para obtener más información sobre cómo el conector elude las limitaciones de la API con el procesamiento del lado del cliente en memoria.

Procedimientos Almacenados

Procedimientos almacenados* están disponibles para complementar los datos disponibles del Modelo de datos. Puede ser necesario actualizar los datos disponibles desde una vista usando un procedimiento almacenado* porque los datos no proporcionan actualizaciones bidireccionales directas, similares a tablas. En estas situaciones, la recuperación de los datos se realiza utilizando la vista o tabla adecuada, mientras que la actualización se realiza llamando a un procedimiento almacenado. Procedimientos almacenados* toman una lista de parámetros y devuelven un conjunto de datos que contiene la colección de tuplas que constituyen la respuesta.

Conector Jitterbit para Procedimientos Almacenados SAP HANA XSA

Nombre Descripción
GetOAuthAccessToken Obtiene un token de autenticación de SAPHanaXSA.
GetOAuthAuthorizationURL Obtiene la URL de autorización que el usuario debe abrir por separado para otorgar acceso a su aplicación. Solo se necesita al desarrollar aplicaciones web. Solicitará el OAuthAccessToken desde esta URL.
RefreshOAuthAccessToken Actualiza el token de acceso de OAuth utilizado para la autenticación con varios servicios de Basecamp.

Obtener Token de Acceso de OAuth

Obtiene un token de autenticación de SAPHanaXSA.

Aporte
Nombre Tipo Obligatorio Descripción
AuthMode String Falso El tipo de modo de autenticación a utilizar. Seleccione Aplicación para obtener tokens de autenticación a través de una aplicación de escritorio. Seleccione Web para obtener tokens de autenticación a través de una aplicación web. Los valores permitidos son APP, WEB. El valor predeterminado es APLICACIÓN.
Scope String Falso Una lista separada por comas de permisos para solicitar al usuario. Consulte la API de SAPHanaXSA para obtener una lista de los permisos disponibles.
CallbackUrl String Falso La URL a la que se redirigirá al usuario después de autorizar su aplicación. Este valor debe coincidir con la URL de redireccionamiento que especificó en la configuración de la aplicación SAPHanaXSA. Solo es necesario cuando el parámetro Authmode es Web.
Verifier String Falso El verificador devuelto por SAPHanaXSA después de que el usuario haya autorizado su aplicación para tener acceso a sus datos. Este valor se devolverá como un parámetro para la URL de devolución de llamada.
State String Falso Indica cualquier estado que pueda ser de utilidad para su solicitud al recibir la respuesta. Su aplicación recibe el mismo valor que envió, ya que este parámetro realiza un viaje de ida y vuelta al servidor de autorización SAPHanaXSA y viceversa. Los usos incluyen redirigir al usuario al recurso correcto en su sitio, nonces y mitigaciones de falsificación de solicitudes entre sitios.
Columnas del Conjunto de Resultados
Nombre Tipo Descripción
OAuthAccessToken String El token de acceso utilizado para la comunicación con SAPHanaXSA.
OAuthRefreshToken String El token de actualización de OAuth. Es lo mismo que el token de acceso en el caso de SAPHanaXSA.
ExpiresIn String El tiempo de vida restante en el token de acceso. Un -1 indica que no caducará.

Obtener URL de Autorización de OAuth

Obtiene la URL de autorización que el usuario debe abrir por separado para otorgar acceso a su aplicación. Solo se necesita al desarrollar aplicaciones web. Solicitará el OAuthAccessToken desde esta URL.

Aporte
Nombre Tipo Obligatorio Descripción
CallbackUrl String Falso La URL a la que se redirigirá al usuario después de autorizar su aplicación. Este valor debe coincidir con la URL de redirección en la configuración de la aplicación SAPHanaXSA.
Scope String Falso Una lista separada por comas de ámbitos para solicitar al usuario. Consulte la documentación de la API de SAPHanaXSA para obtener una lista de los permisos disponibles.
State String Falso Indica cualquier estado que pueda ser de utilidad para su solicitud al recibir la respuesta. Su aplicación recibe el mismo valor que envió, ya que este parámetro realiza un viaje de ida y vuelta al servidor de autorización SAPHanaXSA y viceversa. Los usos incluyen redirigir al usuario al recurso correcto en su sitio, nonces y mitigaciones de falsificación de solicitudes entre sitios.
Columnas del Conjunto de Resultados
Nombre Tipo Descripción
URL String La URL de autorización, ingresada en un navegador web para obtener el token de verificación y autorizar su aplicación.

RefreshOAuthAccessToken

Actualiza el token de acceso de OAuth utilizado para la autenticación con varios servicios de Basecamp.

Aporte
Nombre Tipo Obligatorio Descripción
OAuthRefreshToken String Cierto El token de actualización devuelto con el token de acceso anterior.
Columnas del Conjunto de Resultados
Nombre Tipo Descripción
OAuthAccessToken String El token de autenticación devuelto de Basecamp. Esto se puede usar en llamadas posteriores a otras operaciones para este servicio en particular.
OAuthRefreshToken String Un token que puede usarse para obtener un nuevo token de acceso.
ExpiresIn String El tiempo de vida restante en el token de acceso.

Tablas del Sistema

Puede consultar las tablas del sistema que se describen en esta sección para acceder a la información del esquema, la información sobre la funcionalidad del origen de datos y las estadísticas de operación lote.

Tablas de Esquema

Las siguientes tablas devuelven metadatos de la base de datos para SAP HANA XSA:

Tablas de Fuentes de Datos

Las siguientes tablas devuelven información sobre cómo conectarse y consultar la fuente de datos:

  • sys_connection_props: Devuelve información sobre las propiedades de conexión disponibles.
  • sys_sqlinfo: describe las consultas SELECT que el conector puede descargar al origen de datos.

Tablas de Información de Consulta

La siguiente tabla devuelve estadísticas de consultar para consultas de modificación de datos:

  • identidad_sys: devuelve información sobre operaciones lote o actualizaciones individuales.

Sys_catalogs

Enumera las bases de datos disponibles.

La siguiente consultar recupera todas las bases de datos determinadas por la cadena de conexión:

SELECT * FROM sys_catalogs
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos.

Sys_schemas

Enumera los esquemas disponibles.

La siguiente consultar recupera todos los esquemas disponibles:

SELECT * FROM sys_schemas
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos.
SchemaName String El nombre del esquema.

Sys_tables

Enumera las tablas disponibles.

La siguiente consultar recupera las tablas y vistas disponibles:

SELECT * FROM sys_tables
Columnas
Nombre Tipo Descripción
CatalogName String La base de datos que contiene la tabla o vista.
SchemaName String El esquema que contiene la tabla o vista.
TableName String El nombre de la tabla o vista.
TableType String El tipo de tabla (tabla o vista).
Description String Una descripción de la tabla o vista.
IsUpdateable Boolean Si la tabla se puede actualizar.

Sys_tablecolumns

Describe las columnas de las tablas y vistas disponibles.

La siguiente consultar devuelve las columnas y los tipos de datos de la tabla SampleTable:

SELECT ColumnName, DataTypeName FROM sys_tablecolumns WHERE TableName='SampleTable' 
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos que contiene la tabla o vista.
SchemaName String El esquema que contiene la tabla o vista.
TableName String El nombre de la tabla o vista que contiene la columna.
ColumnName String El nombre de la columna.
DataTypeName String El nombre del tipo de datos.
DataType Int32 Un número entero que indica el tipo de datos. Este valor se determina en tiempo de ejecución en función del ambiente.
Length Int32 El tamaño de almacenamiento de la columna.
DisplaySize Int32 El ancho máximo normal de la columna designada en caracteres.
NumericPrecision Int32 El número máximo de dígitos en datos numéricos. La longitud de la columna en caracteres para datos de carácter y fecha y hora.
NumericScale Int32 La escala de columna o número de dígitos a la derecha del punto decimal.
IsNullable Boolean Si la columna puede contener nulo.
Description String Una breve descripción de la columna.
Ordinal Int32 El número de secuencia de la columna.
IsAutoIncrement String Si el valor de la columna se asigna en incrementos fijos.
IsGeneratedColumn String Si se genera la columna.
IsHidden Boolean Si la columna está oculta.
IsArray Boolean Si la columna es una matriz.

Sys_procedimientos

Enumera los procedimientos almacenados disponibles.

La siguiente consultar recupera los procedimientos almacenados disponibles:

SELECT * FROM sys_procedures
Columnas
Nombre Tipo Descripción
CatalogName String La base de datos que contiene el procedimiento almacenado.
SchemaName String El esquema que contiene el procedimiento almacenado.
ProcedureName String El nombre del procedimiento almacenado.
Description String Una descripción del procedimiento almacenado.
ProcedureType String El tipo de procedimiento, como PROCEDIMIENTO o FUNCIÓN.

Sys_procedureparameters

Describe procedimiento almacenado* parámetros.

La siguiente consultar devuelve información sobre todos los parámetros de entrada para el procedimiento almacenado SampleProcedure:

SELECT * FROM sys_procedureparameters WHERE ProcedureName='SampleProcedure' AND Direction=1 OR Direction=2
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos que contiene el procedimiento almacenado.
SchemaName String El nombre del esquema que contiene el procedimiento almacenado.
ProcedureName String El nombre del procedimiento almacenado* que contiene el parámetro.
ColumnName String El nombre del procedimiento almacenado* parámetro.
Direction Int32 Un número entero correspondiente al tipo de parámetro: entrada (1), entrada/salida (2) o salida (4). Los parámetros de tipo de entrada/salida pueden ser tanto parámetros de entrada como de salida.
DataTypeName String El nombre del tipo de datos.
DataType Int32 Un número entero que indica el tipo de datos. Este valor se determina en tiempo de ejecución en función del ambiente.
Length Int32 El número de caracteres permitidos para los datos de caracteres. El número de dígitos permitidos para datos numéricos.
NumericPrecision Int32 La máxima precisión para datos numéricos. La longitud de la columna en caracteres para datos de carácter y fecha y hora.
NumericScale Int32 El número de dígitos a la derecha del punto decimal en datos numéricos.
IsNullable Boolean Si el parámetro puede contener nulo.
IsRequired Boolean Si el parámetro es necesario para la ejecución del procedimiento.
IsArray Boolean Si el parámetro es una matriz.
Description String La descripción del parámetro.
Ordinal Int32 El índice del parámetro.

Sys_keycolumns

Describe las claves primarias y foráneas. La siguiente consultar recupera la clave principal de la tabla SampleTable:

SELECT * FROM sys_keycolumns WHERE IsKey='True' AND TableName='SampleTable'
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos que contiene la clave.
SchemaName String El nombre del esquema que contiene la clave.
TableName String El nombre de la tabla que contiene la clave.
ColumnName String El nombre de la columna clave.
IsKey Boolean Si la columna es una clave principal en la tabla a la que se hace referencia en el campo TableName.
IsForeignKey Boolean Si la columna es una clave externa a la que se hace referencia en el campo TableName.
PrimaryKeyName String El nombre de la clave principal.
ForeignKeyName String El nombre de la clave foránea.
ReferencedCatalogName String La base de datos que contiene la clave principal.
ReferencedSchemaName String El esquema que contiene la clave principal.
ReferencedTableName String La tabla que contiene la clave principal.
ReferencedColumnName String El nombre de la columna de la clave principal.

Sys_foreignkeys

Describe las claves foráneas. La siguiente consultar recupera todas las claves foráneas que hacen referencia a otras tablas:

SELECT * FROM sys_foreignkeys WHERE ForeignKeyType = 'FOREIGNKEY_TYPE_IMPORT'
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos que contiene la clave.
SchemaName String El nombre del esquema que contiene la clave.
TableName String El nombre de la tabla que contiene la clave.
ColumnName String El nombre de la columna clave.
PrimaryKeyName String El nombre de la clave principal.
ForeignKeyName String El nombre de la clave foránea.
ReferencedCatalogName String La base de datos que contiene la clave principal.
ReferencedSchemaName String El esquema que contiene la clave principal.
ReferencedTableName String La tabla que contiene la clave principal.
ReferencedColumnName String El nombre de la columna de la clave principal.
ForeignKeyType String Designa si la clave externa es una clave de importación (apunta a otras tablas) o de exportación (hace referencia desde otras tablas).

Sys_indexes

Describe los índices disponibles. Al filtrar en los índices, puede escribir consultas más selectivas con tiempos de respuesta de consultar más rápidos.

La siguiente consultar recupera todos los índices que no son claves principales:

SELECT * FROM sys_indexes WHERE IsPrimary='false'
Columnas
Nombre Tipo Descripción
CatalogName String El nombre de la base de datos que contiene el índice.
SchemaName String El nombre del esquema que contiene el índice.
TableName String El nombre de la tabla que contiene el índice.
IndexName String El nombre del índice.
ColumnName String El nombre de la columna asociada con el índice.
IsUnique Boolean True si el índice es único. Falso en caso contrario.
IsPrimary Boolean True si el índice es una clave principal. Falso en caso contrario.
Type Int16 Un valor entero correspondiente al tipo de índice: estadística (0), agrupado (1), hash (2) u otro (3).
SortOrder String El orden de clasificación: A para ascender o D para descender.
OrdinalPosition Int16 El número de secuencia de la columna en el índice.

Sys_connection_props

Devuelve información sobre las propiedades de conexión disponibles y las establecidas en la cadena de conexión.

Al consultar esta tabla, se debe usar la cadena de conexión de configuración:

jdbc:cdata:saphanaxsa:config:

Esta cadena de conexión le permite consultar esta tabla sin una conexión válida.

La siguiente consultar recupera todas las propiedades de conexión que se han establecido en la cadena de conexión o se han establecido a través de un valor predeterminado:

SELECT * FROM sys_connection_props WHERE Value <> ''
Columnas
Nombre Tipo Descripción
Name String El nombre de la propiedad de conexión.
ShortDescription String Una breve descripción.
Type String El tipo de datos de la propiedad de conexión.
Default String El valor predeterminado si no se establece uno explícitamente.
Values String Una lista separada por comas de valores posibles. Se lanza un error de validación si se especifica otro valor.
Value String El valor que establezca o un valor predeterminado preconfigurado.
Required Boolean Si la propiedad es necesaria para conectarse.
Category String La categoría de la propiedad de conexión.
IsSessionProperty String Si la propiedad es una propiedad de sesión, utilizada para guardar información sobre la conexión actual.
Sensitivity String El nivel de sensibilidad de la propiedad. Esto informa si la propiedad está ofuscada en los formularios de registro y autenticación.
PropertyName String Una forma truncada en mayúsculas y minúsculas del nombre de la propiedad de conexión.
Ordinal Int32 El índice del parámetro.
CatOrdinal Int32 El índice de la categoría de parámetro.
Hierarchy String Muestra las propiedades dependientes asociadas que deben configurarse junto con esta.
Visible Boolean Informa si la propiedad está visible en la interfaz de usuario de la conexión.
ETC String Diversa información miscelánea sobre la propiedad.

Sys_sqlinfo

Describe el procesamiento de consultar SELECT que el conector puede descargar al origen de datos.

Procesamiento Colaborativo de Consultas

Al trabajar con fuentes de datos que no admiten SQL-92, puede consultar la vista sys_sqlinfo para determinar las capacidades de consultar de las APIs subyacentes, expresadas en sintaxis SQL. El conector descarga la mayor cantidad posible del procesamiento de sentencias SELECT al servidor y luego procesa el resto de la consultar en la memoria.

Descubrimiento de las Capacidades SELECT de la Fuente de Datos

A continuación se muestra un conjunto de datos de ejemplo de las capacidades de SQL. El siguiente conjunto de resultados indica la funcionalidad SELECT que el conector puede descargar en el origen de datos o en el lado del cliente del proceso. Su fuente de datos puede admitir sintaxis SQL adicional. Algunos aspectos de la funcionalidad SELECT se devuelven en una lista separada por comas si es compatible; de lo contrario, la columna contiene NO.

Nombre Descripción Valores posibles
AGGREGATE_FUNCTIONS Funciones de agregación admitidas. AVG, COUNT, MAX, MIN, SUM, DISTINCT
COUNT Si se admite la función COUNT. YES, NO
IDENTIFIER_QUOTE_OPEN_CHAR El carácter de apertura utilizado para escapar de un identificador. [
IDENTIFIER_QUOTE_CLOSE_CHAR El carácter de cierre utilizado para escapar de un identificador. ]
SUPPORTED_OPERATORS Una lista de operadores de SQL admitidos. =, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, AND, OR
GROUP_BY Si se admite GROUP BY y, de ser así, el grado de compatibilidad. NO, NO_RELATION, EQUALS_SELECT, SQL_GB_COLLATE
STRING_FUNCTIONS Funciones de cadena admitidas. LENGTH, CHAR, LOCATE, REPLACE, SUBSTRING, RTRIM, LTRIM, RIGHT, LEFT, UCASE, SPACE, SOUNDEX, LCASE, CONCAT, ASCII, REPEAT, OCTET, BIT, POSITION, INSERT, TRIM, UPPER, REGEXP, LOWER, DIFFERENCE, CHARACTER, SUBSTR, STR, REVERSE, PLAN, UUIDTOSTR, TRANSLATE, TRAILING, TO, STUFF, STRTOUUID, STRING, SPLIT, SORTKEY, SIMILAR, REPLICATE, PATINDEX, LPAD, LEN, LEADING, KEY, INSTR, INSERTSTR, HTML, GRAPHICAL, CONVERT, COLLATION, CHARINDEX, BYTE
NUMERIC_FUNCTIONS Funciones numéricas compatibles. ABS, ACOS, ASIN, ATAN, ATAN2, CEILING, COS, COT, EXP, FLOOR, LOG, MOD, SIGN, SIN, SQRT, TAN, PI, RAND, DEGREES, LOG10, POWER, RADIANS, ROUND, TRUNCATE
TIMEDATE_FUNCTIONS Funciones de fecha/hora admitidas. NOW, CURDATE, DAYOFMONTH, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, WEEK, YEAR, CURTIME, HOUR, MINUTE, SECOND, TIMESTAMPADD, TIMESTAMPDIFF, DAYNAME, MONTHNAME, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, EXTRACT
REPLICATION_SKIP_TABLES Indica tablas omitidas durante la replicación.
REPLICATION_TIMECHECK_COLUMNS Una matriz de cadenas que contiene una lista de columnas que se usarán para verificar (en el orden dado) para usar como una columna modificada durante la replicación.
IDENTIFIER_PATTERN Valor de cadena que indica qué cadena es válida para un identificador.
SUPPORT_TRANSACTION Indica si el proveedor admite transacciones como compromiso y reversión. YES, NO
DIALECT Indica el dialecto SQL a usar.
KEY_PROPERTIES Indica las propiedades que identifican la base de datos uniforme.
SUPPORTS_MULTIPLE_SCHEMAS Indica si pueden existir varios esquemas para el proveedor. YES, NO
SUPPORTS_MULTIPLE_CATALOGS Indica si pueden existir varios catálogos para el proveedor. YES, NO
DATASYNCVERSION La versión de sincronización de datos necesaria para acceder a este controlador. Standard, Starter, Professional, Enterprise
DATASYNCCATEGORY La categoría Sincronización de datos de este controlador. Source, Destination, Cloud Destination
SUPPORTSENHANCEDSQL Si se admite la funcionalidad de SQL mejorada más allá de lo que ofrece la API. TRUE, FALSE
SUPPORTS_BATCH_OPERATIONS Si se admiten las operaciones lote. YES, NO
SQL_CAP Todas las funciones de SQL admitidas para este controlador. SELECT, INSERT, DELETE, UPDATE, TRANSACTIONS, ORDERBY, OAUTH, ASSIGNEDID, LIMIT, LIKE, BULKINSERT, COUNT, BULKDELETE, BULKUPDATE, GROUPBY, HAVING, AGGS, OFFSET, REPLICATE, COUNTDISTINCT, JOINS, DROP, CREATE, DISTINCT, INNERJOINS, SUBQUERIES, ALTER, MULTIPLESCHEMAS, GROUPBYNORELATION, OUTERJOINS, UNIONALL, UNION, UPSERT, GETDELETED, CROSSJOINS, GROUPBYCOLLATE, MULTIPLECATS, FULLOUTERJOIN, MERGE, JSONEXTRACT, BULKUPSERT, SUM, SUBQUERIESFULL, MIN, MAX, JOINSFULL, XMLEXTRACT, AVG, MULTISTATEMENTS, FOREIGNKEYS, CASE, LEFTJOINS, COMMAJOINS, WITH, LITERALS, RENAME, NESTEDTABLES, EXECUTE, BATCH, BASIC, INDEX
PREFERRED_CACHE_OPTIONS Un valor de cadena especifica las cacheOptions preferidas.
ENABLE_EF_ADVANCED_QUERY Indica si el controlador admite directamente consultas avanzadas provenientes de Entity Framework. De lo contrario, las consultas se manejarán del lado del cliente. YES, NO
PSEUDO_COLUMNS Una matriz de cadenas que indica las pseudocolumnas disponibles.
MERGE_ALWAYS Si el valor es verdadero, el modo de combinación se ejecuta a la fuerza en la sincronización de datos. TRUE, FALSE
REPLICATION_MIN_DATE_QUERY Una consultar de selección para devolver la fecha y hora de inicio de la réplica.
REPLICATION_MIN_FUNCTION Permite que un proveedor especifique el nombre de la fórmula que se usará para ejecutar un min del lado del servidor.
REPLICATION_START_DATE Permite que un proveedor especifique una fecha de inicio de réplica.
REPLICATION_MAX_DATE_QUERY Una consultar de selección para devolver la fecha y hora de finalización de la réplica.
REPLICATION_MAX_FUNCTION Permite que un proveedor especifique el nombre de la fórmula que se usará para ejecutar un máx. del lado del servidor.
IGNORE_INTERVALS_ON_INITIAL_REPLICATE Una lista de tablas que omitirán dividir la réplica en fragmentos en la réplica inicial.
CHECKCACHE_USE_PARENTID Indica si la instrucción CheckCache debe realizarse en la columna de clave principal. TRUE, FALSE
CREATE_SCHEMA_PROCEDURES Indica procedimientos almacenados* que se puede utilizar para generar archivos de esquema.

La siguiente consultar recupera los operadores que se pueden usar en la cláusula WHERE:

SELECT * FROM sys_sqlinfo WHERE Name='SUPPORTED_OPERATORS'

Tenga en cuenta que las tablas individuales pueden tener diferentes limitaciones o requisitos en la cláusula WHERE; consulte el Modelo de datos para obtener más información.

Columnas
Nombre Tipo Descripción
NAME String Un componente de la sintaxis SQL o una capacidad que se puede procesar en el servidor.
VALUE String Detalles sobre el SQL o la sintaxis de SQL admitidos.

Sys_identidad

Devuelve información sobre los intentos de modificación.

La siguiente consultar recupera los Id. de las filas modificadas en una operación lote:

SELECT * FROM sys_identity
Columnas
Nombre Tipo Descripción
Id String El ID generado por la base de datos devuelto de una operación de modificación de datos.
Batch String Un identificador para el lote. 1 para una sola operación.
Operation String El resultado de la operación en el lote: INSERTADO, ACTUALIZADO o ELIMINADO.
Message String ÉXITO o un mensaje de error si falla la actualización en el lote.

Descubrimiento de Metadatos

Exponer Entidades y Propiedades de Navegación

El conector modela el servicio SAP HANA XSA Servicio OData como tablas y vistas relacionales.

El Servicio OData tiene relaciones con otros objetos en las tablas, que se expresan a través de claves externas.

El conector obtiene dinámicamente los metadatos del servicio OData expuesto por la aplicación Multi Target SAP Hana XS Advanced.

Tomemos, por ejemplo, el siguiente Servicio OData:

service {
"tinyworld.tinydb::tinyf.world" as "Continents" navigates ("Continet_Countries" as "Country");
"tinyworld.tinydb::tinyf.Country" as "Countries";
"tinyworld.tinydb::tinyf.pollution_data" as "pollution_data";
association "Continet_Countries" principal "Continents"("continent") multiplicity "1" dependent "Countries"("partof.continent") multiplicity "*"; 
}

El conector expondrá 3 tablas y 1 vista como se especifica en el archivo .xsodata. Las tablas expuestas serían: Continentes, Países y datos_polución, y la vista expuesta sería: Continentes_País. Cada configuración realizada en el archivo .xsodata afectará el Servicio OData y los datos expuestos por el conector.

Exposición de Vistas de Cálculo Parametrizadas

Además de las entidades estándar de OData, nuestro conector expone y admite la consulta de vistas de cálculo parametrizadas configuradas como conjuntos de entidades independientes y también como propiedades de navegación de otro conjunto de entidades.

Los parámetros de entrada se exponen como columnas de tabla estándar y su valor se puede proporcionar como una condición de cláusula WHERE. La columna del parámetro de entrada se puede identificar fácilmente ya que el conector agrega el prefijo 'Parámetros_' al nombre de la columna. Debe tener en cuenta que el único operador compatible del lado del servidor para los parámetros de entrada es EQUAL (=).

SELECT * FROM Orders WHERE Parameters_InputRegion='US'

Los parámetros de entrada son necesarios en la cláusula WHERE solo si no se establece un valor predeterminado en el momento del diseño en XSA Web IDE. Esto significa que la consultar de ejemplo a continuación debe ejecutarse correctamente sin proporcionar ningún valor para los parámetros de entrada si se configura un valor predeterminado para el parámetro InputRegion.

SELECT * FROM Orders

Consideremos el siguiente ejemplo Servicio OData:

service {
"tinyworld.tinydb::LocalOrders" as "Orders" keys("No") parameters via entity;
"tinyworld.tinydb::ThresholdOrders" as "LocalThresholdOrders" keys("No") parameters via entity "ThresholdParams" results property "Execute"; 
"tinyworld.tinydb::tinyf.Customer" as "Customers" navigates ("customer_res" as "CustomerReservations");
"tinyworld.tinydb::ReservationView" as "Reservations" key ("resno") parameters via key and entity;
association via parameters "customer_res" principal "Customer"("CustomerId") multiplicity "1" dependent "Reservations"("InputCustomerId") multiplicity "*";
}

La primera vista parametrizada expuesta es la vista 'Pedidos'. Dado que utiliza la configuración predeterminada, puede consultar directamente sin ninguna configuración adicional.

Según el segundo, 'LocalThresholdOrders', utiliza un conjunto de entidades de parámetros renombrados personalizados 'ThresholdParams'. Para que el conector lo identifique correctamente como una vista parametrizada, deberá proporcionar el nombre de la entidad de parámetros a través de ParametersEntitySets propiedad de conexión. Si tiene más de un conjunto de entidades de parámetros renombrados, puede proporcionar la lista separada por comas de los conjuntos de entidades de parámetros renombrados para cada vista parametrizada expuesta.

El conector también expone y brinda la posibilidad de consultar vistas parametrizadas configuradas como propiedades de navegación de otra entidad. Este tipo de vista de navegación no admite la expansión, por lo que para consultar deberá especificar la clave de la entidad base. No debe proporcionar ningún valor para los parámetros de entrada. No son obligatorios ni se admiten en el servidor, ya que sus valores están vinculados a los campos de entidad base correspondientes.

En este ejemplo, la vista de cálculo 'Reservas' está configurada como la propiedad de navegación 'ReservasClientes' de la entidad Clientes. La siguiente consultar de ejemplo devuelve las 'Reservaciones de clientes' para el cliente con el valor de clave 1001.

SELECT * FROM Customers_ CustomerReservations WHERE CustomerId = '1001'

Propiedades de Configuraciones Avanzadas

Las propiedades de configuraciones avanzadas son las diversas opciones que se pueden utilizar para establecer una conexión. Esta sección proporciona una lista completa de las opciones que puede configurar. Haga clic en los enlaces para obtener más detalles.

Autenticación

Propiedad Descripción
AuthScheme El tipo de autenticación que se utilizará al conectarse a SAP HANA XSA.
XSUAAURL La URL desde la que recuperar el token de acceso de OAuth.
URL El extremo del servicio OData.
User La cuenta de usuario de SAP HANA XSA utilizada para la autenticación.
Password La contraseña utilizada para autenticar al usuario.

OAuth

Propiedad Descripción
InitiateOAuth Establezca esta propiedad para iniciar el proceso para obtener o actualizar el token de acceso de OAuth cuando se conecte.
OAuthClientId El ID de cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.
OAuthClientSecret El secreto del cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.
OAuthAccessToken El token de acceso para conectarse mediante OAuth.
CallbackURL La URL de devolución de llamada de OAuth a la que volver cuando se autentica. Este valor debe coincidir con la URL de devolución de llamada que especifica en la configuración de su aplicación.
OAuthGrantType El tipo de concesión para el flujo de OAuth.
OAuthVerifier El código verificador devuelto desde la URL de autorización de OAuth.
OAuthRefreshToken El token de actualización de OAuth para el token de acceso de OAuth correspondiente.
OAuthExpiresIn La vida útil en segundos del AccessToken de OAuth.
OAuthTokenTimestamp La marca de tiempo de la época de Unix en milisegundos cuando se creó el token de acceso actual.

SSL

Propiedad Descripción
SSLServerCert El certificado que se aceptará del servidor al conectarse mediante TLS/SSL.

Esquema

Propiedad Descripción
Location Una ruta al directorio que contiene los archivos de esquema que definen tablas, vistas y procedimientos almacenados.
BrowsableSchemas Esta propiedad restringe los esquemas informados a un subconjunto de los esquemas disponibles. Por ejemplo, BrowsableSchemas=SchemaA, SchemaB, SchemaC.
Tables Esta propiedad restringe las tablas notificadas a un subconjunto de las tablas disponibles. Por ejemplo, Tablas=TablaA, TablaB, TablaC.
Views Restringe las vistas informadas a un subconjunto de las tablas disponibles. Por ejemplo, Vistas=VistaA, VistaB, VistaC.

Misceláneas

Propiedad Descripción
MaxRows Limita el número de filas devueltas cuando no se usa agregación o agrupación en la consultar. Esto ayuda a evitar problemas de rendimiento en el momento del diseño.
ODataVersion La versión de OData a utilizar. De forma predeterminada, el proveedor intentará detectar automáticamente la versión.
Other Estas propiedades ocultas se usan solo en casos de uso específicos.
Pagesize El número máximo de resultados a devolver por página de SAP HANA XSA.
ParametersEntitySets La lista separada por comas de los conjuntos de entidades de parámetros renombrados para las vistas calculadas parametrizadas expuestas.
PseudoColumns Esta propiedad indica si incluir o no pseudocolumnas como columnas en la tabla.
SupportsExpand Si necesita especificar la clave de la entidad base para consultar las vistas de propiedades de navegación.
SupportsFormulas Un valor booleano que indica si el servicio OData admite fórmulas del lado del servidor.
Timeout El valor en segundos hasta que se lanza el error de tiempo de espera, cancelando la operación.
UseClientSidePaging Si el proveedor ADO.NET para SAP HANA XSA debe o no usar la paginación del lado del cliente.
UseEtags Si la fuente de OData usa o no Etags.
UseSimpleNames Booleano que determina si se deben usar nombres simples para tablas y columnas.

Autenticación

Esta sección proporciona una lista completa de las propiedades de autenticación que puede configurar.

Propiedad Descripción
AuthScheme El tipo de autenticación que se utilizará al conectarse a SAP HANA XSA.
XSUAAURL La URL desde la que recuperar el token de acceso de OAuth.
URL El extremo del servicio OData.
User La cuenta de usuario de SAP HANA XSA utilizada para la autenticación.
Password La contraseña utilizada para autenticar al usuario.

AuthScheme

El tipo de autenticación que se utilizará al conectarse a SAP HANA XSA.

Valores Posibles

Basic, OAuth

Tipo de Datos

string

Valor por Defecto

"Basic"

Observaciones
  • Básico: configure esto para usar la autenticación básica de usuario/contraseña.
  • OAuth: configure esto para realizar la autenticación OAuth.

XSUAAURL

La URL desde la que recuperar el token de acceso de OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

En OAuth 1.0, el token de solicitud autorizado se intercambia por el token de acceso en esta URL.

URL

El extremo del servicio OData.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Puede encontrar este extremo en las configuraciones de su módulo web. Consulta el archivo donde has definido todas tus rutas. Establezca esta propiedad de conexión en una URL que apunte a un archivo de servicio OData, por ejemplo: http://hxehost.com/euro.xsodata

Usuario

La cuenta de usuario de SAP HANA XSA utilizada para la autenticación.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Junto con Contraseña, este campo se usa para autenticarse en el servidor SAP HANA XSA.

Contraseña

La contraseña utilizada para autenticar al usuario.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

El usuario y Password se usan juntos para autenticarse con el servidor.

OAuth

Esta sección proporciona una lista completa de las propiedades de OAuth que puede configurar.

Propiedad Descripción
InitiateOAuth Establezca esta propiedad para iniciar el proceso para obtener o actualizar el token de acceso de OAuth cuando se conecte.
OAuthClientId El ID de cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.
OAuthClientSecret El secreto del cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.
OAuthAccessToken El token de acceso para conectarse mediante OAuth.
CallbackURL La URL de devolución de llamada de OAuth a la que volver cuando se autentica. Este valor debe coincidir con la URL de devolución de llamada que especifica en la configuración de su aplicación.
OAuthGrantType El tipo de concesión para el flujo de OAuth.
OAuthVerifier El código verificador devuelto desde la URL de autorización de OAuth.
OAuthRefreshToken El token de actualización de OAuth para el token de acceso de OAuth correspondiente.
OAuthExpiresIn La vida útil en segundos del AccessToken de OAuth.
OAuthTokenTimestamp La marca de tiempo de la época de Unix en milisegundos cuando se creó el token de acceso actual.

Iniciar OAuth

Establezca esta propiedad para iniciar el proceso para obtener o actualizar el token de acceso de OAuth cuando se conecte.

Valores Posibles

OFF, GETANDREFRESH, REFRESH

Tipo de Datos

string

Valor por Defecto

"OFF"

Observaciones

Las siguientes opciones están disponibles:

  1. OFF: Indica que el flujo de OAuth será manejado en su totalidad por el usuario. Se requerirá un OAuthAccessToken para la autenticación.
  2. GETANDREFRESH: indica que el conector manejará todo el flujo de OAuth. Si actualmente no existe ningún token, se obtendrá solicitándolo al usuario a través del navegador. Si existe un token, se actualizará cuando corresponda.
  3. REFRESH: indica que el conector solo manejará la actualización de OAuthAccessToken. El conector nunca le pedirá al usuario que se autentique a través del navegador. El usuario debe manejar la obtención de OAuthAccessToken y OAuthRefreshToken inicialmente.

OAuthClientId

El ID de cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Como parte del registro de una aplicación OAuth, recibirá el OAuthClientId valor, a veces también llamado clave de consumidor, y un secreto de cliente, el OAuthClientSecret.

OAuthClientSecretOAuthClientSecret

El secreto del cliente asignado cuando registra su aplicación con un servidor de autorización de OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Como parte del registro de una aplicación OAuth, recibirá el OAuthClientId, también denominada clave de consumidor. También recibirá un secreto de cliente, también llamado secreto de consumidor. Establezca el secreto del cliente en OAuthClientSecret propiedad.

Token de Acceso de OAuth

El token de acceso para conectarse mediante OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

El OAuthAccessToken la propiedad se usa para conectarse usando OAuth. El OAuthAccessToken se recupera del servidor OAuth como parte del proceso de autenticación. Tiene un tiempo de espera dependiente del servidor y se puede reutilizar entre solicitudes.

El token de acceso se utiliza en lugar de su nombre de usuario y contraseña. El token de acceso protege sus credenciales manteniéndolas en el servidor.

URL de Devolución de Llamada

La URL de devolución de llamada de OAuth a la que volver cuando se autentica. Este valor debe coincidir con la URL de devolución de llamada que especifica en la configuración de su aplicación.

Tipo de Datos

string

Valor por Defecto

"http://localhost:33333"

Observaciones

Durante el proceso de autenticación, el servidor de autorización de OAuth redirige al usuario a esta URL. Este valor debe coincidir con la URL de devolución de llamada que especifica en la configuración de su aplicación.

OAuthGrantType

El tipo de concesión para el flujo de OAuth.

Valores Posibles

CODE, PASSWORD

Tipo de Datos

string

Valor por Defecto

"PASSWORD"

Observaciones

El tipo de concesión para el flujo de OAuth. Las siguientes opciones están disponibles: CÓDIGO, CONTRASEÑA

OAuthVerifier

El código verificador devuelto desde la URL de autorización de OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

El código verificador devuelto desde la URL de autorización de OAuth. Esto se puede usar en sistemas en los que no se puede iniciar un navegador, como los sistemas sin cabeza.

Autenticación en Máquinas Sin Cabeza

Ver para obtener el OAuthVerifier valor.

Establezca OAuthSettingsLocation junto con OAuthVerifier. Cuando se conecta, el conector intercambia el OAuthVerifier para los tokens de autenticación de OAuth y los guarda, encriptados, en el archivo especificado. Establecer Iniciar OAuth para GETANDREFRESH automatizar el intercambio.

Una vez que se haya generado el archivo de configuración de OAuth, puede eliminar OAuthVerifier desde las propiedades de conexión y conéctese con OAuthSettingsLocation colocar.

Para actualizar automáticamente los valores del token de OAuth, establezca OAuthSettingsLocation y además configure InitiateOAuth refrescar.

OAuthRefreshToken

El token de actualización de OAuth para el token de acceso de OAuth correspondiente.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

El OAuthRefreshToken la propiedad se usa para actualizar el OAuthAccessToken al usar la autenticación OAuth.

OAuthExpiresIn

La vida útil en segundos del AccessToken de OAuth.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Empareje con OAuthTokenTimestamp para determinar cuándo caducará el AccessToken.

OAuthTokenTimestamp

La marca de tiempo de la época de Unix en milisegundos cuando se creó el token de acceso actual.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Emparéjese con OAuthExpiresIn para determinar cuándo expirará AccessToken.

SSL

Esta sección proporciona una lista completa de las propiedades SSL que puede configurar.

Propiedad Descripción
SSLServerCert El certificado que se aceptará del servidor al conectarse mediante TLS/SSL.

SSLServerCert

El certificado que se aceptará del servidor al conectarse mediante TLS/SSL.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Si usa una conexión TLS/SSL, esta propiedad se puede usar para especificar el certificado TLS/SSL que se aceptará del servidor. Se rechaza cualquier otro certificado que no sea de confianza para la máquina.

Esta propiedad puede tomar las siguientes formas:

Descripción Ejemplo
Un certificado PEM completo (ejemplo abreviado por brevedad) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
Una ruta a un archivo local que contiene el certificado C:\cert.cer
La clave pública (ejemplo abreviado por brevedad) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
La huella digital MD5 (los valores hexadecimales también pueden estar separados por espacios o dos puntos) ecadbdda5a1529c58a1e9e09828d70e4
La huella digital SHA1 (los valores hexadecimales también pueden estar separados por espacios o dos puntos) 34a929226ae0819f2ec14b4a3d904f801cbb150d

Si no se especifica, se acepta cualquier certificado en el que confíe la máquina.

La máquina valida los certificados como confiables según el almacén de confianza del sistema. El almacén de confianza utilizado es el valor 'javax.net.ssl.trustStore' especificado para el sistema. Si no se especifica ningún valor para esta propiedad, se utiliza el almacén de confianza predeterminado de Java (por ejemplo, JAVA_HOME\lib\security\cacerts).

Use '*' para indicar que acepta todos los certificados. Tenga en cuenta que esto no se recomienda debido a problemas de seguridad.

Esquema

Esta sección proporciona una lista completa de propiedades de esquema que puede configurar.

Propiedad Descripción
Location Una ruta al directorio que contiene los archivos de esquema que definen tablas, vistas y procedimientos almacenados.
BrowsableSchemas Esta propiedad restringe los esquemas informados a un subconjunto de los esquemas disponibles. Por ejemplo, BrowsableSchemas=SchemaA, SchemaB, SchemaC.
Tables Esta propiedad restringe las tablas notificadas a un subconjunto de las tablas disponibles. Por ejemplo, Tablas=TablaA, TablaB, TablaC.
Views Restringe las vistas informadas a un subconjunto de las tablas disponibles. Por ejemplo, Vistas=VistaA, VistaB, VistaC.

Ubicación

Una ruta al directorio que contiene los archivos de esquema que definen tablas, vistas y procedimientos almacenados.

Tipo de Datos

string

Valor por Defecto

"%APPDATA%\\\SAPHanaXSA Data Provider\\Schema"

Observaciones

La ruta a un directorio que contiene los archivos de esquema para el conector (archivos .rsd para tablas y vistas, archivos .rsb para procedimientos almacenados). La ubicación de la carpeta puede ser una ruta relativa desde la ubicación del ejecutable. El Location La propiedad solo es necesaria si desea personalizar las definiciones (por ejemplo, cambiar el nombre de una columna, ignorar una columna, etc.) o ampliar el modelo de datos con nuevas tablas, vistas o procedimientos almacenados.

Si no se especifica, la ubicación predeterminada es "%APPDATA%\\SAPHanaXSA Data Provider\Schema" con %APPDATA% estando configurado en el directorio de configuración del usuario:

Plataforma %APPDATA%
Windows El valor de la variable de ambiente APPDATA
Mac ~/Biblioteca/Soporte de aplicaciones
Linux ~/.config

Esquemas Navegables

Esta propiedad restringe los esquemas informados a un subconjunto de los esquemas disponibles. Por ejemplo, BrowsableSchemas=SchemaA,SchemaB,SchemaC.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Enumerar los esquemas de las bases de datos puede resultar costoso. Proporcionar una lista de esquemas en la cadena de conexión mejora el rendimiento.

Mesas

Esta propiedad restringe las tablas notificadas a un subconjunto de las tablas disponibles. Por ejemplo, Tablas=TablaA,TablaB,TablaC.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Listar las tablas de algunas bases de datos puede resultar costoso. Proporcionar una lista de tablas en la cadena de conexión mejora el rendimiento del conector.

Esta propiedad también se puede utilizar como una alternativa a la lista automática de vistas si ya sabe con cuáles quiere trabajar y, de lo contrario, habría demasiadas para trabajar.

Especifique las tablas que desea en una lista separada por comas. Cada tabla debe ser un identificador SQL válido con cualquier carácter especial escapado usando corchetes, comillas dobles o acentos graves. Por ejemplo, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Tenga en cuenta que al conectarse a una fuente de datos con varios esquemas o catálogos, deberá proporcionar el nombre completo de la tabla en esta propiedad, como en el último ejemplo aquí, para evitar la ambigüedad entre las tablas que existen en varios catálogos o esquemas.

Puntos de Vista

Restringe las vistas informadas a un subconjunto de las tablas disponibles. Por ejemplo, Vistas=VistaA,VistaB,VistaC.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Listar las vistas de algunas bases de datos puede ser costoso. Proporcionar una lista de vistas en la cadena de conexión mejora el rendimiento del conector.

Esta propiedad también se puede utilizar como una alternativa a la lista automática de vistas si ya sabe con cuáles quiere trabajar y, de lo contrario, habría demasiadas para trabajar.

Especifique las vistas que desee en una lista separada por comas. Cada vista debe ser un identificador SQL válido con cualquier carácter especial escapado usando corchetes, comillas dobles o acentos graves. Por ejemplo, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Tenga en cuenta que al conectarse a una fuente de datos con varios esquemas o catálogos, deberá proporcionar el nombre completo de la tabla en esta propiedad, como en el último ejemplo aquí, para evitar la ambigüedad entre las tablas que existen en varios catálogos o esquemas.

Misceláneas

Esta sección proporciona una lista completa de propiedades misceláneas que puede configurar.

Propiedad Descripción
MaxRows Limita el número de filas devueltas cuando no se usa agregación o agrupación en la consultar. Esto ayuda a evitar problemas de rendimiento en el momento del diseño.
ODataVersion La versión de OData a utilizar. De forma predeterminada, el proveedor intentará detectar automáticamente la versión.
Other Estas propiedades ocultas se usan solo en casos de uso específicos.
Pagesize El número máximo de resultados a devolver por página de SAP HANA XSA.
ParametersEntitySets La lista separada por comas de los conjuntos de entidades de parámetros renombrados para las vistas calculadas parametrizadas expuestas.
PseudoColumns Esta propiedad indica si incluir o no pseudocolumnas como columnas en la tabla.
SupportsExpand Si necesita especificar la clave de la entidad base para consultar las vistas de propiedades de navegación.
SupportsFormulas Un valor booleano que indica si el servicio OData admite fórmulas del lado del servidor.
Timeout El valor en segundos hasta que se lanza el error de tiempo de espera, cancelando la operación.
UseClientSidePaging Si el proveedor ADO.NET para SAP HANA XSA debe o no usar la paginación del lado del cliente.
UseEtags Si la fuente de OData usa o no Etags.
UseSimpleNames Booleano que determina si se deben usar nombres simples para tablas y columnas.

Filas Máximas

Limita el número de filas devueltas cuando no se usa agregación o agrupación en la consultar. Esto ayuda a evitar problemas de rendimiento en el momento del diseño.

Tipo de Datos

int

Valor por Defecto

-1

Observaciones

Limita el número de filas devueltas cuando no se usa agregación o agrupación en la consultar. Esto ayuda a evitar problemas de rendimiento en el momento del diseño.

ODataVersionODataVersion

La versión de OData a utilizar. De forma predeterminada, el proveedor intentará detectar automáticamente la versión.

Valores Posibles

AUTO, 2.0, 4.0

Tipo de Datos

string

Valor por Defecto

"AUTO"

Observaciones

La versión de OData a utilizar. De forma predeterminada, el conector intentará determinar automáticamente la versión que utiliza el servicio. Si no se puede resolver una versión, se utilizará la 3.0. Esto se puede configurar manualmente de forma opcional.

Otro

Estas propiedades ocultas se usan solo en casos de uso específicos.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Las propiedades enumeradas a continuación están disponibles para casos de uso específicos. Los casos de uso y la funcionalidad normales del controlador no deberían requerir estas propiedades.

Especifique varias propiedades en una lista separada por punto y coma.

Integración y Formateo
Propiedad Descripción
DefaultColumnSize Establece la longitud predeterminada de los campos de cadena cuando la fuente de datos no proporciona la longitud de columna en los metadatos. El valor predeterminado es 2000.
ConvertDateTimeToGMT Determina si se convierten los valores de fecha y hora a GMT, en lugar de la hora local de la máquina.
RecordToFile=filename Registra la transferencia de datos del socket subyacente al archivo especificado.

Tamaño de Página

El número máximo de resultados a devolver por página de SAP HANA XSA.

Tipo de Datos

int

Valor por Defecto

1000

Observaciones

El Pagesize la propiedad afecta la cantidad máxima de resultados a devolver por página de SAP HANA XSA. Establecer un valor más alto puede resultar en un mejor rendimiento a costa de memoria adicional asignada por página consumida.

ParámetrosEntitySets

La lista separada por comas de los conjuntos de entidades de parámetros renombrados para las vistas calculadas parametrizadas expuestas.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Puede proporcionar los nombres del conjunto de entidades de parámetros como una lista separada por comas para las vistas calculadas expuestas que está usando un conjunto de entidades de parámetros renombrado o una propiedad de navegación de Resultados renombrada.

Pseudocolumnas

Esta propiedad indica si incluir o no pseudocolumnas como columnas en la tabla.

Tipo de Datos

string

Valor por Defecto

""

Observaciones

Esta configuración es particularmente útil en Entity Framework, que no le permite establecer un valor para una pseudocolumna a menos que sea una columna de tabla. El valor de esta configuración de conexión tiene el formato "Tabla1=Columna1, Tabla1=Columna2, Tabla2=Columna3". Puede usar el carácter "*" para incluir todas las tablas y todas las columnas; por ejemplo, "*=*".

SoportesExpandir

Si necesita especificar la clave de la entidad base para consultar las vistas de propiedades de navegación.

Tipo de Datos

bool

Valor por Defecto

true

Observaciones

Esta propiedad de conexión se usa principalmente con APIs de OData limitadas; determina si las propiedades de navegación se pueden recuperar del conjunto de entidades base. En OData, las propiedades de navegación enlace una entidad base a una entidad relacionada o una colección de entidades relacionadas.

Para obtener más información sobre las propiedades de navegación, consulte Modelo de datos.

Trabajar con APIs Limitadas

En OData, el $expand el parámetro se usa para expandir las propiedades de navegación especificadas cuando se solicitan datos de un conjunto de entidades dado. En SQL, esto hace posible ejecutar un SELECT * a una vista de propiedades de navegación.

Si $expand no se admite, se debe realizar una solicitud diferente para recuperar una propiedad de navegación, una que especifique la clave principal del conjunto de entidades base. Esta restricción de API se refleja en SQL: deberá especificar la clave principal de la entidad base en la cláusula WHERE.

Por ejemplo, considere dos entidades con una relación de uno a varios en el servicio de ejemplo de Northwind, Categorías y Productos. En OData, los productos asociados con una categoría determinada podrían representarse como una propiedad de navegación en el conjunto de entidades de categoría base. El conector modela la propiedad de navegación Productos como una vista Categorías_Productos.

Si $expand no es compatible, use una consultar como la siguiente para esta vista:

SELECT       *
FROM         Categories_Products
WHERE        (Categories_CategoryID = 1)

SoportesFórmulas

Un valor booleano que indica si el servicio OData admite fórmulas del lado del servidor.

Tipo de Datos

bool

Valor por Defecto

false

Observaciones

OData tiene muchas fórmulas del lado del servidor que están integradas en las especificaciones. Sin embargo, muchos servicios no los admiten de forma nativa y generarán errores cuando estas fórmulas se agreguen al parámetro $filter. Cuando se admiten, las fórmulas del lado del servidor se pueden usar para ejecutar ciertas consultas mucho más rápido. Si su servicio OData admite fórmulas, establezca esta propiedad de conexión en verdadero. De lo contrario, déjalo como falso.

Se Acabó el Tiempo

El valor en segundos hasta que se lanza el error de tiempo de espera, cancelando la operación.

Tipo de Datos

int

Valor por Defecto

60

Observaciones

Si Timeout = 0, las operaciones no expiran. Las operaciones se ejecutan hasta que se completan correctamente o hasta que encuentran una condición de error.

Si Timeout caduca y la operación aún no se ha completado, el conector genera una excepción.

UseClientSidePaging

Si el proveedor ADO.NET para SAP HANA XSA debe o no usar la paginación del lado del cliente.

Tipo de Datos

bool

Valor por Defecto

true

Observaciones

Algunas fuentes no admiten la paginación del lado del servidor. En estos casos, establezca UseClientSidePaging a verdadero. De lo contrario, déjalo como falso. Configuración UseClientSidePaging a verdadero en una fuente que ya admite la paginación puede generar resultados incompletos.

UsarEtags

Si la fuente de OData usa o no Etags.

Tipo de Datos

bool

Valor por Defecto

false

Observaciones

Algunas fuentes de OData no usan Etags. En estos casos, establezca UseEtags en False.

UsarNombresSimples

Booleano que determina si se deben usar nombres simples para tablas y columnas.

Tipo de Datos

bool

Valor por Defecto

false

Observaciones

Las tablas y columnas de SAP HANA XSA pueden usar caracteres especiales en los nombres que normalmente no están permitidos en las bases de datos estándar. UseSimpleNames hace que el conector sea más fácil de usar con las herramientas de bases de datos tradicionales.

Configuración UseSimpleNames a verdadero simplificará los nombres de las tablas y columnas devueltas. Aplicará un esquema de nomenclatura tal que solo los caracteres alfanuméricos y el guión bajo sean válidos para los nombres de las tablas y columnas que se muestran. Cualquier carácter no alfanumérico se convertirá en un guión bajo.