Avalados por :
Esta es oficialmente la tan esperada parte III de la serie que comenzó con Comunicación SAP EDI/IDoc en CPI utilizando Bundling y Menos Artefactos de Mapeo , y Comunicación SAP EDI/IDoc en CPI utilizando Bundling y Menos Artefactos de Mapeo Parte II que aborda el punto problemático para mi enfoque que sabía desde el principio. No hay una interfaz de usuario para administrar datos en el Directorio de Socios, así que tuve que recurrir a Postman como mi herramienta principal... 👎🏼 Después de varias semanas de enfoque extremo ( para disgusto de mi esposa, pero ahora está feliz de que haya terminado ), he creado una aplicación UI5 de estilo libre para manejar casi todos los parámetros de mantenimiento que se requieren en tiempo de ejecución. El enfoque extremo que fue necesario se debió a que soy un ABAPer, JAVAer, CPIer, XSLTer, pero tengo muy poca experiencia en UI5, y cuando lo hice fue hace años. Incluso fui tan lejos como para proporcionar traducciones al español, francés y alemán. Usé Google Translate, por lo que algunas traducciones, puntuaciones, mayúsculas ( por mí ), junto con algunas referencias contextuales podrían ser inexactas... ¿debo traducir "Carriage Return" literalmente o se llama de otra manera en otros idiomas?
Intentaré contar cómo se desarrollaron las últimas tres semanas de diversión en detalle, pero con la intención de provocar una risa o dos. Ni siquiera escribí una sola línea de código antes de que comenzara el dolor porque mi espacio de desarrollo en BAS se titula "MyDevSpaceV3"... eso puede reflexionar por sí solo.
Mi primera tarea fue obtener algunos datos básicos para mostrar en la pantalla, así que tuve que empezar por asimilar la amplitud del Kit de Demostración de SAP UI5. ¿Hay una forma más fácil de entender cada uno de los controles u objetos sin tener que asimilar la documentación impresa... tal vez puedo hacerlo al estilo Matrix? Después de leer bastante sobre las propiedades, elementos, listas, compuestos y enlaces de expresión, con no tanto entendimiento, estaba listo para empezar. Quería usar las vistas XML declarativas tanto como fuera posible, pero el primer obstáculo llegó rápido debido a cómo el Directorio de Socios almacena los datos, y quería hacer que la aplicación fuera configurable para la vista propia. No es posible usar la sintaxis de enlace dinámico (
dos campos clave
) para un modelo OData, así que tuve que enlazar los elementos en tiempo de ejecución con el buen viejo JavaScript. Necesitaba revisar los enlaces una vez más para entender la sintaxis necesaria y después de un poco de experimentación y suerte pude hacer que la información se mostrara. Durante el período de revisión hubo bastante confusión porque comencé a ver cosas como ContextBinding y BindingContext (hay otras abstracciones cuestionables e inconsistencias). ¿Se supone que debo entender la diferencia únicamente porque el orden de las palabras está invertido?
Dar un pequeño puño en alto
💪🏼
y pasar a intentar actualizar algunos datos haciendo uso del enlace bidireccional. Durante la primera tarea noté errores en la consola sobre problemas con "false" y "true" asignados a la propiedad de estado de un interruptor en lugar del booleano adecuado... entra en juego el enlace de expresión (brevemente) para el rescate. Lo que me faltó en un comentario en la documentación que debería haber estado en negrita, pero no estaba, es que el enlace de expresión fuerza automáticamente un enlace unidireccional. Si ves la interfaz de usuario eso no va a funcionar ya que casi la mitad de los campos son interruptores. Supuestamente esto funciona con el enlace de propiedad, pero no pude hacer que funcionara, y después de buscar encontré una opción con enlace compuesto... un StringyBoolean nació. Tomó un poco de experimentación pero logré que funcionara como se esperaba para que el modelo OData reflejara los cambios pendientes cuando se actualizaba la interfaz de usuario!
💪🏼
Aquí vamos, listos para enviar esa actualización al backend... no tan rápido porque el primer problema importante se presenta. Puedo leer datos, ¿por qué no puedo actualizar los datos? Este período duró unas buenas 36-48 horas (
en su mayoría un borrón y MUCHOS insultos
), pero hice avances cuando finalmente decidí probar un navegador diferente. Soy un usuario de Firefox de toda la vida, pero necesitaba Chrome para esta tarea. ¿Cuál era el culpable? Cada modelo OData instanciado con el manifiesto tiene automáticamente metadatos recuperados con un parámetro de URL agregado - ?sap-language=XX. Vale, ¿pero por qué es eso un problema? El problema es porque la API del Directorio de Socios solo devuelve un documento
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute