
El reemplazo directo se ha desarrollado para permitir que SAP Desktop Office Integration (DOI) se ejecute en más plataformas y sistemas operativos. SAP Desktop Office Integration es una solución para que los desarrolladores de aplicaciones integren productos de Office como Microsoft Excel y Microsoft Word en sus aplicaciones SAP GUI. Esta tecnología se desarrolló en los años 90 y todavía es muy utilizada por muchas aplicaciones y clientes. Por ejemplo, se usa ampliamente para importar y exportar datos desde y hacia un sistema SAP.
Hasta ahora, SAP Desktop Office Integration solo funcionaba en Microsoft Windows en combinación con SAP GUI para Windows, porque se basa en la interfaz de la aplicación OLE2 que solo está disponible para aplicaciones nativas como SAP GUI para Windows. Con el cambio a las aplicaciones web y otros sistemas operativos como Apple MacOS, esto se ha convertido en un problema para los clientes que usan aplicaciones SAP GUI con SAP GUI para JAVA o SAP GUI para HTML.
Si un cliente intenta ejecutar un programa que utiliza SAP Desktop Office Integration en SAP GUI para HTML o SAP GUI para Java, el programa finalizará con la siguiente excepción:
Category: ABAP programming error
Runtime Errors: RAISE_EXCEPTION
Short Text: Exception condition "JAVABEANNOTSUPPORTED" raised.
Un reemplazo directo es un componente que puede reemplazar a otro componente sin ningún otro código o cambios de configuración. El reemplazo directo de SAP Desktop Office Integration sigue usando las mismas interfaces que la solución actual, pero permite que las aplicaciones también se ejecuten en el navegador web en SAP GUI para HTML o SAP GUI para JAVA. El objetivo es mantener el esfuerzo de migración lo más bajo posible y, en la mayoría de los casos, se trata de un cambio de código de una línea. La primera versión del reemplazo directo para SAP Desktop Office Integration admitirá el escenario de importación y exportación de datos utilizando Microsoft Excel.
Descripción general del reemplazo directo de la integración de SAP Desktop Office
Con la implementación original, debe obtener el control del contenedor de la clase C_OI_CONTAINER_CONTROL_CREATOR
y llamar al método get_container_control( )
que devuelve el objeto de control del contenedor que implementa la interfaz I_OI_CONTAINER_CONTROL
. Usando el objeto de control de contenedor, ha podido obtener una instancia del proxy de documento a través del método get_document_proxy( )
y en la instancia del proxy del documento, pudo obtener una instancia de la interfaz de la hoja de cálculo llamando al método get_spreadsheet_interface( )
.
El código necesario para establecer datos en una hoja se vería así:
c_oi_container_control_creator=>get_container_control(
IMPORTING control = DATA(container_control) ).
...
container_control->get_document_proxy(
EXPORTING document_type="Excel.Sheet"
IMPORTING document_proxy = DATA(document_proxy) ).
...
document_proxy->get_spreadsheet_interface(
IMPORTING sheet_interface = DATA(spreadsheet) ).
...
spreadsheet->set_ranges_data( ... ).
Para cambiar al reemplazo directo de SAP Desktop Office Integration, solo tiene que cambiar la llamada inicial para obtener el control del contenedor. En lugar de obtener el control del contenedor de la clase C_OI_CONTAINER_CONTROL_CREATOR
el control del contenedor se recuperará de la clase CL_SOVY_CONTAINER_CONTROL
. No es necesario cambiar las llamadas posteriores o la lógica de la aplicación.
Para permitir que la integración de la oficina en memoria funcione correctamente, se debe proporcionar un modo de integración. Esto es necesario, porque el reemplazo inmediato necesita saber ahora cómo se pretende utilizar. Anteriormente esto no era necesario porque la aplicación de Office se abría al principio del proceso. Debido a que esto ya no es posible en una aplicación web o con SAP GUI para JAVA, necesitábamos introducir un modo de integración. De todos los posibles casos de uso, actualmente admitimos los siguientes modos de integración:
Necesitas deshacerte de la siguiente línea de código:
c_oi_container_control_creator=>get_container_control( ... ).
y reemplácelo con la siguiente línea:
cl_sovy_container_control=>get_container_control(
EXPORTING office_integration_mode = cl_sovy_container_control=>soi_mode_export
IMPORTING control = DATA(container_control) ).
Para el caso de uso de exportación, ahora es obligatorio llamar a uno de los siguientes métodos para finalizar la exportación de datos:
save_as( )
save_document_to_url( )
close_document( )
save_copy_as( )
Esta es una señal para el reemplazo directo de que la creación del archivo ha finalizado y ahora se puede guardar.
Puede encontrar un ejemplo del caso de uso de exportación en el paquete SOVY_IMP
. El informe TEST_SOVY_SHEET_EXPORT
demuestra cómo puede exportar datos de un sistema SAP a una hoja de Excel.
Necesitas deshacerte de la siguiente línea de código:
c_oi_container_control_creator=>get_container_control(…).
y reemplácelo con la siguiente línea:
cl_sovy_container_control=>get_container_control(
EXPORTING office_integration_mode = cl_sovy_container_control=>soi_mode_import
IMPORTING control = DATA(container_control) ).
No es necesario modificar todas las llamadas posteriores. De forma predeterminada, SAP GUI Desktop Office Integration se utilizará en SAP GUI para Windows. Por lo tanto, no arriesga nada más que obtener soporte para todos los demás casos de uso.
Puede encontrar un ejemplo del caso de uso de importación en el paquete SOVY_IMP
. El informe TEST_SOVY_SHEET_IMPORT
demuestra cómo puede importar datos de una hoja de Excel a un sistema SAP.
El método cl_sovy_container_control=>get_container_control( )
se puede configurar pasando la estructura de parámetros opcional config
. Son posibles las siguientes opciones de configuración:
enforce_new_integration = ABAP_TRUE
disable_unimplemented_errors = ABAP_TRUE
enable_cloud_integration = ABAP_TRUE
Google y SAP se asociaron para permitir a los clientes conectar el software central de SAP diseñado para ejecutar todos los procesos de misión crítica en la nube con las capacidades de colaboración de Google Docs y Google Sheets. Esto innova la forma en que se realiza el trabajo en toda la empresa. Como parte de esta asociación, el reemplazo directo de SAP Desktop Office Integration también admite la exportación de hojas directamente desde SAP a Google Sheets. Para obtener más información sobre lo que se ha logrado como parte de esta asociación, lea la siguiente publicación de blog:
https://blogs.sap.com/2022/08/21/saps-ui-technologies-habilitación-google-workspace/
Si bien el reemplazo directo para SAP Desktop Office Integration podrá admitir la mayoría de todos los casos de uso relevantes, tiene las siguientes limitaciones:
us_EN
entonces la fecha se devolvió como 20/02/2023
. En el caso de la integración de Office en memoria, la configuración regional se puede pasar a la integración de Office o se utiliza la configuración regional del usuario de SAP que inició sesión.Es posible que el reemplazo directo de SAP Desktop Office Integration no siempre sea la solución adecuada. Aquí hay algunas alternativas:
Debido a que muchos clientes han implementado SAP Desktop Office Integration en programas e informes personalizados, no conocemos muchos escenarios. Inicialmente, creamos soporte para los casos de uso puros de importación y exportación para los cuales hemos recibido muchos informes de errores. Si sus escenarios no están cubiertos por la implementación actual, nos interesaría conocerlos para poder mejorar nuestra solución. Utilice la sección de comentarios para informarnos sobre sus requisitos o póngase en contacto con nosotros por correo.
El reemplazo directo para SAP Desktop Office Integration estará disponible con SAP S/4 HANA 2023 con SAP_BASIS versión 7.92 o posterior.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073