ABAP: Howto Écrire du texte dans un fichier local
Im essayant d'écrire du texte dans un fichier local en utilisant le code suivant:
data: fname(60), text type string value 'la la la'.
fname = 'myfile.txt'.
OPEN DATASET fname FOR OUTPUT IN TEXT MODE encoding default.
transfer text to fname.
close dataset fname.
write 'done'.
Le programme fonctionne très bien et "terminé" s'affiche après l'exécution. Cependant, je ne trouve pas le fichier texte "myfile.txt" sur mon PC (ce n'est pas dans le SAP répertoire de travail).
Informations Supplémentaires
J'ai obtenu ce travail
à l'aide de la FM GUI_DOWNLOAD, cependant, je dois utiliser l'ensemble de données OUVERT, méthode de TRANSFERT de messagerie instantanée écrit dans ce programme en tâche de fond (à être appelé par un BSP à l'aide de SOUMETTRE).
OriginalL'auteur B. Bowles | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible d'écrire à un client tout en traitement de fond.
La nature du traitement en arrière-plan est qu'aucune machine cliente doit être connecté à la a ÉTÉ.
Si la création du fichier est temps de vous pourrait déclencher la création du fichier sur le A et vous proposer une liste de fichiers à télécharger quelque part dans votre application BSP.
Mise à jour:
Si vous il suffit de spécifier le nom de fichier, le fichier est placé dans le répertoire spécifié par le paramètre de profil
DIR_HOME
. Vous pouvez vérifier/modifier les paramètres du profil dans RZ11 ou afficher les répertoires dans AL11.Pour des informations générales sur le travail avec des fichiers en ABAP, vous pouvez vous référer à http://wiki.sdn.sap.com/wiki/display/ABAP/Working+avec+des fichiers
deuxième mise à jour:
Généralement le téléchargement des données est réalisé en plaçant le droit http champs d'en-tête et en poussant les données binaires dans la réponse http.
Vous devriez jeter un oeil à
cl_bsp_utility=>download
.Ceci définit le contenu des en-têtes dans votre réponse. Vous devez spécifier vos données (comme un
XSTRING
) et de préciser lesContent-Type
etContent-Disposition
vous le souhaitez.Content-Type
est le type mime du fichier. Donc, pour un fichier Excel qui pourrait êtreapplication/vnd.ms-excel
ou vous pouvez utiliser quelque chose de plus général commeapplication/octetstream
.Content-Disposition
peut être utilisé pour indiquer au navigateur le nom de fichier par défaut à utiliser. Un exemple de valeur pourrait êtreattachment; filename=filexyz.xls
.Être conscient que les navigateurs pourraient avoir un comportement légèrement différent basé sur la combinaison de
Content-Type
etContent-Disposition
(c'est à dire offrant un "Enregistrer sous..." dialogue au lieu de l'afficher inline).J'ai mis à jour ma réponse.
Merci beaucoup pour cette information. J'ai été à ce pendant des heures et ne peut pas savoir comment télécharger le fichier à partir du serveur de ma boite. J'ai trouvé le fichier texte "myfile.txt" à l'aide de AL11. De sorte que son chemin d'accès est "./myfile.txt". J'ai essayé d'utiliser FM comme "ARCHIVFILE_SERVER_TO_SERVER" mais c'est uniquement pour la copie sur un tant QUE. J'ai aussi essayé de gamme de la "cl_gui_frontend_services" méthodes sans joie. Avez-vous fait cela avant et avoir un exemple de code. J'aurais pensé que le téléchargement d'un fichier par le biais d'un BSP a été plus facile que ce se révèle être! Merci pour votre aide si loin!
Je n'ai pas de réel exemple de code, je peux partager pour le moment, mais mis à jour ma réponse avec l'idée de base.
OriginalL'auteur Turismo
L'ensemble de données OUVERT et mots clés associés fonctionnent sur les fichiers sur le serveur. Il existe diverses autres options pour obtenir le fichier sur l'ordinateur cible à partir d'un processus en arrière-plan.
Si votre serveur et les ordinateurs clients exécutent sur Windows, vous pouvez mapper un chemin d'accès Windows dans AL11 et enregistrer le fichier. (Notez que vous devrez ouvrir la cible d'une machine Windows pare-feu pour autoriser le trafic).
Vous pouvez exécuter un serveur FTP sur la machine cible et ftp les fichiers. SAP a modules de fonction pour faire avec. Regarder le groupe de fonctions SFTP.
Si les deux machines exécuter certaines versions d'UNIX, vous pouvez même SCP les fichiers sur la machine cible (comme la plupart des systèmes Unix comprendra ssh et donc scp). Vous devrez créer une commande externe dans SM49 puis configurer l'authentification par clé publique du serveur vers la machine cible, ce qui est un peu plus compliqué si vous n'avez pas les droits d'admin sur le serveur SAP, mais il ya des façons de contourner cela.
OriginalL'auteur mydoghasworms
Comme Turismo a écrit: Dans le traitement de Fond, vous ne pouvez pas écrire sur un PC.
L'écriture sur un PC a besoin d'un connecté SAPGui (=Client).
OPEN DATASET
etTRANSFER
écrit les données sur le serveur.OriginalL'auteur knut