Problème modification de curseur
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:
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.