Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Est-il possible de modifier les données directement dans les tables sources (Base de données ou fichiers plats) à travers QlikView?
Comme exemple je prends le cas d'un état de mise à jour (Batch) que je viens d'effectuer sous l'ERP Oracle JD Edwards.
Je vous explique le principe:
Lors de la comptabilisation des ventes de certains articles,certaines tables de sont pas mises à jour.
La table F0911 est la table du grand-livre général et la table F03B11 est la table du grand livre client.
Voici un bref aperçu des champs de la table:
F0911(GLKCO, GLDCT, GLDOC, GLDGJ, GLCO, GLLT, GLPN, GLFY, GLEXR, ...)
F03B11(RPDOC, RPDCT, RPKCO, RPDGJ, RPFY, RPPN, RPCO, RPRMK, ...)
F0911
GLKCO | GLDCT | GLDOC | GLDGJ | GLCO | GLLT | GLPN | GLFY | GLEXR | .......... |
---|---|---|---|---|---|---|---|---|---|
00001 | RI | 15 | 30/06/2005 | 00001 | AA | 6 | 5 | Ballons | |
00001 | RI | 20 | 30/06/2005 | 00001 | AA | 6 | 5 | Intra State | |
00001 | RI | 23 | 30/006/2005 | 00001 | AA | 6 | 5 | Store sales | |
00001 | RI | 30 | 31/07/2005 | 00070 | AA | 6 | 5 | Bank of Madrid |
F03B11
RPDOC | RPDCT | RPKCO | RPDGJ | RPCO | RPPN | RPFY | RPRMK | .......... |
---|---|---|---|---|---|---|---|---|
15 | RI | 00001 | 30/06/2005 | 00001 | 6 | 5 | xxxxxxxx | |
20 | RI | 00001 | 30/06/2005 | 00001 | 6 | 5 | Intra State | |
23 | RI | 00001 | 30/06/2005 | 00001 | 6 | 5 | ||
30 | RI | 00150 | 31/07/2005 | 00070 | 6 | 5 |
Il se trouve que lors de la comptabilisation des opérations, le champ RPRMK de F03B11 est vide ou contient des valeurs incorrectes sur certaines lignes.
Alors j'ai dû développer un batch de mise à jour pour régler ce problème.
Il était question de sélectionner dans un premier temps toutes les lignes de la table F0911 en se basant sur des critères puis d'effectuer la mise à jour de la table en question.
Je vous traduis ci-dessous l'events rules(langage de programmation sur JD Edwards) en SQL(Oracle) pour que vous comprenez mieux:
UPDATE F03B11 SET RPRMK= (SELECT GLEXR FROM F0911,F03B11
WHERE (RPDOC=GLDOC) AND
(RPDCT=GLDCT) AND
(RPKCO=GLKCO) AND
(RPDGJ=GLDGJ) AND
(RPFY=GLFY) AND
(RPPN=GLPN) AND
(GLLT= "AA" ) AND
(RPRMK <> GLEXR)
)
WHERE (RPCO=&Company) AND
(RPFY=&Fiscal_Year) AND
(RPPN=&Exercice) AND
(RPRMK=" ")
Alors, lorsque j'exécute ce batch, la mise à jour du champ RPRMK de la table F03B11 est réalisée.
Étant donnée que je travaille personnellement sur QlikView et essaie toujours de résoudre des problèmes que je croise, je pensais comme ça s'il était possible de réaliser une mise à jour des tables directement depuis Qlikview.
Dans le cas ou j'avais un objet table dans mon application Qlikview qui m'affichait des champs de la table F03B11 y compris le champ RPRMK ,j'aurais pu voir directement les lignes dont le champ en question est vide ou incorrectes.
Alors dans ce cas serait t-il possible d'effectuer une mise à jour de cette table directement dans l'application sans passer forcément par le SGBD-R (Système de Gestion de Base de Données Relationnelles) ou les fichiers plats (Excel,texte,...)?
Si oui, je souhaiterais que vous me donner un aperçu de ce qui pourrait être fait dans ce cas.
NB : Vous verrez en pièces jointes le listing (events rules) puis un état pdf de Oracle JD Edwards
Merci d'avance.
Bonjour. Je ne pense que Qlikview soit elabore pour cette destination : modifier le systeme source. Ca serait super dangereux pour le maintient des donnes. Mais si tu trouves un moyen je serai curieux d avoir cette procedure. Au mieux je pense que tu peux nettoyer tes donnes dans Qv, les exporter, et integrer l export par batch. Eventuellement automatiser lintegration du batch.Bon courage