Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 13-02-2008 11:44:10

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Parseur de messages Swift

bonjour a ts,
j' aimerai savoir comment implémenter un parseur qui permet d'analyser des messages swift (iso 15022) cà d en format .txt, à partir d'un dossier
merci d'avance

Hors ligne

 

#2 13-02-2008 11:59:36

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: Parseur de messages Swift

Bonjour Monalisa,

As-tu regardé du coté des fonctions d'importations de fichiers dans une datawindow (Importfile)?
Je pense que ça pourrait t'aider.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 13-02-2008 12:23:07

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: Parseur de messages Swift

FileOpen, FileRead, FileClose
et aussi : Mid


Foon, d'après ce que j'ai compris, un message swift est composé de blocs de taille variable ce qui est incompatible avec l'import de dw
Trouvé sur google (pardon eRasorz):
Below is a sample of two SWIFT message of type MT517.

Code:

{1:F01BOFAUSNYJXXX4321000123}{2:I517BANKDEFFAXXXN2020}{3:{103:CAD}}{4:
:16R:GENL
:20C::SEME//Reference
:23G:CANC/CODU
:95P::AFFM//BICCBIB1BI1
:16R:LINK
:20C::PREV//Reference
:16S:LINK
:16S:GENL
-}{5:{MAC:23456789}{PAC:23456789}{CHK:123456789012}{SYS:1231313}{TNG:}{PDE:12345}{DLM:}} {1:F01BOFAUSNYJXXX4321000123}{2:I517BANKDEFFAXXXN2020}{3:{103:CAD}}{4:
:16R:GENL
:20C::SEME//ReferenceMaxLn16
:23G:CANC/CODU
:95P::AFFM//BICCBIB1BI1
:16R:LINK
:20C::PREV//Reference
:16S:LINK
:16S:GENL
-}{5:{MAC:23456789}{PAC:23456789}{CHK:123456789012}{SYS:1231313}{TNG:}{PDE:12345}{DLM:}}

never let people work on more than one thing at once.

Hors ligne

 

#4 13-02-2008 15:28:57

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Re: Parseur de messages Swift

oui moi aussi je ne pense pas que ca soit au niveau de import file...
mais je vais essayer la solution se shahin pr voir ce que ca donne...
mais le pblme c'est que je n 'arrive pas a comprendre comment va etre le mécanisme du parseur ds mon application...
es que je doit le lancer a partir du menu et lui indiquer le path du folder ou il y a le txt à parcer ou autre... si vous avez un doc la dessus ca serai impec ))
merci d'avance

Hors ligne

 

#5 13-02-2008 16:11:01

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: Parseur de messages Swift

shahin a écrit:

Foon, d'après ce que j'ai compris, un message swift est composé de blocs de taille variable ce qui est incompatible avec l'import de dw.

Les lignes des messages SWIFT ne sont pas délimitées par des carriage-return?
Parceque, si les CR sont gérés, l'importfile dans une DW external avec un seul champ "dummy" de type string de grande taille est possible (technique testée sur des fichiers textes classiques).
Mais l'utilisation des fonctions de lecture de fichier PB est sans doute plus souple et permet de limiter les accès concurrents

