Oracle
 sql >> Database >  >> RDS >> Oracle

Allegati in Oracle Applications R12

Che cosa sono gli allegati nelle applicazioni Oracle

  • La funzione allegati consente agli utenti di collegare dati non strutturati, come immagini, documenti di elaborazione testi, fogli di calcolo o testo ai dati dell'applicazione. Ad esempio, gli utenti possono collegare immagini a elementi o video a operazioni come istruzioni operative.
  • Le informazioni sugli allegati possono scorrere nell'intera applicazione. Ad esempio, se abiliti gli allegati per un numero di parte, in cui gli utenti allegherebbero le immagini della parte, puoi abilitare gli allegati per tutti gli altri moduli che fanno riferimento al tuo numero di parte. Gli utenti sarebbero quindi in grado di vedere l'immagine della parte ovunque si trovi quel numero di parte.
  • Puoi fornire sicurezza per limitare gli allegati che gli utenti possono vedere da moduli particolari assegnando categorie di documenti alle funzioni del modulo. Gli utenti assegnano quindi singoli allegati a categorie particolari.
  • Puoi aggiungere la funzione allegati ai moduli e alle funzioni della tua domanda senza modificare il codice del modulo, a condizione che i moduli siano creati utilizzando gli standard Oracle E-Business Suite (a partire dal modulo MODELLO Oracle E-Business Suite).

Informazioni sulla tabella per gli allegati

Tutte le tabelle che contengono dati relativi agli allegati sono di proprietà dello schema FND.

Esistono numerose tabelle che contengono informazioni che determinano quale area dell'
applicazione può utilizzare gli allegati:

FND_LOBS

Gli allegati sono archiviati nella tabella FND_LOBS, questa tabella ha una colonna BLOB FILE_DATA
dove è archiviato l'allegato.

Come viene memorizzato:

Oracle Applications non utilizza alcuna tecnica di compressione e un file di 50.000
occupa 50.000 nel database. La dimensione del file nel database può essere ottenuta
utilizzando il pacchetto DBMS_LOB, l'esempio seguente mostra i dettagli di un file 5K che
è stato allegato a una richiesta:

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_DOCUMENTS

  • Questo contiene informazioni indipendenti dalla lingua sul documento, inclusi CATEGORY_ID e DATATYPE_ID. Non contiene il documento vero e proprio.
  • DATATYPE_ID è preso da FND_DOCUMENT_DATATYPES. Questa tabella contiene una riga per ogni tipo di dati supportato, ad esempio Testo breve, File, ecc.
  • CATEGORY_ID è preso da FND_DOCUMENT_CATEGORIES. Questa tabella contiene una riga per ogni categoria di allegato valida in un'applicazione. ad es. Commenti e Riprendi sono tutti validi per APPLICATION_ID =800 e Varie è valido per tutte le applicazioni (APPLICATION_ID =0). Poiché a ogni entità specifica vengono inserite categorie valide, esiste un'altra tabella, FND_DOC_CATEGORY_USAGES, che contiene una riga per ogni CATEGORY_ID valido per un ATTACHMENT_FUNCTION_ID. Determina quali categorie possono essere utilizzate per gli allegati in un particolare modulo.


FND_DOCUMENTS_TL

La tabella di traduzione FND_DOCUMENTS_TL memorizza le informazioni sui documenti in FND_DOCUMENTS e si collega a questa tabella tramite la colonna DOCUMENT_ID. Le righe in
FND_DOCUMENTS_TL includono una descrizione del documento.


FUNZIONI_FND_ATTACHMENT

Questa tabella contiene informazioni sui moduli per i quali è possibile abilitare la funzione allegati

Ad esempio FND_ATTACHMENT_FUNCTIONS contiene una riga per FUNCTION_NAME =
'PERWSHRG', ovvero il modulo combinato Persona e assegnazione.
FND_ATTACHMENT_BLOCKS si collega a FND_ATTACHMENT_FUNCTIONS tramite la colonna
ATTACHMENT_FUNCTION_ID e contiene una riga per BLOCK_NAME ='PERSON' .
FND_ATTACHMENT_BLK_ENTITIES conserva una riga per il blocco 'PERSON' con
DATA_OBJECT_CODE ='PER_PEOPLE_F' e PK1_FIELD ='PERSON.PERSON_ID' e
definisce se un allegato a questo blocco può essere interrogato, inserito , aggiornato
ed eliminato.


FND_ATTACHMENT_BLOCK

Contiene informazioni sui blocchi all'interno dei moduli per i quali è possibile abilitare la funzione allegati;

FND_ATTACHMENT_BLK_ENTITIES

Contiene informazioni sugli allegati che possono essere utilizzati in un particolare blocco modulo.

FND_ATTACHED_DOCUMENTS

FND_ATTACHED_DOCUMENTS memorizza le informazioni relative a un documento a un'entità e
in questo esempio conterrebbe ENTITY_NAME ='PER_PEOPLE_F' e PK1_VALUE =44.
PK1_VALUE è il valore per FND_ATTACHMENT_BLK_ENTITIES.PK1_FIELD (cioè
'PERSON. PERSON_ID') e quindi questo allegato è per la persona con
PER_PEOPLE_F.PERSON_ID =44. Anche il DOCUMENT_ID del documento archiviato
è tenuto su questa tabella.


FND_ATTACHED_DOCS_FORM_VL
FND_DM_FOLDERATTACHMENTEXT

Query relative agli allegati

Interroga per trovare i tipi di dati del documento

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

Interroga per trovare il file allegato

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;

Supponiamo di volere un allegato IExpense Line

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';

Come determinare la dimensione di un file nella tabella 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>;

Come vedere i contenuti della 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;
/

Spero che queste informazioni sugli allegati in Oracle Applications R12 ti siano piaciute. Si prega di fornire il feedback

Articoli correlati
FND_LOBS :FND_LOBS memorizza le informazioni su tutti i LOB gestiti dal Generic File Manager (GFM).it è una tabella univoca utilizzata sia per i dati temporanei EBS che per i dati utente permanenti (es. Allegati).
Oracle EBS Auditing:come configurare Oracle EBS Auditing, come aggiungere tabelle nel gruppo di audit, come selezionare la colonna per il auditing, richiesta simultanea di aggiornamento dell'audit trail
Creare un utente EBS dal back-end:questo post spiega come creare un utente EBS dal back-end , come assegnare la responsabilità dell'applicazione all'utente creato