2

SRSReportDataProviderBaseから拡張されたクラスであるDataProviderクラスをデバッグする方法はありますか?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クラスを構築する方法はありますか?


アップデート:

クラスの依存関係を注入できたので、デバッグできるようになりました。それはほとんど同じです。しかし、最初の質問にはまだ答えがありません。

SRSReportDataProviderBaseから拡張されたクラスであるDataProviderクラスをデバッグする方法はありますか?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();

    }
4

2 に答える 2

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));
    }
}
于 2013-02-01T13:47:12.127 に答える
0

コードが管理されているかどうかに応じて、Ax デバッグまたは Visual Studio デバッグ (VS エディターを AOS プロセスにアタッチする) を使用する必要があります。

ただし、このリンクでレポートをデバッグする方法に関する情報を見つけることができます:レポート データ プロバイダー クラスをデバッグするようにデバッガーを構成する

于 2013-01-21T22:19:04.837 に答える