sql >> Base de Datos >  >> RDS >> Oracle

Adjuntos en Oracle Applications R12

¿Qué son los archivos adjuntos en Oracle Applications

?
  • La función de archivos adjuntos permite a los usuarios vincular datos no estructurados, como imágenes, documentos de procesamiento de texto, hojas de cálculo o texto a los datos de su aplicación. Por ejemplo, los usuarios pueden vincular imágenes a artículos o videos a operaciones como instrucciones de operación.
  • La información de los archivos adjuntos puede fluir a través de toda su aplicación. Por ejemplo, si habilita archivos adjuntos para un número de pieza, donde los usuarios adjuntarían imágenes de la pieza, puede habilitar archivos adjuntos para todos sus otros formularios que hagan referencia a su número de pieza. Luego, los usuarios podrían ver la imagen de la pieza dondequiera que aparezca ese número de pieza.
  • Puede proporcionar seguridad para limitar qué archivos adjuntos pueden ver los usuarios de formularios particulares asignando categorías de documentos a las funciones de su formulario. Luego, los usuarios asignan archivos adjuntos individuales a categorías particulares.
  • Puede agregar la función de archivos adjuntos a los formularios y funciones de su aplicación sin modificar el código del formulario, siempre que sus formularios se construyan utilizando los estándares de Oracle E-Business Suite (comenzando con el formulario PLANTILLA de Oracle E-Business Suite).

Información de tabla para archivos adjuntos

Todas las tablas que contienen datos relacionados con archivos adjuntos son propiedad del esquema FND.

Hay una serie de tablas que contienen información que determina qué área de
la aplicación puede usar archivos adjuntos:

FND_LOBS

Los archivos adjuntos se almacenan en la tabla FND_LOBS, esta tabla tiene una columna BLOB FILE_DATA
donde se almacena el archivo adjunto.

Cómo se almacena:

Oracle Applications no utiliza ninguna técnica de compresión y un archivo de 50K
ocupará 50K en la base de datos. El tamaño del archivo en la base de datos se puede obtener
usando el paquete DBMS_LOB, el siguiente ejemplo muestra los detalles de un archivo de 5K que
se adjuntó a una solicitud:

select FILE_NAME, FILE_CONTENT_TYPE,
DBMS_LOB.GETLENGTH(file_data) SIZE_BYTES
from FND_LOBS
where FILE_NAME like '%test.doc%'
FILE_NAME FILE_CONTENT_TYPE SIZE_BYTES
----------------------- ------------------ ----------
test.doc application/msword 5120


FND_DOCUMENTOS

  • Esto contiene información independiente del idioma sobre el documento, incluidos CATEGORY_ID y DATATYPE_ID. No contiene el documento real.
  • DATATYPE_ID se toma de FND_DOCUMENT_DATATYPES. Esta tabla contiene una fila para cada tipo de datos admitido, por ejemplo, texto breve, archivo, etc.
  • CATEGORY_ID se toma de FND_DOCUMENT_CATEGORIES. Esta tabla contiene una fila para cada categoría de archivo adjunto válida en una aplicación. por ejemplo, los comentarios y el currículum son válidos para APPLICATION_ID =800 y Miscellaneous es válido para todas las aplicaciones (APPLICATION_ID =0). Como cada entidad específica se genera con categorías válidas, hay otra tabla, FND_DOC_CATEGORY_USAGES, que contiene una fila para cada CATEGORY_ID válido para un ATTACHMENT_FUNCTION_ID. Determina qué categorías se pueden usar para archivos adjuntos en un formulario en particular.


FND_DOCUMENTOS_TL

La tabla de traducción FND_DOCUMENTS_TL almacena información sobre los documentos en FND_DOCUMENTS y ​​enlaza con esta tabla mediante la columna DOCUMENT_ID. Las filas en
FND_DOCUMENTS_TL incluyen una descripción del documento.


FND_ATTACHMENT_FUNCTIONS

Esta tabla contiene información sobre los formularios para los que se puede habilitar la función de archivos adjuntos

Por ejemplo, FND_ATTACHMENT_FUNCTIONS contiene una fila para FUNCTION_NAME =
'PERWSHRG', es decir, el formulario combinado de Persona y Asignación.
FND_ATTACHMENT_BLOCKS enlaza con FND_ATTACHMENT_FUNCTIONS a través de la columna
ATTACHMENT_FUNCTION_ID y contiene una fila para BLOCK_NAME ='PERSON' .
FND_ATTACHMENT_BLK_ENTITIES contiene una fila para el bloque 'PERSON' con
DATA_OBJECT_CODE ='PER_PEOPLE_F' y PK1_FIELD ='PERSON.PERSON_ID' y
define si se puede consultar o insertar un archivo adjunto a este bloque , actualizado
y eliminado.


