Es muy común que junto a la información introducida en nuestras transacciones necesitemos disponer de documentación que, sea por la razón que sea, no se puede introducir directamente en SAP. Por ejemplo, queremos guardar adjunto a un contrato en SAP el mismo contrato escaneado y firmado por nuestro cliente; deseamos adjuntar una reclamación escrita y escaneada que nos ha enviado nuestro a cliente a una orden de trabajo realizada por uno de nuestros operarios.
Estas actividades se pueden resolver a través de un sistema de gestión documental externo a SAP o interno a través del DMS de SAP. Sin embargo, lo que voy a explicar en este artículo es una forma de trabajo más sencilla a través de "Generic Object Services" (GOS).
Muchas de las transacciones comunes en SAP poseen la posibilidad de adjuntar archivos externos que complementen la información introducida en SAP. Me refiero a archivos de imágenes .jpg, .gif; archivos de office .doc, .xls, .ppt, etc. A la posibilidad de introducir esta información lo llamaremos GOS.
Antes de empezar a trabajar es interesante echarle un vistazo a la información que nos proporciona la wiki de SAP sobre GOS.
Parametrización
No es necesaria.
Creación y visualización del anexo
Imaginemos que queremos adjuntar una reclamación de un cliente a una orden de trabajo de uno de nuestros operarios.
- Entramos en nuestra orden de trabajo. La orden la habremos creado previamente.
Logística / Mantenimiento / Gestión de mantenimiento / Orden / IW32 - Modificar
- Marcamos en el icono de 'Servicios para objeto' / Crear / Crear documento externo (URL).
- Escribimos la descripción y el path para nuestro fichero.
¿Por qué un fichero externo? ¿Los servicios para objeto GOS permiten incluir ficheros y almacenarlos en la misma base de datos de SAP? Pues mi experiencia me dice que no es aconsejable incluir ficheros adjuntos dentro de la propia base de datos de SAP. A la larga, esto nos podría generar problemas de espacio en el servidor con consecuencias imprevistas.
- Volvemos a entrar en la orden de trabajo: Servicios para objeto / Lista anexos.
- Doble click sobre el documento y se abrirá externamente a SAP el documento.
Automatización
Para evitar que sea el usuario quien tenga que realizar la tarea de introducir los datos del adjunto en SAP podríamos crear un pequeño programa que se encargue de informar estos datos en SAP diariamente.
Este programa se debe basar en business objects específicos de SAP. Para asignar documentos externos a órdenes de trabajo nos basamos en el BUS2088. Otros business objects son
- BUS2031 para documentos de ventas*.
- BUS2012 para pedidos de compras.
Herramientas / Workbench / Desarrollo / SAP Business Workflow / Herramientas def. / Integración aplicación / SWO1 - Business objects builder
Podríamos utilizar el módulo de funciones 'SGOS_URL_CREATE_DIALOG' como base para nuestro programa. Deberíamos tener en cuenta en este programa las tablas SRGBTBREL y SOOD donde se almacena la información de los GOS creados.
*Atención, en las transacciones de venta los servicios para objeto están desactivados por defecto. Para activarlos y poder ser utilizados debe añadirse el parámetro SD_SWU_ACTIVE y darle el valor 'X'.
Imagen inicial | bigmick
Respecto a lo que comentas:
ResponderEliminar"Pues mi experiencia me dice que no es aconsejable incluir ficheros adjuntos dentro de la propia base de datos de SAP"
¿a que te refieres concretamente?
Yo como ingeniero técnico informático, mi experiencia y mis conocimientos en bases de datos me aseguran que la deficiencia de velocidad en la base de datos no depende del tamaño de los ficheros que se adjuntan en campos BLOB, sino de la cantidad de filas de la que consta una tabla.
Por lo que los anexos o los enlaces de los objetos, son referenciadas a otra tabla de anexos o enlaces y van a seguir siendo del mismo número de filas, por lo que el rendimiento será el mismo.
¿has verificado si poniendo enlaces en vez de anexos va más rápido?, porque no es coherente al menos que sea por problemas de espacios en disco, y no por problemas de bases de datos.
Hola:
ResponderEliminarMe refiero a problemas de espacio en disco que pudiesen afectar al rendimiento del propio sistema a la larga, no tanto a la base de datos (que ciertamente no sé cómo reaccionaría). También me refiero a que tener un sistema de gestión documental aislado en un entorno separado del entorno productivo de SAP nos proporciona mayor agilidad para realizar cambios y para gestionarlo externamente. Si se adjuntan ficheros directamente a la base de datos de SAP éstos quedan integrados y, a priori, es más difícil llamarlos desde aplicaciones externas, por ejemplo.
Gracias por el comentario, ya está corregido en el artículo.
Hola,
ResponderEliminarMuy interesante tu artículo, en varias oportunidades he tratado de usar esta funcionalidad del SAP, pero no he encontrado en que parte del servidor guarda los archivos, y tampoco he podido probar cuanto impactará en el performance de SAP. Han realizado las pruebas?
Hola,
ResponderEliminarGracias por tu comentario. Nosotros nos decidimos a crear documentos adjuntos y no anexos por la misma razón. No sabíamos dónde guardaba estos anexos y cómo nos podía afectar en el futuro, sobre todo, a la capacidad de nuestro disco. Si apuestas por guardar los documentos como anexos parece ser que SAP los guarda en la base de datos. Desconozco qué afectación tiene eso en el performance de la máquina.
Tras hacer pruebas nosotros no vimos problemas de performance al adjuntar los documentos de forma externa por URL. Eso sí, estos documentos no los guardamos en el mismo servidor de SAP sino en otra máquina aparte.
Un saludo,
Óscar
Hola! Muy interesante este blog. Estuve probando adjuntar documentos a materiales en la MM02 pero luego ingresé a la MM03 y noté que desde esa transacción puedo eliminar los adjuntos, cuando en realidad esa transacción lo que sólo permitiría sería visualizar información y no modificar nada. ¿Alguien sabe si puede limitarse esto?
ResponderEliminarGracias!
Hola! Lo siento, pero creo que el sistema GOS no tiene asociado el concepto de autorizaciones. Sin embargo, te recomiendo que le eches un vistazo a esta página http://www.sdn.sap.com/irj/sdn/gos . Y, sobre todo a la nota 491271
ResponderEliminarHola,
ResponderEliminarPara evitar los problemas de almacenamiento que comentáis, lo correcto sería configurar un repositorio externo vía Archivlink. Puede ser de un tercero, como Opentext, Documentum,siempre que sea compatible, ... o se puede utilizar el propio Content Server de SAP, cuya licencia suele venir incluida con la versión 6 del ECC.
Esto os permitiría almacenar anexos con la función Business Store del GOS.
De esta manera tendriais los documentos almacenados en un servidor de archivo de forma segura.
Para el tema de permisos echarle un ojo al objeto de autorización S_GOS_ATT.
Saludos,
Javi
Mi ultimo desarrollo fue un programa para subir los PDF de las facturas y adjuntarlos a sus doc. contables y eran unos 200.000 PDF!!. Si no tienes parametrizado el sistema los adjuntos se suben a la tabla SOFFCONT1 y el problema vino con las copias periódicas de seguridad que empezaron a ser enormes y se quedaban sin espacio o no terminaban nunca.
ResponderEliminarla solucion fue crear un content server y usar el programa RSIRPIRL y con la nota 1536325 que añade el campo fecha al programa para seleccionar los documentos GOS por la fecha que se adjuntaron.
David Rueda, cordial saludo, tu me puedes dar la idea de cómo se adjuntan archivos en masa? (no uno por uno, sino muchos a la vez) tengo un desarrollo de cargue masivo de datos, eso ya lo se hacer, pero también debe quedar con la funcionalidad de cargar masivamente adjuntos y no tengo idea. Alguna sugerencia?
EliminarMil gracias.
Liliana
Hola a Todos,
ResponderEliminarTenemos SAP 7.2 Baseline, requerimos agregar las imagenes de los materiales, pero dentro de las transacciones MM01 o MM02 no viene visitble el boton (sistema de informacion) para agregar las imagenes, sabes donde se debe de activarlo?
Muchas Gracias por su atención.
Podría ser que no tuvieses autorización. Yo revisaría el contenido de la transacción SGOS.
EliminarGracias Oscar, fue muy útil tu ayuda sobre este tema se soluciono mi inconveniente y quería molestarte con otra consulta puede adjuntarse masivamente archivos mediante GOS?
EliminarSe tendría que hacer tal y como explico en el apartado Automatización.
EliminarHola!!
ResponderEliminarMe gustaria saber si es posible que los documentos atachados mediante GOS se guardasen fisicamente en el sistema de archivos de otro servidor. Esto es, no quiero configurar el content server de SAP; sino que quiero “unir” las facturas escaneadas que ya existen en un servidor ( diferentes al de SAP) con las facturas de SAP mediante GOS.
Muchisimas Gracias.
Sí, puedes hacerlo. Deberás indicar a SAP dónde debe ir a buscar los documentos en tu servidor.
EliminarHola Oscar
Eliminar¿podrias darme más luces sobre cómo se le indica a SAP dónde buscar los documentos? Tengo un requerimiento para vincular masivamente documentos a órdenes de mantenimiento históricas. Gracias.
Hola. La verdad es que dónde guarda SAP los documentos no lo sé. Pero a través de las tablas SRGBTBREL y SOOD deberías poder encontrar el identificador de tus documentos.
EliminarHola, quisiera saber si cuando se anula una factura, puediera solicitarle al sistema que genere la ventana de servicios para objeto para ser diligenciado obligatoriamente una nota personal sobre el motivo de anulacion de la factura?
ResponderEliminarHola. Me parece que esa funcionalidad no está disponible en SAP. Personalmente no trataría ese problema a través de GOS. Yo lo haría directamente a través de los propios de textos de observación que hay disponibles en las facturas.
EliminarHola Oscar,
ResponderEliminar¿Existe Log de acción/modificación en los anexos de una orden de trabajo? Lo estoy buscando pero no lo encuentro. En el Log de acción/Documentos de modificación de la orden de trabajo no quedan reflejados estos cambios.
Muchas gracias.
Saludos.
Hola. Creo que no. Nunca lo he visto.
EliminarHola,
ResponderEliminarQuisiera poder lograr que los adjuntos de pedidos, ofertas y facturas (MM), se guarden en un servidor externo (el content server no, sería uno propio de la empresa), ya que actualmente se guardan localmente el bbdd de sap.
En que parte puego configurar la url para que cuando adjunten, estos se guarden en este server externo?
Mil Gracias!
Buenos días,
ResponderEliminar¿es posible saber por ejemplo si la solicitud de pedido tiene algún documento adjunto sin entrar a mirar la lista de anexos en el botón "servicios para objeto"?
Muchas gracias