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


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











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








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.
{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:}}
Hors ligne


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











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...
Hors ligne


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











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é?
Hors ligne


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











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):
$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.
Hors ligne














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
Hors ligne


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


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