Bonjour,

Afin de visualiser des informations sur un report lancé depuis un ERP, je souhaite rajouter dans un curseur un identifiant.
En recherchant comment est structuré le rapport, je constate sur SQLDEVELOPPER qu'il y a appel à une procédure stockée nommée GETPRTTREEBOM qui se définie de la sorte

Voici ce que j'ai comme code:
Code : 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
CREATE OR REPLACE
PACKAGE BODY          "PKG_RPT_TREE_BOM" AS
 
  PROCEDURE GetRPTTreeBom(mID_TREE_BOM IN NUMBER, mCur OUT REFCUR)
  IS
 
  BEGIN
      OPEN mCur FOR SELECT * FROM Table(CAST(GetListRPTBom(mID_TREE_BOM) AS ART_RPT_INFO));
  END;
 
  FUNCTION GetListRPTBom(mID_TREE_BOM IN NUMBER) RETURN ART_RPT_INFO
  IS
    mRowArt     TOPERP.T_ARTICLE%ROWTYPE;
    mTypeFab    NUMBER;
    mBomTree    TOPPDM.BOM_TREE;
 
    mRowRPT     ROW_ART_RPT_INFO;
    ListRPT     ART_RPT_INFO := ART_RPT_INFO();
    ListRefMat  DBMS_SQL.VARCHAR2_TABLE;
    ListRefOut  DBMS_SQL.VARCHAR2_TABLE;
  BEGIN
 
      mBomTree := TOPPDM.PKG_TREE.GetListTreeBOM('ID_TREE_BOM = ' || mID_TREE_BOM );
 
      for i in mBomTree.FIRST .. mBomTree.LAST loop
        -- Ajout
        -- mRowRPT := ROW_ART_RPT_INFO(NULL,NULL,NULL,NULL,NULL,NULL);
        mRowRPT := ROW_ART_RPT_INFO(NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 
        -- code propre au report
        mRowRPT.mLEVEL := LPAD(mBomTree(i).LEVEL_BOM,mBomTree(i).LEVEL_BOM+(mBomTree(i).LEVEL_BOM-1),' .');
        mRowRPT.ID_ARTICLE := mBomTree(i).ID_ERP_ITEM;
        mRowRPT.REFERENCE := mBomTree(i).ERP_REFERENCE;
        mRowRPT.DESIGNATION := mBomTree(i).ERP_DESIGNATION;
        mRowRPT.QTY := mBomTree(i).QUANTITY;
        -- Ajout
        mRowRPT.ID_ROUTING := mBomTree(i).ID_ROUTING;
 
        BEGIN
          select qte_disponible into mRowRPT.QTE_STOCK_DISPO from toperp.t_stock where id_article = mRowRPT.ID_ARTICLE;
        EXCEPTION WHEN OTHERS THEN
          mRowRPT.QTE_STOCK_DISPO := 0;
        END;
        -- fin du code
 
        ListRPT.extend;
        ListRPT(ListRPT.Last) := mRowRPT;
 
      end loop;
 
    return ListRPT;
 
  END;
END;
J'ai rajouté les lignes directement après le commentaire -- Ajout en vain.
J'ai 2 messages d'erreur lors de la compilation :

- PLS-00306 numéro ou types d'arguments erronés dans appel à ROW_ART_RPT_INFO (sur la ligne après le 1er ajout),

- PLS-00302 le composant ID_ROUTING doit être déclaré (sur la ligne après le 2ème ajout).

Je pense qu'il faut modifier le mRowRPT mais je ne sais comment faire via SQLDEVELOPPER.

Merci d'avance.
Julien.