Sinon, il y existe aussi la possibilité d'utiliser les fonctionnalistés de lecture /écriture de fichiers du SGBD
(Cf. le package UTL_FILE d'Oracle)

Sinon, Monalisa, pour ce qui est de récupérer le path du fichier SWIFT, il faut que tu vois avec tes utilisateurs ce qu'ils souhaitent:

- Récupération automatique du fichier car définition du path une bonne fois pour toute (Les fichiers seront toujours déposés au même endroit). Dans ce cas, tu peux stocker ce path dans la base de registre Windows (RegistryGet, RegistrySet, etc...)
- Recherche manuelle par l'utilisateur via une fenêtre (Un indice: utilise les fonctions DirList et DirSelect liés à une listbox)
- Etc...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#6 14-02-2008 10:34:06

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Re: Parseur de messages Swift

je peux vous dire foon que je n 'ai pas tres tres bien compris le mécanisme mais je vais commencer par créer un objet parser ds pb contenent un template du swift (MT535) et voir comment je vais faire la comapaison entre un modèle et un swift recu

Hors ligne

 

#7 14-02-2008 12:05:22

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: Parseur de messages Swift

C'est peut-être moi qui ai mal compris le besoin:
Ce parser, c'est pour récupérer le contenu d'un message SWIFT (Afin d'en exploiter le contenu
dans l'application PB), ou seulement pour vérifier que ce message est correctement formatté?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#8 14-02-2008 15:25:52

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Re: Parseur de messages Swift

la premiere biensur ) récupérer le contenu d'un message SWIFT (Afin d'en exploiter le contenu
dans l'application PB). on m'a proposeé aussi d'étudier la possibilité d'intégrer un parseur écris ds un autre lange (un module écris en java par exple)  et de lui faire appel a partir de pb. es ce que c'est réalisable? et laquelle des solution est meilleure???
merci

Hors ligne

 

#9 14-02-2008 16:12:51

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2493
Pépites: 106
Banque: 9,223,372,036,854,775,808

Re: Parseur de messages Swift

monalisa a écrit:

on m'a proposeé aussi d'étudier la possibilité d'intégrer un parseur écris ds un autre lange (un module écris en java par exple)  et de lui faire appel a partir de pb. es ce que c'est réalisable? et laquelle des solution est meilleure???

C'est possible, mais je te le déconseille (surtout si le parser est en Java, parceque tu vas t'amuser à t'interfacer avec)
En C++, c'est un peu plus simple car tu peux accéder à une DLL aisément depuis PB.
Maintenant, je pense que la solution du parser en PB natif est la meilleur, soit en utilisant les fonctions de lecture/écriture de fichier, soit en essayant un Importfile dans une datawindow de type external (mais je n'ai jamais testé sur les fichiers SWIFT).

Pour t'aider, voici un exemple de datawindow external (PB6.5):

Code: pb

$PBExportHeader$d_importfile.srd
$PBExportComments$dw d'importation de fichiers texte
release 6;
datawindow(units=0 timer_interval=0 color=1073741824 processing=0 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no )
header(height=68 color="536870912" )
summary(height=0 color="536870912" )
footer(height=0 color="536870912" )
detail(height=80 color="536870912" )
table(column=(type=char(2000) updatewhereclause=yes name=s_dummy dbname="s_dummy" )
 )
column(band=detail id=1 alignment="0" tabsequence=10 border="0" color="0" x="5" y="4" height="72" width="3511" format="[general]"  name=s_dummy edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes  font.face="Arial" font.height="-9" font.weight="400"  font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes")  

Importes la dans ta PBL de test, intègres la dans une fenêtre de test et regardes si tu peux importer un exemple de fichier SWIFT par la fonction ImportFile.

Normalement, tu devrais avoir une ligne dans ta DW par ligne de texte dans ton SWIFT.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#10 14-02-2008 16:15:28

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5122
Pépites: 97,200
Banque: 2,147,483,647

Re: Parseur de messages Swift

oui, par exemple en considérant ce code java : http://swift-parser.sourceforge.net/xre … index.html

soit tu interfaces PB avec la classe Java (voir l'aide PB à ce sujet)

soit tu traduis le code Java en code PB


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#11 14-02-2008 17:16:10

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Re: Parseur de messages Swift

ErAsORz a écrit:

oui, par exemple en considérant ce code java : http://swift-parser.sourceforge.net/xre … index.html

soit tu interfaces PB avec la classe Java (voir l'aide PB à ce sujet)

soit tu traduis le code Java en code PB

je vais essayer d'interfacer pb avec cette classe... pr ce faire je dois créer une nouvelle window et puis essayer de faire l'appel.
merci

Hors ligne

 

#12 15-02-2008 17:47:47

monalisa  
Membre
Date d'inscription: 08-10-2007
Messages: 13
Pépites: 61
Banque: 0

Re: Parseur de messages Swift

http://pbdj.sys-con.com/read/42460.htm

g trouvé cet article es que qqu'1 peut m'aider à l'exploiter ds ce que je veux faire
merci

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22