IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[6i] détecter le changement d'une checkbox non base table


Sujet :

Forms Oracle

  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [6i] détecter le changement d'une checkbox non base table
    Salut tout le monde,

    Je travaille sur forms6i avec Oracle Application 11.5.7
    Dans un écran, j'ai une case à cocher qui est non base table et qui peut prendre 2 valeurs :
    - 'Y' = cochée
    - 'N' = non cochée
    Pour toutes les autres valeurs, cette checkbox doit être non cochée.

    A ma grande surprise, le trigger WHEN-CHECKBOX-CHANGED n'est jamais déclenché lorsque je clique sur cette case (que la case soit initialement cochée ou pas).

    J'ai néanmoins découvert que le trigger WHEN-VALIDATE-ITEM semblait s'activer lors de chaque clic.

    Pourriez-vous :
    1/ m'expliquer pourquoi :SYSTEM.RECORD_STATUS = 'QUERY' et non 'CHANGED' après que j'ai cliqué sur cette case à cocher ?
    2/ me confirmer que mon alternative est la bonne (i.e. elle n'a pas d'effet de bord dont je ne me serai pas rendu compte jusqu'à maintenant) ?

    Merci d'avance.

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Salut Magnus,

    J'ai fait un test est ça fonctionne bien pour le déclenchement du trigger
    WHEN-CHECKBOX-CHANGED

    Tu peux poster le contenu de ton trigger when-validate-tem?


    Il y a pas une instruction raise_application_error ou tu traites une exception dans ton when-validate-tem?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m'expliquer pourquoi :SYSTEM.RECORD_STATUS = 'QUERY' et non 'CHANGED' 
    après que j'ai cliqué sur cette case à cocher
    J'ai fait un test, le record ne change pas de statut, peut être à cause que
    l'item c'est un unbound ( non basé), il n'a pas besoin de sauvegarder les chamgement ????

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Salut Magnus,

    Surprenant ton problème. As-tu essayé de supprimer ta case à cocher et de la recrééer ? Quelle est la valeur de la propriété "Execution hierarchie" de ton trigger WCC ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Bonjour à vous 2,

    D'après ma maigre expérience de forms (cela fait 2 ans que je développe avec forms 6i et 10g), cela pourrait venir de Oracle Applications mais je crois être un des rares utilisateurs de ce forum à utiliser cet ERP (?).

    Salim>> j'ai créé cette case à cocher et le code que j'ai mis dans le trigger WVI est exactement le même que celui que j'avais mis dans le trigger WCC :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    -- ONDE G2R11
    UPDATE ar_customer_profiles
       SET credit_checking = :sfp_caid_infos_adm_erd_v1.credit_checking
     WHERE customer_profile_id =
              (SELECT ac.customer_profile_id
                 FROM ra_addresses ra,
                      ra_site_uses rs,
                      sfp_distributeur sd,
                      ar_customer_profiles ac
                WHERE sd.ra_customer_id = ra.customer_id
                  AND rs.address_id = ra.address_id
                  AND rs.site_use_code = 'BILL_TO'
                  AND rs.primary_flag = 'Y'
                  AND rs.status = 'A'
                  AND ac.customer_id = ra.customer_id
                  AND rs.site_use_id = ac.site_use_id
                  AND sd.distrib_ref = :sfp_caid_infos_erd_v.code_erd);
    Je précise aussi que je n'ai effectué mes manipulations avec soit l'un de ces 2 triggers soit l'autre mais jamais les 2 en même temps.

    plaineR>>Hum... j'imagine que la propriété que tu me demandes de regarder est "Ordre d'exécution" - tu dois avoir forms en Anglais - et elle vaut "Substitué".
    Je vais essayer de recréer cette checkbox mais le problème demeurera quand bien même le trigger WCC se déclencherait "correctement" car lorsque je clique sur valider cela affiche qu'il n'y a pas de modificaions à sauvegarder.

    Ce message est partiellement vrai : aucune donnée base table n'a été modifié dans mon scénario simplifié mais d'un autre côté, j'ai modifié des données en base.

    Bref surprenant et je ne me rappelle pas avoir rencontré ce genre de problème que je n'étais pas sous Oracle Appli.

    Thanks buddies.

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Salut,

    peut être le code qui provoque une exception ???
    Essaie de le mettre en commentaire.


    La subquery ramène un ou plusieurs enregistrements????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    (SELECT ac.customer_profile_id
                 FROM ra_addresses ra,
                      ra_site_uses rs,
                      sfp_distributeur sd,
                      ar_customer_profiles ac
                WHERE sd.ra_customer_id = ra.customer_id
                  AND rs.address_id = ra.address_id
                  AND rs.site_use_code = 'BILL_TO'
                  AND rs.primary_flag = 'Y'
                  AND rs.STATUS = 'A'
                  AND ac.customer_id = ra.customer_id
                  AND rs.site_use_id = ac.site_use_id
                  AND sd.distrib_ref = :sfp_caid_infos_erd_v.code_erd);

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Magnus Voir le message
    Je vais essayer de recréer cette checkbox mais le problème demeurera quand bien même le trigger WCC se déclencherait "correctement" car lorsque je clique sur valider cela affiche qu'il n'y a pas de modificaions à sauvegarder.
    Il t'affiche aucune modifications à enregistrer ce qui est logique puisque tu n'as pas modifié d'item basé, mais cela ne veut pas dire que ton update n'est pas pris en compte. Si tu veux qu'il ne t'affiche pas ce message, modifie le system.message_level ou fait un set_record_property (..., record_status, changed_status). Dans ce dernier cas il considèrera que ton enregistrement a été modifié.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par plaineR Voir le message
    Il t'affiche aucune modifications à enregistrer ce qui est logique puisque tu n'as pas modifié d'item basé, mais cela ne veut pas dire que ton update n'est pas pris en compte. Si tu veux qu'il ne t'affiche pas ce message, modifie le system.message_level ou fait un set_record_property (..., record_status, changed_status). Dans ce dernier cas il considèrera que ton enregistrement a été modifié.
    On est tout à fait d'accord sur le raisonnement.
    Concernant la solution, j'avais déjà essayé le SET_RECORD_PROPERTY mais il engendre un problème d'acquisition de verrou ou autre bizarrerie dans le genre.
    L'alternative que j'ai trouvé pour qu'il ne m'affiche pas dans ce message est de modifier le trigger ON-ERROR :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IF ERROR_TYPE <> 'FRM'
    OR ERROR_CODE <> 40401
    THEN
    	APP_STANDARD.EVENT('ON-ERROR');
    END IF;

    Je n'aime pas trop ce bricolage mais bon j'ai une solution alors je marque le topic 'Résolu' mais si l'un(e) d'entre vous a une explication sur le fait que le trigger WCC ne fonctionne pas dans ce contexte alors je suis preneur.

    Merci à vous 2.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] comment détecter un changement dans une table
    Par acheo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/05/2009, 00h38
  2. Définir la valeur d'une checkbox non cochée
    Par frakosun dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2008, 13h52
  3. Valeur d'une checkbox non cochée
    Par lekunfry dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2007, 12h10
  4. [MySQL] Mise à jour mysql avec une checkbox non checké
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/08/2006, 16h45
  5. Réponses: 2
    Dernier message: 24/05/2006, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo