有没有办法调试DataProvider类,一个从SRSReportDataProviderBase扩展的类,当我的AOS,我的客户端和我的SQL在不同的服务器中分开时?
或者有什么方法可以创建单元测试或作业,我可以执行DataProvider类吗?所以我可以调试它? // 此问题在下面的更新
上解决我尝试创建一个作业,所以我可以调试它,但当然它们的依赖项没有被注入。 这是一个例子:
static void Job2(Args _args)
{
JmgEmplSignedInDP empl;
;
empl = new JmgEmplSignedInDP();
empl.processReport();
}
我得到了以下错误,因为它没有他们的依赖:
JmgEmplSignedInContract object not initialized.
Stack trace
(S)\Classes\JmgEmplSignedInDP\processReport - line 12
(C)\Jobs\Job2 - line 8
有什么方法可以构造一个DataProvider类,所以我可以调试它吗?
更新
我可以注入类依赖,所以现在我可以调试它。它几乎是一样的。 但最初的问题还没有出现:
有没有办法调试DataProvider类,这是一个扩展的类 来自SRSReportDataProviderBase,当我的AOS,我的客户端和我的SQL 在不同的服务器中分开?
注入DataProvider类的依赖项的代码:
static void Job2(Args _args)
{
JmgEmplSignedInDP empl;
JmgEmplSignedInContract con;
Query q;
;
empl = new JmgEmplSignedInDP();
con = new JmgEmplSignedInContract();
q = new Query(querystr(JmgEmplSignedInQuery));
empl.parmQuery(q);
empl.parmDataContract(con);
empl.processReport();
}
答案 0 :(得分:1)
出于调试目的,您可能希望更改数据提供程序类以在客户端上运行(在这种情况下,JmgEmplSignedInDP类属性具有RunOn = Server)。
请记住在用户设置的“开发”选项卡中删除“在CIL中执行业务操作”选项。
您可以检查在作业中使用更多行生成的原始数据:
static void Job2(Args _args)
{
JmgEmplSignedInDP empl;
JmgEmplSignedInContract con;
Query q;
JmgTmpEmplSignedIn tmp;
;
empl = new JmgEmplSignedInDP();
con = new JmgEmplSignedInContract();
q = new Query(querystr(JmgEmplSignedInQuery));
empl.parmQuery(q);
empl.parmDataContract(con);
empl.processReport();
tmp.setTmpData(empl.getJmgTmpEmplSignedIn());
while select tmp
{
info(strFmt("%1", tmp.EmplName));
}
}