2017-10-10 32 views
0

J'essaie d'exporter les données d'une table sur AS400 vers une autre machine via des commandes iSeries mais je suis empilé au milieu du processus. J'ai une procédure stockée dans laquelle je crée le fichier CSV, mais après l'achèvement j'ai besoin de transférer ce fichier sur une autre machine (qui est bien sûr connecté à l'AS400).Transférer un fichier de l'AS400 vers une autre machine du même réseau

Dans la procédure stockée, j'ai utilisé la commande CPYTOIMPF pour exporter des données de table vers CSV et j'ai écrit le fichier sur le système de fichiers AS400. Je ne sais pas s'il existe une option pour écrire le fichier directement sur une autre machine.

CALL QSYS2.QCMDEXC(
'CPYTOIMPF FROMFILE(LIBRARY/TABLE) TOSTMF('/QIBM/UserData/TestFolder/2.CSV') STMFCODPAG(*PCASCII) RCDDLM(*CRLF)' 
); 

Cette étape est terminée et le fichier est écrit dans ce répertoire.

Maintenant, je dois transférer ce fichier à un serveur Web qui est connecté à AS400 sans que la commande ci-dessus soit terminée.

Comment puis-je faire cela?

+0

Quel est le système d'exploitation de l'autre machine? – mao

+0

Windows Server 2008 R2 – user715079

+0

Alors vous vous demandez comment effectuer un transfert de fichier programmé entre AS400 (i-series) et Windows-server? Prévoyez-vous pour la boîte de série i pour PUSH le fichier à Windows, ou Windows pour extraire le fichier de la série i? Envisager SFTP (si le serveur Windows exécute un service pour cela) si vous voulez que la série i fasse le push. – mao

Répondre

0

Vous pouvez utiliser FTP sur IBM i. Voici un exemple modifié de la IBM Knowledge Center

Ceci est un programme CL

PGM 
    OVRDBF FILE(INPUT) TOFILE(MYLIB/QCLSRC) MBR(FTPCMDS) 
    OVRDBF FILE(OUTPUT) TOFILE(MYLIB/QCLSRC) MBR(OUT) 
    FTP  RMTSYS(SYSxxx) 
ENDPGM 

Ce programme remplace l'entrée du client FTP à un script dans MYLIB/QCLSRC membre FTPCMDS, et la sortie du client FTP MYLIB/QCLSRC membre OUT. La première ligne du script doit contenir l'ID utilisateur et le mot de passe pour l'emplacement distant.

Voici un exemple de script de la même référence Knowledge Center:

ITSO ITSO <== This is the user id and password 
CD ITSOLIB1 
SYSCMD CHGCURLIB ITSOLIB2 
GET QCLSRC.BATCHFTP QCLSRC.BATCHFTP (REPLACE 
QUIT 

Cela ne devrait pas être utilisé en dehors de votre réseau comme l'ID utilisateur un mot de passe sont envoyés en texte clair. Cela peut également représenter un risque pour la sécurité, car les identifiants et les mots de passe des utilisateurs de production doivent être stockés en texte brut dans le fichier source.


En outre, Scott Klement a présenté un exposé sur la façon d'utiliser ssh, scp et sftp sur IBM i. C'est une chose assez longue, donc vous pourriez vouloir lire à ce sujet here.

Un résumé court est que scp pourrait être le chemin le plus facile à parcourir. mais vous devrez:

  1. Assurez-vous que l'option OpenSSH du système d'exploitation est installée.
  2. Assurez-vous que votre serveur Windows est configuré en tant que serveur ssh.
  3. Configurer une clé numérique à utiliser pour le transfert. La clé privée va du côté client, et la clé publique va du côté serveur. Utilisez scp fromfile [email protected]:tofile en Pase pour transférer le