Paris Blog Posts
Share your expertise in blog posts, learn from others, and find the latest news and local community initiatives in Paris and other cities in France.
cancel
Showing results for 
Search instead for 
Did you mean: 
nizard-melliti
Explorer
792

Contexte

Vous êtes vous déjà trouvé dans le besoin de générer un fichier ZIP à partir d'un code en ABAP ? Dans cet article, nous explorerons la classe CL_ABAP_ZIP. Nous plongerons dans les méthodes et les fonctionnalités offertes par cette classe, dévoilant ainsi les étapes fondamentales pour comprimer des données en toute efficacité.

Fonctionnalités

La classe CL_ABAP_ZIP est composé des méthodes suivantes :

  • LOAD
  • SAVE
  • GET
  • ADD
  • DELETE
  • CRC32
  • SPLICE

Dans cet article, seules les méthodes SAVE et ADD seront abordées.

Initialisation

Etant donné qu'il s'agit d'une classe d'instance, il faut initialiser un objet pour avoir accès à ses fonctionnalités. 

 

DATA(lo_zipper) = NEW cl_abap_zip( ).

 

Ajouter des fichiers - Méthode ADD

Pour ajouter un fichier au fichier ZIP, il faut utiliser la méthode ADD. Les informations nécessaires pour cette méthode sont lee nom du fichier et son contenu.

 

lo_zipper->add( name = CONV #( lv_file_path )
                content = lv_file_contents ).

 

Pour placer le fichier "à la racine" du fichier ZIP, il suffit de spécifier le nom du fichier.

 

lv_file_path = Filename.docx

 

Il est également possible d'ajouter des fichiers dans une arborescence. Pour cela, il faut spécifier le chemin du dossier dans le nom du fichier.

 

lv_file_path = Folder1\Subfolder2\Subfolder3\filename.docx

 

Le contenu du fichier doit être au format XSTRING. Pour ce faire, si nécessaire, convertissez le contenu de votre fichier binaire en XSTRING en utilisant le module fonction SCMS_BINARY_TO_XSTRING.

 

CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
      EXPORTING
        input_length = lv_size
      IMPORTING
        buffer       = rv_file_contents
      TABLES
        binary_tab   = lt_binary_contents.

 

Sauvegarder le fichier - Méthode SAVE

Après avoir ajouté tous les fichiers au fichier ZIP, il faut l'enregistrer. Cette méthode ne doit être appelée qu'une seule fois lors de votre exécution. Cet appel renverra le contenu du fichier ZIP au format XSTRING.

 

DATA(lv_zip_file) = lo_zipper->save( ).

 

Après cela, en fonction de votre scénario, il sera possible d'enregistrer le fichier côté client ou côté serveur, en fonction du besoin. Il faut néanmoins s'assurer d'ajouter l'extension ".zip" au fichier lors de son enregistrement, que ce soit sur le serveur ou le client.