domingo, 30 de septiembre de 2012

I ain't afraid of no GOS

G.O.S ( Generic Object Services )  nos ofrecen una serie de servicios  con los que poder anexar  archivos (pdf, doc, xml, jpg, bmp,.. ),  URL y notas personales a un objeto de negocio de Sap ( Facturas, Doc. contables, pedidos de venta, doc. del material...). Un ejemplo real seria, cuando a un pedido de venta, le adjuntamos una hoja donde esta detalladas las características del producto y lo agarramos con un clip.

Es mucho mas recomendable crear URLs que anexar un archivo, Una URL es simplemente un link a un archivo existente localmente en el pc o en un servidor, mientras que anexar un archivo implica subir ese archivo a la base de datos de SAP lo que puede generar un problema de espacio y si anexamos un gran numero de archivos puede sobrecargar la base de datos, tampoco existe la opción de actualizar un archivo anexado, tendríamos que borrar el archivo anexado actual y subir el nuevo archivo.

En muchas transacciones de Sap esta opción esta disponible en la esquina superior izquierda:

Botón Anexos, en la esquina superior izquierda
Imaginemos que tienes una factura en PDF y quieres adjuntarla a su documento contable.


Accedemos al doc. contable en la FB03 y desplegamos el menú, seleccionamos "crear anexo".

A continuación, aparecerá el explorador de archivos del sistema, seleccionamos el archivo a exportar


Para poder visualizar, desplegamos el menú otra vez y seleccionamos "lista de anexos"


Doble click sobre el documento ara abrirlo.

Bien, ahora os estaréis preguntado " ¿Donde ha guardado SAP el documento anexado?".
Los archivos anexados, URL y notas se tratan como documentos del Sapoffice y su contenido, hasta la versión 4.6B, se guardaba en la tabla SOC3. Pero a partir de la versión 4.6B el almacenamiento de estos documentos pasa a ser responsabilidad del Knowledge Provider (Kpro) que permite un almacenamiento externo evitando la sobrecarga de la base de datos de SAP.

A partir de la versión 4.6B lsa notas personales y URL siguen almacenándose en la tabla SOC3, pero los archivos anexados pasan a almacenarse en la tabla SOFFCONT1, para gestionar estos anexos, SAP crea un vinculo entre el objeto de negocio y el archivo indexado, estos vínculos se almacenan en la tabla SRGBTBREL, enlaces en el entorno GOS.

En el ejemplo anterior, hemos anexado el pfd al doc. contable 131 de la sociedad 1000 del ejercicio 2011, si buscamos en la tabla  SRGBTBREL  encontramos:






Vamos a seguir tirando del hilo, nos quedamos con la cadena 'EXT37000000000105' del campo INSTID_B. Nos vamos a la SE37 y ejecutamos la bapi SO_OBJECT_GET_CONTENT , rellenamos el parámetro de entrada OBJECT_ID con los anteriores datos.


En la tabla se salida OBJCONT, encontramos el identificador lógico del objeto, necesitamos el identificador físico, la relación entre ambos esta almacenada en la tabla SOFFPHIO, instancias de objetos de información físicos.


Con este identificador físico , vamos a la SOFFCONT1 donde se almacena el archivo como cluster en formato hexadecimal. como veis un solo archivo anexado puede ocupar MUCHO espacio.


Para saber como esta parametrizado tu sistema SAP, nos vamos a la tabla SDOKPHCL, clases de objetos de información físicos. Buscamos la clase SOFFPHIO.




Si STOR_CAT = SOFFDB, significa que los anexos se suben a la base de datos de SAP en la tabla  SOFFCONT1.
transacción OACT: Categorías de archivo


Notas OSS de interes:
530792 - Storing documents in the generic object services
904711 - SAPoficce: Where are documents physically stored?

jueves, 6 de septiembre de 2012

Sybase Unwired Platform

Este mes, Blag ( Alvaro Tejada Galindo ) y Tobias Hofmann, han escrito sendos artículos contando su experiencia desarrollando aplicaciones móviles con Sybase Unwired Platform (SUP) y los Amazon Web Services (AWS).




El articulo de Blag me ha gustado mucho, es un sencillo ejemplo de una aplicación móvil. Tomando como base un típico ejemplo de Sap con sus famosas tablas de vuelos,monta una aplicación para consultar los vuelos de las compañías desde un dispositivo móvil. 

En cuanto mi "agenda" me lo permita, tengo que probar Sybase.

Gracias Blag!!