FND_ATTACHMENT_BLOCK

Esto contiene información sobre los bloques dentro de esos formularios para los cuales se puede habilitar la función de archivos adjuntos;

FND_ATTACHMENT_BLK_ENTITIES

Contiene información sobre los archivos adjuntos que se pueden usar en un bloque de formulario en particular.

FND_ATTACHED_DOCUMENTS

FND_ATTACHED_DOCUMENTS almacena información que relaciona un documento con una entidad y
en este ejemplo mantendría ENTITY_NAME ='PER_PEOPLE_F' y PK1_VALUE =44.
PK1_VALUE es el valor de FND_ATTACHMENT_BLK_ENTITIES.PK1_FIELD (es decir,
'PERSON. PERSON_ID'), por lo que este archivo adjunto es para la persona con
PER_PEOPLE_F.PERSON_ID =44. El DOCUMENT_ID del documento almacenado también
se mantiene en esta tabla.


FND_ATTACHED_DOCS_FORM_VL
FND_DM_FOLDERATTACHMENTEXT

Consultas relacionadas con archivos adjuntos

Consulta para encontrar tipos de datos de documentos

SQL> select USER_NAME from fnd_document_datatypes ;
USER_NAME
---------
Short Text
Long Text
Image
OLE Object
Web Page
File
Document Reference
Oracle File
Oracle Files Folder/Workspace

Consulta para encontrar archivos adjuntos

select fad.entity_name
,fad.document_id
,fad.pk1_value
,fad.pk2_value
,fd.datatype_id
,(fad.entity_name || '' || fad.document_id ||'' || fl.file_name) file_name
,fl.file_data
from fnd_attached_documents fad
,fnd_documents fd
,fnd_lobs fl
where fad.document_id = fd.document_id
and fd.media_id = fl.file_id
and fad.entity_name = '&1'
and fad.pk1_value, fad.pk2_value;

Supongamos que queremos un archivo adjunto de Línea de gastos

select report_line_id
from apps.ap_expense_report_lines_all l
where report_header_id=:P_expense_report_number; -- expense report number

SELECT fl.*
FROM apps.fnd_documents_tl fdtl,
apps.fnd_documents fd,
apps.fnd_attached_documents fad,
apps.fnd_lobs fl
WHERE fdtl.document_id = fd.document_id
AND fd.document_id = fad.document_id
AND fad.entity_name = 'OIE_LINE_ATTACHMENTS'
AND fad.pk1_value = ':p_report_line_id' -- line_id from first query
AND fl.file_id = fd.media_id
and fdtl.language='US';

¿Cómo determinar el tamaño de un archivo en la tabla FND_LOBS?

select file_name, file_id, 
       to_char(upload_date,'dd-mon-rr hh24:mi:ss'),
       to_char(expiration_date ,'dd-mon-rr hh24:mi:ss'),
       file_content_type, 
       dbms_lob.getlength(file_data) size_byte
from   applsys.fnd_lobs
where  file_id= <your file id>;

¿Cómo ver el contenido de la LOB?

-- Read from fnd_lobs a given file_id
set serveroutput on size 1000000;
declare
  my_lob BLOB;
  Buffer      RAW(255);
  Amount      BINARY_INTEGER := 255;
  Position    INTEGER := 1;
begin
   select file_data into my_lob
   from fnd_lobs
   where file_id = &enter_file_id;
 
   dbms_lob.open(my_lob, dbms_lob.lob_readonly);
   DBMS_OUTPUT.PUT_LINE('Start of data');

   loop
      DBMS_LOB.READ(my_lob, Amount, Position, Buffer);
      /* Process the buffer: */
      DBMS_OUTPUT.PUT_LINE(utl_raw.cast_to_varchar2(Buffer));
      Position := Position + Amount;
   end loop;

   dbms_lob.close(my_lob);
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
      DBMS_OUTPUT.PUT_LINE('End of data');
end;
/

Espero que les guste esta información sobre Adjuntos en Oracle Applications R12. Proporcione sus comentarios

Artículos relacionados
FND_LOBS:FND_LOBS almacena información sobre todos los LOB administrados por Generic File Manager (GFM). Es una tabla única que se utiliza tanto para datos temporales de EBS como para datos de usuario permanentes (es decir, archivos adjuntos).
Oracle EBS Auditoría:cómo configurar la auditoría de Oracle EBS, cómo agregar tablas en el grupo de auditoría, cómo seleccionar la columna para la auditoría, solicitud simultánea de actualización de registro de auditoría
Crear un usuario de EBS desde el backend:esta publicación trata sobre cómo crear un usuario de EBS desde el backend , cómo asignar la responsabilidad de la aplicación al usuario creado