Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pièces jointes dans Oracle Applications R12

Qu'est-ce que les pièces jointes dans Oracle Applications

  • La fonctionnalité de pièces jointes permet aux utilisateurs de lier des données non structurées, telles que des images, des documents de traitement de texte, des feuilles de calcul ou du texte à leurs données d'application. Par exemple, les utilisateurs peuvent associer des images à des éléments ou des vidéos à des opérations en tant qu'instructions d'utilisation.
  • Les informations sur les pièces jointes peuvent circuler dans l'ensemble de votre application. Par exemple, si vous activez les pièces jointes pour un numéro de pièce, où les utilisateurs joindraient des images de la pièce, vous pouvez ensuite activer les pièces jointes pour tous vos autres formulaires faisant référence à votre numéro de pièce. Les utilisateurs pourraient alors voir l'image de la pièce partout où ce numéro de pièce apparaît.
  • Vous pouvez fournir une sécurité pour limiter les pièces jointes que les utilisateurs peuvent voir à partir de formulaires particuliers en attribuant des catégories de documents à vos fonctions de formulaire. Les utilisateurs attribuent ensuite des pièces jointes individuelles à des catégories particulières.
  • Vous pouvez ajouter la fonctionnalité de pièces jointes à vos formulaires et fonctions de candidature sans modifier le code du formulaire, à condition que vos formulaires soient créés à l'aide des normes Oracle E-Business Suite (à commencer par le formulaire Oracle E-Business Suite TEMPLATE).

Informations sur le tableau des pièces jointes

Toutes les tables contenant des données relatives aux pièces jointes appartiennent au schéma FND.

Il existe un certain nombre de tables qui contiennent des informations déterminant quelle zone de
l'application peut utiliser des pièces jointes :

FND_LOBS

Les pièces jointes sont stockées dans la table FND_LOBS, cette table a une colonne BLOB FILE_DATA
où la pièce jointe est stockée.

Comment il est stocké :

Oracle Applications n'utilise aucune technique de compression et un fichier de 50K occupera
50K dans la base de données. La taille du fichier dans la base de données peut être obtenue
à l'aide du package DBMS_LOB, l'exemple suivant montre les détails d'un fichier 5K qui
était joint à une demande :

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

  • Ceci contient des informations indépendantes de la langue sur le document, y compris CATEGORY_ID et DATATYPE_ID. Il ne contient pas le document réel.
  • DATATYPE_ID provient de FND_DOCUMENT_DATATYPES. Ce tableau contient une ligne pour chaque type de données pris en charge, par exemple Texte court, Fichier, etc.
  • CATEGORY_ID provient de FND_DOCUMENT_CATEGORIES. Ce tableau contient une ligne pour chaque catégorie de pièce jointe valide dans une application. par exemple, les commentaires et le CV sont tous valides pour APPLICATION_ID =800 et Divers est valide pour toutes les applications (APPLICATION_ID =0). Comme chaque entité spécifique est ensemencée avec des catégories valides, il existe une autre table, FND_DOC_CATEGORY_USAGES, qui contient une ligne pour chaque CATEGORY_ID valide pour un ATTACHMENT_FUNCTION_ID. Il détermine quelles catégories peuvent être utilisées pour les pièces jointes sur un formulaire particulier.


FND_DOCUMENTS_TL

La table de traduction FND_DOCUMENTS_TL stocke des informations sur les documents dans FND_DOCUMENTS et des liens vers cette table par la colonne DOCUMENT_ID. Les lignes dans
FND_DOCUMENTS_TL incluent une description du document.


FND_ATTACHMENT_FUNCTIONS

Ce tableau contient des informations sur les formulaires pour lesquels la fonction de pièces jointes peut être activée

Par exemple, FND_ATTACHMENT_FUNCTIONS contient une ligne pour FUNCTION_NAME =
'PERWSHRG' c'est-à-dire le formulaire combiné Personne &Affectation.
FND_ATTACHMENT_BLOCKS est lié à FND_ATTACHMENT_FUNCTIONS via la colonne
ATTACHMENT_FUNCTION_ID et contient une ligne pour BLOCK_NAME ='PERSON' .
FND_ATTACHMENT_BLK_ENTITIES contient une ligne pour le bloc 'PERSON' avec
DATA_OBJECT_CODE ='PER_PEOPLE_F' et PK1_FIELD ='PERSON.PERSON_ID' et
définit si une pièce jointe à ce bloc peut être interrogée, insérée , mis à jour
et supprimés.


FND_ATTACHMENT_BLOCK

Cela contient des informations sur les blocs dans ces formulaires pour lesquels la fonction de pièces jointes peut être activée ;

FND_ATTACHMENT_BLK_ENTITIES

Cela contient des informations sur les pièces jointes qui peuvent être utilisées dans un bloc de formulaire particulier.

FND_ATTACHED_DOCUMENTS

FND_ATTACHED_DOCUMENTS stocke les informations reliant un document à une entité et
dans cet exemple, il contiendrait ENTITY_NAME ='PER_PEOPLE_F' et PK1_VALUE =44.
PK1_VALUE est la valeur de FND_ATTACHMENT_BLK_ENTITIES.PK1_FIELD (c'est-à-dire
'PERSON. PERSON_ID') et donc cette pièce jointe est pour la personne avec
PER_PEOPLE_F.PERSON_ID =44. Le DOCUMENT_ID du document stocké est également
conservé sur cette table.


FND_ATTACHED_DOCS_FORM_VL
FND_DM_FOLDERATTACHMENTEXT

Requêtes relatives aux pièces jointes

Requête pour trouver des types de données de document

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

Requête pour trouver la pièce jointe

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;

Supposons que nous voulions une pièce jointe 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';

Comment déterminer la taille d'un fichier dans la table 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>;

Comment voir le contenu du 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;
/

J'espère que vous aimez ces informations sur les pièces jointes dans Oracle Applications R12. Merci de nous faire part de vos commentaires

Articles connexes
FND_LOBS :FND_LOBS stocke des informations sur tous les LOB gérés par le gestionnaire de fichiers génériques (GFM). Il s'agit d'une table unique utilisée à la fois pour les données temporaires EBS et les données utilisateur permanentes (c'est-à-dire les pièces jointes).
Oracle EBS Audit :comment configurer Oracle EBS Auditing, comment ajouter des tables dans le groupe d'audit, comment sélectionner une colonne pour l'audit, la demande simultanée de mise à jour de la piste d'audit
Créer un utilisateur EBS à partir du backend :cet article explique comment créer un utilisateur EBS à partir du backend , comment attribuer la responsabilité de l'application à l'utilisateur créé