壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2086|回复: 4

compiere如何调用AD_PROCESS中的view信息,请高人帮忙指点。。多谢。

[复制链接]
发表于 2007/11/24 00:00:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
今天看了AD_PROCESS的,对于直接调用CLASSNAME的比较好理解,好说,但是在看了那个调用视图的(CLASSNAME IS NULL部分的记录),确死活找不到相应的代码和如何执行的。
发表于 2007/11/27 14:17:12 | 显示全部楼层
视图? 存储过程吧?
发表于 2007/11/27 14:24:43 | 显示全部楼层

给个例子

CREATE OR REPLACE PROCEDURE XXXXXXX
(
        PInstance_ID                        IN NUMBER
)

AS
        --        Logistice
        v_ResultStr                                                VARCHAR2(2000);
        v_Message                                                VARCHAR2(2000);
        v_Record_ID                                                NUMBER;
        --        Parameter -- 获取参数
        CURSOR Cur_Parameter (PInstance NUMBER) IS
                SELECT i.Record_ID, p.ParameterName, p.P_String, p.P_Number, p.P_Date
                FROM AD_PInstance i, AD_PInstance_Para p
                WHERE i.AD_PInstance_ID=PInstance
                AND i.AD_PInstance_ID=p.AD_PInstance_ID(+)
                ORDER BY p.SeqNo;
        --        Parameter Variables
        v_AD_Tab_ID                                                NUMBER;
        v_NoOfFields                                        NUMBER := 0;
        v_NextNo                                                NUMBER;
        v_EntityType                                        CHAR(1);
        --        Copy
       
BEGIN
        --  Update AD_PInstance
        DBMS_OUTPUT.PUT_LINE('Updating PInstance - Processing ' || PInstance_ID);
        v_ResultStr := 'PInstanceNotFound';
----------------------------------- 这里表示正在执行,以屏蔽掉点一个按钮几次
        UPDATE AD_PInstance
        SET Created = SysDate,
                IsProcessing = 'Y'
        WHERE AD_PInstance_ID=PInstance_ID;
        COMMIT;

        --        获取参数,这里是你定义Process的时候的Parameter, 也就是用户点了Process,探出窗口要求输入的参数,当然也包括一些内置的参数,比如Record_ID, 就是窗口里,点按钮的时候,的那条记录的Record_ID
        v_ResultStr := 'ReadingParameters';
        FOR p IN Cur_Parameter (PInstance_ID) LOOP
                v_Record_ID := p.Record_ID;
                IF (p.ParameterName = 'AD_Tab_ID') THEN
                        XXXX := p.P_Number;
                       
                ELSE
                        DBMS_OUTPUT.PUT_LINE('*** Unknown Parameter=' || p.ParameterName);
                END IF;
        END LOOP;        --        Get Parameter
        DBMS_OUTPUT.PUT_LINE('  Record_ID=' || v_Record_ID);

        后面是具体你要做的事情。。。。。

<<FINISH_PROCESS>>
        --  Update AD_PInstance
        DBMS_OUTPUT.PUT_LINE('Updating PInstance - Finished ' || v_Message);
        UPDATE        AD_PInstance
        SET Updated = SysDate,
                IsProcessing = 'N',
                Result = 1,                                        -- 1表示成功,0表示失败
                ErrorMsg = v_Message
        WHERE        AD_PInstance_ID=PInstance_ID;
        COMMIT;
        RETURN;

EXCEPTION
        WHEN  OTHERS THEN
                v_ResultStr := v_ResultStr || ': ' || SQLERRM || ' - ' || v_Message;
                DBMS_OUTPUT.PUT_LINE(v_ResultStr);
                UPDATE        AD_PInstance
                SET Updated = SysDate,
                        IsProcessing = 'N',
                        Result = 0,                                -- 0表示失败
                        ErrorMsg = v_ResultStr    -- 错误信息,会在界面上显示
                WHERE        AD_PInstance_ID=PInstance_ID;
                COMMIT;
                RETURN;

END XXXXX;
发表于 2007/11/27 14:28:45 | 显示全部楼层
是报表?
理解错你的问题了。
 楼主| 发表于 2007/11/27 21:50:48 | 显示全部楼层

多谢pshen,今天在公司弄个WEB的,就没有上来看回复。

是那个VIEW,我看了AD_PROCESS中IS_REPORT字段是Y,AD_PROCESS_ID=270的那个,但是实际找没有找到相应代码,不过后来跟踪看了那个ADEMPIERE,好像是用那个reportutil的报表引擎处理这个,具体细节我再调试看看。
另外,后边还有好多问题,以后要多咨询你了,多谢先。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 05:09 , Processed in 0.013549 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表