PB à toute heure et à tout moment. (à parcourir avec modération)

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 27-07-2010 08:21:32

DrHouse  
Membre
Lieu: Sophia-Antipolis
Date d'inscription: 04-09-2008
Messages: 7
Pépites: 11,046
Banque: 0

[ASTUCE] SYBASE : Paramétrer des procs spécifiques par client

Ma contributions avant les vacances ...

Problématique :
Une procédure stockée permet de créer des ordres de commandes, des ordres de bourse etc ...
Chaque client a sont système de gestion (notre application !!!) interfacée avec des systèmes externes qui récupère les ordres de commande , de bourse ... pour les exécuter.
Notre procédure principale de création des ordres aurais besoin d'être customisée pou s'interfacer avec les systèmes externes de chaque client et on ne veut pas en faire une différente pour chaque client dans la mesure ou 90% du code est commun à tous.
Bon je sais pas si c'est clair ....

Solution :
Appeler des procédures spécifiques à chaque client que l'on paramètrera dans des tables

Dans la procédure principale :

Code: mssql

Create Proc dbo.ma_proc_de_validation_des_ordres (
  @param1 int,
  @param2 int = null
                                  )
As
Begin
   
     .../... mon code
     .../... mon code 


     -- Proc specifique customizable dans la table TRAIT_SPECIF

    select @nom_proc = name from sysobjects where id = @@procid
    select @trait_specif = PROC_SPECIF from  TRAIT_SPECIF where PROC_STAND = @nom_proc and EMPLACEMENT = "Before Tran" 
If @trait_specif <> NULL
Begin
  If Exists (select 1 from sysobjects where name=@trait_specif and type='P' and (uid=user_id() or uid=user_id("dbo")) )
  Begin
    exec @res = @trait_specif
    If @res != 0
    Begin
      goto erreur
    End
  End
End 

    begin transaction
    .../... mon code 

    -- Proc specifique customizable dans la table TRAIT_SPECIF
    select @nom_proc = name from sysobjects where id = @@procid
    select @trait_specif = NULL
    select @trait_specif = PROC_SPECIF from TRAIT_SPECIF where PROC_STAND = @nom_proc and EMPLACEMENT = "In Tran" 
    If @trait_specif <> NULL
    Begin
      If Exists (select 1 from sysobjects where name=@trait_specif and type='P' and (uid=user_id() or uid=user_id("dbo")) )
      Begin
        exec @res = @trait_specif
        If @res != 0
        Begin
          goto erreur
        End
      End
    End
  
commit transaction


On paramètre le nom des procs spécifiques dans une nouvelle table
par exemple :

Code: sql

select * from TRAIT_SPECIF

PROC_STAND                                    PROC_SPECIF        MW_MODULE  MW_DESCRIPTION      MW_EMPLACEMENT
[char                                  ]         [char        ]               [char   ]          [char            ]            [char        ]
----------------------------------------  --------------        ---------             ------------------  --------------
ma_proc_de_validation_des_ordres     proc_specif_client    Order             Modification ordre  In Tran


A+++++


Il vaut mieux 1 qui sait que 10 qui cherchent, bon des fois on est 11 à chercher ...

Hors ligne

 

#2 27-07-2010 11:23:40

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: [ASTUCE] SYBASE : Paramétrer des procs spécifiques par client


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

Hors ligne

 

#3 27-07-2010 12:32:35

LeCiao  
Membre Geek
Date d'inscription: 05-09-2007
Messages: 87
Pépites: 18
Banque: 362,050,507,885,535

Re: [ASTUCE] SYBASE : Paramétrer des procs spécifiques par client

Alors là bravo !!
1000 pépites

Dernière modification par LeCiao (27-07-2010 12:36:19)

Hors ligne

 

#4 27-07-2010 13:12:10

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

Re: [ASTUCE] SYBASE : Paramétrer des procs spécifiques par client

pour ta contribution !

je corrige la balise code pour le coup, mais avec ici code=mssql


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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22