問題タブ [business-objects]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
encryption - CrystalReports CMSデータベースにクエリを実行するにはどうすればよいですか?
Crystal CMSデータベースにクエリを実行して、意味のあるデータを取得することは可能ですか?データは暗号化されているようです。
Business Objects CrystalReportServerバージョン11.5を実行しています
c# - ビジネス オブジェクトへの変更を追跡する方法
個人のようなものを表すビジネス オブジェクトまたはエンティティを作成するという概念を理解しました。次に、DTO を使用して Person をシリアル化し、クライアントに送信します。クライアントがオブジェクトを変更した場合、そこに IsDirty フラグを設定できるため、オブジェクトがサーバーに送り返されたときに更新する必要があることがわかります。
しかし、Order オブジェクトがある場合はどうなるでしょうか? これには、主要なヘッダー情報、顧客、サプライヤー、必要な日付などが含まれます。次に、注文するアイテムである List< OrderItem> である OrderItems があります。UI でこのビジネス オブジェクトを使用できるようにしたいと考えています。そのため、場所、サプライヤー、必要な日付などに接続されたいくつかのテキスト ボックスと、OrderItems に接続されたグリッドがあります。OrderItems は List であるため、簡単にレコードを追加および削除できます。しかし、これ、特に削除されたアイテムを追跡するにはどうすればよいですか。削除されたアイテムをグリッドに表示したくないので、foreach を使用した場合、アイテムが削除されているため、それらを反復処理できないはずです。しかし、削除があったという事実を追跡する必要があります。変更を追跡するにはどうすればよいですか。作業単位を使用する必要があると思いますか? しかし、その後、コードは非常に複雑になるようです。では、単純に DataTables を使用して、無料で変更追跡を取得してみませんか? しかし、その後、ビジネスオブジェクトがどのように進むべきかを読みました.
Orders のようなヘッダー詳細の例ではなく、単純な Person の例でさまざまな例を見つけました。
ところで、これには C# 3.5 を使用します。
c# - ビジネス オブジェクト、検証、および例外
例外とその使用に関するいくつかの質問と回答を読んでいます。例外は例外、未処理の場合にのみ発生させるべきだという強い意見があるようです。そのため、検証がビジネス オブジェクトでどのように機能するのか疑問に思いました。
オブジェクトのプロパティのゲッター/セッターを持つビジネス オブジェクトがあるとします。値が 10 ~ 20 であることを検証する必要があるとします。これはビジネス ルールであるため、ビジネス オブジェクトに属します。そのため、検証コードがセッターに入っていることを暗示しているようです。これで、UI データがデータ オブジェクトのプロパティにバインドされました。ユーザーは 5 を入力するため、ルールは失敗する必要があり、ユーザーはテキスト ボックスから移動できません。. UI はプロパティにデータバインドされているため、setter が呼び出され、ルールがチェックされて失敗します。ルールが失敗したことを示すためにビジネス オブジェクトから例外を発生させた場合、UI はそれを取得します。しかし、それは例外の好ましい使用法に反しているようです。それがセッターであることを考えると、セッターの「結果」は実際にはありません。
では、検証はどのように機能するのでしょうか?
編集: ここでは、単純化しすぎた例を使用した可能性があります。上記の範囲チェックのようなものは UI で簡単に処理できますが、検証がより複雑な場合、たとえば、ビジネス オブジェクトが入力に基づいて数値を計算し、計算された数値が範囲外の場合は拒否する必要があります。これは、UI に含めるべきではない、より複雑なロジックです。
また、すでに入力されているフィールドに基づいて入力された追加データも考慮されます。たとえば、在庫や現在のコストなどの特定の情報を取得するために、注文にアイテムを入力する必要があります。ユーザーは、この情報を入力してさらに入力するかどうかを決定する必要がある場合があります (注文するユニット数など)。さらなる検証が行われるように。アイテムが有効でない場合、ユーザーは他のフィールドに入力できるようにする必要がありますか? ポイントは何ですか?
business-objects - Business Objects のエラー コードとその意味のリストを教えてください。
Business Objects Web Services はエラー コードを返しますが、これらが一覧表示されている適切なリソースとその意味をまだ見つけていません。現在、「結果セットが空でした。(エラー: WBP 42019)」というメッセージが表示されます。これらがどこにリストされるかについてのアイデアはありますか? Business Objects のサポートに電話しましたが、技術者は教えてくれませんでした。誰?
.net - ビジネス オブジェクトの DAL 設計
ビジネス オブジェクトを設計するとき、データ アクセス層を作成するさまざまな方法を試しました。いくつかは他のものよりもうまくいきましたが、私はいつも「より良い」方法がなければならないと感じていました.
人々がさまざまな状況で DAL を処理したさまざまな方法と、この手法がどのように機能したか、またはうまく機能しなかったかについての意見を知りたいだけです。
tomcat - Infoview による Business Objects XI 3.0 ダッシュボード エラー
最新の Business Objects Edge 試用版をテストしていますが、Infoview に管理者としてログインし、クリックしてダッシュボードを作成または整理すると、次の 2 つのエラー メッセージのいずれかが表示されます...
応答がコミットされた後は転送できません
また
サーブレット エンジンの例外: null URL: /PerformanceManagement/scripts/tools/err_page.jsp?null
スタックトレース:
どんな助けでも大歓迎です。
.net - ビジネスオブジェクトの画像のSystem.Drawing.Image?
ビジネス オブジェクトに画像を保存したいと考えています。MSDN で、System.Drawing-namespace が多くの GDI+ 機能などを提供していることを見ました。
Image を System.Drawing.Image クラスのビジネス層 (クラス ライブラリ「のみ」) に保存して、System.Drawing への参照も含めても問題ありませんか? ビジネスコードにUI固有の参照があるように見えるので、それを行うのは少し悪いと感じています。さらに、コードが不必要にプラットフォームに依存する可能性があります (ただし、これは理論上の問題にすぎません。複数のプラットフォーム向けに開発を行っていないためです)。
そうでない場合、どのタイプが最も適していますか?
返信ありがとうございます。
マティアス
c# - Business Objects Query Service を公開する方法
あるユニバースから別のユニバースに BO クエリ サービスをコピーしようとしています。BO Query As A Service (QAAS) ツールを使用すると、これを行うことができますが、基本的にクエリ サービスを再作成することになります。
BusinessObjects.DSWS.* ライブラリを使用するとクエリ サービスを読み書きできるようですが、QAAS ツールには表示されません。これらのクエリは、QAAS ツールの ping とは別のユニバースに入ると思います。おそらく、データ用のユニバースと Web サービス クエリ用のユニバースがあります。HTTP トラフィックの QAAS ツールを監視すると、含まれるデータのクエリを実行するために使用される BO Web サービスが、Web サービス クエリの管理にも使用されることが明らかになりました。
QuerySpec の XML 文字列で Replace() を使用して UniverseID を変更することで、1 つのクエリ サービスを新しいユニバースの新しいサービスにコピーすることができました。基本的に、1 つのクエリ サービスを手動で再構築することなく、別のユニバースにコピーできます。
QAAS ツールには [公開] ボタンが含まれています。これは未知の、しかし重要なことを行います。おそらく、コピーされたクエリ サービスが公開されるように、いくつかの SOAP、WSDL、または構成ファイルが作成されます。これを行っているときにスヌープする HTTP トラフィックはないようです。BusinessObjects.DSWS.* ライブラリには公開機能が含まれていますが、クエリ サービス用ではありません。ExcelやPDFなどの一般的なファイル用です。
現在、私たちは 2 つのツールの使用に追いやられています。QAASツールと同じようにBOクエリサービスをプログラムで公開する方法を知っている人はいますか?
c# - ORM と SQL をレガシー システムと組み合わせる方法についてアドバイスが必要
私たちは、レガシー システムを .NET に移植する作業を進めています。これは、アーキテクチャをクリーンアップするためだけでなく、レガシー システムでは簡単に実現できない多くの新しい可能性を利用するためでもあります。
注: 投稿する前に投稿を読んでいると、所々で説明が少し速すぎた可能性があることに気付きました。詳細については説明しません。不明な点がある場合は、コメントを残してください(回答ではありません)。可能な限り補足します
レガシー システムはデータベースを使用し、100% カスタムで記述された SQL が随所に使用されています。データを必要とするコードはジョブに必要なもののみを取得するため、これによりテーブルが広くなります (つまり、列が多くなります)。
移植の一環として、カスタム SQL に加えて、使用できる ORM レイヤーを導入しました。私たちが選択した ORM は DevExpress XPO であり、この機能の 1 つがいくつかの問題を引き起こしました。つまり、たとえば Employee テーブルの ORM クラスを定義するときに、すべての列のプロパティを追加する必要があるということです。そうしないと、それらを取得できません。
これはまた、従業員を取得すると、少数の列しか必要としない場合でも、すべての列を取得することを意味します。
ORM を使用する利点の 1 つは、プロパティ関連のロジックを同じクラスに配置できることです。たとえば、姓、名、ミドルネームを組み合わせて「表示名」にする簡単な表現は、例としてそこに置くことができます。
ただし、どこかに SQL コードを記述した場合は、DAL のような構造で、またはどこでも、この式を複製する必要があります。これは間違っているように感じられ、バグとメンテナンスの悪夢のレシピのように見えます。
ただし、次の 2 つの選択肢があります。
- ORM、すべてをフェッチ、一度ロジックを記述可能
- SQL、必要なものを取得、ロジックを複製する必要がある
次に、代替案を考え出しました。ORM オブジェクトは辞書からコード生成されるため、一連のダム クラスも生成することにしました。これらは同じ数のプロパティを持ちますが、同じ方法で ORM に関連付けられません。さらに、生成されたすべてのオブジェクトにインターフェースを追加し、ORM オブジェクトとダム オブジェクトの両方にこのインターフェースを実装させました。
これにより、このロジックの一部をインターフェイスに関連付けられた拡張メソッドに移動することができました。ダム オブジェクトは、SQL クラスにプラグインするのに十分な情報を持っているため、DataTable を取得する代わりに、利用可能なロジックを使用して List を取得できるため、これは機能しているように見えます。
ただし、これにより別の問題が発生しました。従業員が誰であるか (つまり、システム内の識別子) と名前 (ファースト、ミドル、ラスト) を知る必要があるコンテキストでのみ従業員を表示または処理するコードを書きたい場合、私はこのダム オブジェクトを使用します。私を呼び出すコードが実際にこれらすべてのものを提供していることをコンパイラが保証することはありません。
1 つの解決策は、どのプロパティに値が割り当てられているかをオブジェクトに認識させることです。割り当てられていないプロパティを読み取ろうとすると、例外が発生してクラッシュします。これにより、コードが十分な情報を渡していない場合に、実行時に契約違反を検出する機会が得られます。
これも私たちには不格好に見えます。
だから基本的に私がアドバイスしたいのは、他の誰かがこの状況にあったか、そうであるか、そしてあなたが与えることができるヒントやアドバイスです.
現時点では、テーブルを分割することはできません。レガシ アプリケーションは、ポートのサイズのために何年も存在する必要があり、.NET コードは 3 年以内にリリースされるタイプのプロジェクトではありませんが、途中のリリースで段階的に導入されます。そのため、レガシー システムと .NET コードの両方が同じテーブルを操作する必要があります。
また、これが理想的な解決策ではないことも承知していますので、「このようにするべきではなかった」などのアドバイスはご遠慮ください。私たちはこれをよく知っています:)
私たちが調査したことの 1 つは、"コントラクト" を使用して XML ファイルなどを作成することです。したがって、この XML ファイルに次のようなものを入れることができます。
- これらの 50 個のプロパティを持つ Employee クラスがあります
- さらに、プログラムのさまざまな部分に、これらの 7 つのバリエーションがあります。
- さらに、これらの 10 個のロジックがあり、それぞれがプロパティ X、Y、および Z を必要とします (X、Y、および Z はこれらの 10 の間で異なります)。
これにより、これらの 8 つのクラス (完全なクラス + 7 つの小さなバリエーション) をコード生成し、バリエーション #3 にプロパティ X、Y、および K が存在することをジェネレーターに検出させることができます。ロジックまたはロジックが必要とするインターフェースをこのクラスに自動的に追加します。これにより、さまざまな程度のプロパティ カバレッジを持つさまざまなタイプの従業員クラスを作成し、このクラスでサポートされるすべてのロジックをジェネレーターに自動的に追加させることができます。
私のコードは、タイプ IEmployeeWithAddressAndPhoneNumbers の従業員が必要であると言うことができます。
これもダサく見える。
.net - BusinessObjecs Web Intelligence レポートのダウンロードを自動化する
私は、いくつかのBusinessObjects Web Intelligenceレポートの取得とその後の処理を自動化する任務を負っています。
私はこのデータにアクセスする他の手段を持っていません (これが私がたどった最初の方法でした)。残念ながら、インターフェイスはユーザーのみのようです。グル!
誰もこれを以前にやったことがありますか?共有したいですか?
また、Web ブラウザを自動化するための優れたライブラリを知っている人はいますか? Web アプリケーションのテストに使用できる python が存在することは知っていますが、.NET で何かが必要です... あなたのお気に入りは何ですか?
PS: このスレッド (Web ページからのレポートの自動取得)も確認しましたが、Web Intelligence 固有のソリューションを期待しています。