Fiori elements (SAPUI5) – una utilidad para cargar excels

Una de las grandes cualidades de Fiori element (entre muchas otras) es poder hacer los clásicos «reports» de ABAP donde mostramos algunos datos y permitimos operaciones de manera rápida gracias a las anotaciones incrustados (o no) a nuestras CDS.

Pero uno de los requisitos recurrentes del usuario siempre es: «Ah! y… ¿podré tenerlo en un excel?» y la siguiente «¿Puedo trabajar los datos en MI EXCEL y luego subirlos?»

Pues bien, a la primera pregunta siempre podíamos responder sin titubear, ¡por supuesto!, pero… ¿y la segunda?

Excel Upload Dialog

A partir de ahora también podremos responder sin miedo con un rotundo ¡SI!

Cargando datos excel en una aplicación Fiori elements

La solución la tenéis en el siguiente repositorio de github:

https://github.com/marianfoo/ui5-cc-excelUpload

Instalación

Solo necesitaremos 5 pasos de configuración para tener el complemento preparado para nuestra aplicación.

  • Instalar la dependencia (paso 1)
  • Añadir la ruta de la dependencia a nuestra app (pasos 2 y 3)
  • Añadir la configuración del complemento (paso 4)

El paso 5 del manual de instalación oficial si usamos templates ya lo tendríamos apunto de entrada.

Utilización

Como vemos en el ejemplo de la documentación oficial, solamente hay que añadir unas pocas líneas de configuración. La «trampa» es que se añadirá un botón custom que nos ara todo el trabajo de carga.

Por un lado la extensión del control estándar:

"OrdersObjectPage": {
    "type": "Component",
    "id": "OrdersObjectPage",
    "name": "sap.fe.templates.ObjectPage",
    "options": {
        "settings": {
            "editableHeaderContent": false,
            "entitySet": "Orders",
            "content": {
                "header": {
                    "actions": {
                        "excelUpload": {
                            "id": "excelUploadButton",
                            "text": "Excel Upload",
                            "enabled": "{ui>/isEditable}",
                            "press": "ui.v4.orders.ext.ObjectPageExtController.openExcelUploadDialog",
                            "requiresSelection": false
                        }
                    }
                }
            }
        }
    }
},

Y por otro lado, el código para realizar la carga de datos:

openExcelUploadDialog: async function (oEvent) {
    this._view.setBusyIndicatorDelay(0)
    this._view.setBusy(true)
    if (!this.excelUpload) {
        this.excelUpload = await this._controller.getAppComponent().createComponent({
            usage: "excelUpload",
            async: true,
            componentData: {
                context: this
            }
        });
    }
    this.excelUpload.openExcelUploadDialog()
    this._view.setBusy(false)
}

Como ya sabréis, esto hace la carga a nuestra aplicación y consolidara los datos en el modelo de la aplicación. Una vez realizada la carga, el usuario podrá pulsar el botón de guardar para que se envíen los datos al backend como si los hubiera informado el de manera manual.

Extra

Como veis también permite realizar la descarga de un excel como plantilla para que el usuario no parta de 0. Si le quedemos dar un nombre concreto a la plantilla podemos utilizar el parámetro «excelFileName» que nos permitirá


Como veis, la comunidad siempre aporta nuevas mejoras y herramientas que nos facilitan la vida y en muchas ocasiones de manera desinteresada.

Como siempre suscribete, dale a la campanita de notificaciones y comparte en redes ayudarme a llegar a mas personas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.