Yo utilizo una forma que la verdad es rápida y permite hacer comprobaciones según se importa información.
Un ejemplo; los usuario de RRHH reciben todas las semanas una hoja Ms Excel con un listado de los nuevos teléfonos dados por el dpt. de sistemas, es decir, vamos a importar números de teléfono de tipo "Oficina" de un hoja Ms Excel donde el formato es el siguiente: DNI (en la columna A) y Teléfono (en la columna B).
Para ello crearemos un M4Object CXX_IMPORTAR_TELEFONOS con 3 nodos:
CXX_IMP_TEL_ROOT (Nodo principal) -> No tendrá campos, servirá para la ejecución de la importación. Creamos:
- una propiedad llamada CXX_EXCEL_FILE; de ámbito nodo y tipo long (es donde el usuario podrá dejar la ruta al excel a importar que se pedirá en presentación)
- un método llamado CXX_IMPORT de ámbito nodo, con el siguiente código: >CXX_IMPORT.TXT
CXX_AUX_PERSONA (Nodo libre) -> Cargaremos los datos de la persona por DNI (STD_SSN).
- Añadiremos una propiedad: PRP_STD_SSN, de ámbito nodo, tipo cadena variable de 11 posiciones y NO visible.
- La sentencia será: SELECT @STD_ID_PERSON = A.STD_ID_PERSON, @STD_SSN = A.STD_SSN FROM &STD_PERSON A WHERE (A.STD_SSN = @PRP_STD_SSN).
- Crearemos un método: CXX_GET_ID_PERSON(ARG_STD_SSN cadena variable de 11 posiciones) ambito nodo, tipo cadena variable de 9 posiciones. El código será el siguiente: CXX_GET_ID_PERSON.TXT
CXX_IMP_AUX_PHONE (Nodo libre) -> Guardaremos el nuevo teléfono.
- La sentencia será: SELECT @STD_ID_PERSON = A.STD_ID_PERSON, @STD_DT_START = A.STD_DT_START, @STD_DT_END = A.STD_DT_END, @STD_ID_LOCATION_TYPE = A.STD_ID_LOCATION_TYPE, @STD_ID_LINE_TYPE = A.STD_ID_LINE_TYPE, @STD_PHONE = A.STD_PHONE FROM &STD_PHONE_FAX A
La presentación, CXX_IMPORTAR_TELEFONOS quedaría algo así como:
Como temas especiales los dos botones tendrían estos códigos OBL:
a) "Abrir explorador de windows" (Botón de la carpeta) bttBROWSER.txt
b) "Visualizar el documento" (Botón de la lupa) bttVIEW.txt
