Question
· Avr 3

Créer un vue avec des propriétés objet

Bonjour,

Je veux créer une vue pour exposer une requête SQL.

Voici ma vue :

Class Client.TEST-REQ1 [ ClassType = view
                        , CompileAfter = Client.Client
                        , DdlAllowed
                        , Owner = {UnknownUser}
                        , Not ProcedureBlock
                        , SqlTableName = "TEST-O-REQ-1"
                        , ViewQuery = { 
                            SELECT NumeroClient, NomClient, ModeReglement.CodeModeReglement as ModeReglement_CodeModeReglement FROM Client.Client
                        }]
{

}

Je l'ai générée à partir du portail d'administration et ensuite modifiée dans le select.

Cette vue est consommée via ODBC par Excel par le client.

Si la vue n'utilise pas la notation point pour accéder à certaines propriétés des objets ModeReglement et Secteur d'activité, alors tout se passe bien. Mais Excel lors de l'importation des données explose avec une erreur 22018. Si je retire les colonnes qui sont des objets, pas de problème, ça passe.

Donc j'ai essayé d'utiliser la notation point pour accéder à la clé de chaque propriété objet, mais là c'est IRIS qui ne me veut plus avec comme message d'erreur (selon les cas) :

Quand le Mode de règlement est derrière une colonne scalaire NoClient :

ERROR #5521: SQLError: SQLCODE=-23 %msg=Error occurred compiling view Client."TEST-REQ-1"'s  query.
%msg =  Label 'VENDEURCLIENT' is not listed among the applicable tables^NoClient  , VendeurClient.CodeVendeur as^
err = qaqperr^
 > ERROR #5030: An error occurred while compiling class 'Client.TESTREQ1'
Detected 1 errors during compilation in 0.010s.

Quand le mode de règlement est en tête des colonnes :

Compilation started on 04/03/2024 09:17:27 with qualifiers 'cuk'
Compiling class Client.TESTREQ1
Compiling view Client.TEST-REQ-1
ERROR #5521: SQLError: SQLCODE=-23 %msg=Error occurred compiling view Client."TEST-REQ-1"'s  query.
%msg =  Label 'MODEREGLEMENT' is not listed among the applicable tables^  SELECT ModeReglement.CodeModeReglement as^
err = qaqperr^

Bien entendu, si je n'essaie pas d'utiliser la notation point, tout fonctionne bien. DBeaver requête correctement, c'est Excel qui ne le comprend pas.

Est-ce que vous avez une idée de comment indiquer à IRIS que pour le champ objet donné, je veux uniquement afficher une propriété donnée ?

Merci

Version du produit: IRIS 2023.1
$ZV: IRIS for Windows (x86-64) 2022.1.2 (Build 574) Fri Jan 13 2023 15:13:17 ES
Discussion (3)2
Connectez-vous ou inscrivez-vous pour continuer