問題タブ [webi]

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.

0 投票する
1 に答える
3412 参照

sql - SAP の HANA での日付キャストの例外をどのように処理しますか?

質問の概要:

ビュー (計算、属性、または分析) の HANA SQL または HANA Studio 内で、ユーザーがデータをフィルタリングできるように日付にキャストしようとするときに無効なデータを処理する適切な方法は何ですか?

SAP のテーブルKONM では、フィールドKSTBMは decimal(15,3) のデータ型です。このフィールドは正誤を問わず、日付値を YYYYMMDDHHM.MSS 形式で格納します。(私はシステムの設計者ではありません。日付/時刻フィールドの代わりに10進数フィールドに日付を格納する理由は、この質問の範囲を超えています。)

したがって、次のような有効な値:

  • 201703290 (はい、2017 年の有効な年 03 は有効な月であり、29 はその年のその月の有効な日です。)
  • 201703301.130 (はい、2017 年の有効な年 03 は有効な月であり、30 はその年のその月の有効な日であり、11:30 は有効な時間です)

to_timestampまたはdaydate類似の関数を使用して簡単にキャストできます。

残念ながら、このテーブルにはいくつかの不適切なエントリが作成されているため、次のようなデータは日時にキャストできません。

  • 201702290 (2017 年の 2 月の無効な日は 29 日ではありません)
  • 201713500 (無効な月 12 か月ではなく 13)
  • 201712312.400 (無効な時間 00:00:00-23:59:59 24 はありません)
  • 201712310.060 (無効な分 00:60 は 01:00 になります)
  • 201712310.090 (無効な分 00:90 は 01:30 になります)

to_Timestampこのような無効なレコードに対してまたは関数を使用するdaydateと、次のエラーが表示されます。

SAP DBTech JDBC: [2048]: 列ストア エラー: 検索テーブル エラー: [6860] 日付、時刻、またはタイムスタンプの値が無効です。

また

[303]: DATE、TIME、または TIMESTAMP の値が無効です:

それらが無効な日付であることに同意します...したがって、エラーがスローされる理由がわかりました。

根本的な原因を修正してから、悪いデータを修正したいと思っています。それは現在のオプションではありません。チームが異なれば、リソースが異なれば、優先順位も異なります。やるべきことのリストに載っていますが、WEBIレポートが必要なユーザーがいます。そして、悪いデータが存在するので...私はまだそれを処理する必要があります.

私がやろうとしているのは、これらの誤った日付を正常に処理できる HANA Studio で Calculated_view を作成することです。しかし、基本的にこれらの日付を NULL に設定できるようにする try catch またはその他のタイプの例外処理を見つけることができなかったので、ユーザーは引き続き他の関連データを取得し、中にいくつかの悪いデータがあることを確認できます。修正できるシステム。

このエラーがスローされてからの現状では、WEBI レポートの実行時にユニバースからレコードを返すことができません。可能なすべての時刻を含む日付/時刻テーブルの作成を含むいくつかのオプションを見つけました.... (私がそれをしたくない理由がわかると思います) または関数の作成 (ただし、特定の指示がありません;私は結局、HANAとユニバースとWEBIの新しいユーザーなので、質問が存在します)

HANA Studio で実行できる例を次に示します。

isBad を 0 に変更すると機能します。isBad を 1 に変更すると、エラーが表示されます。

質問の側面:

  1. isBad が 1 か 0 かに関係なく、このクエリをエラーなしで実行するにはどうすればよいですか?
  2. 不良データを含める/含めない方法/方法はありますか (おそらく、すべての不良データを結果に NULL に設定し、ユーザーのオプションとして null データを含める/除外できますか?
  3. 無効な場合はそれらを変換しようとせず、有効な場合は試してみるのではなく、ビューでこれらの悪いレコードを計算列で識別する方法はありますか?
  4. 私のアプローチは単に間違っているのでしょうか? Oracle/MS SQL/MySQL の頭脳を再訓練して、考え方を変える必要がありますか? 私が例外を処理isdate()するか、キャストを試みる前に有効かどうかを確認するためにキャッチまたは使用を試みる他の言語...ここではそれらのオプションが表示されません(ただし、私は初心者であり、おそらくヘルプをまだうまく使用できないだけです)

私の長く引き出された質問を読んでくれてありがとう。うまくいけば、私は十分な詳細を提供しました。

私は避けようとしています:

0 投票する
1 に答える
6444 参照

object - Business Objects/Webi の If And ステートメント

Business Objects 4.2 で Web Intelligence を使用しており、次の IF/AND ステートメントを使用して新しい変数を作成しようとしていますが、うまくいきません。

=If([Safeguarding Ind]=1 And [Form Complete Ind] <> 1 then 1 else 0)

エラー メッセージ: 54 番目の「Then」に演算子または閉じ括弧がありません。(IES 10067)

0 投票する
1 に答える
1052 参照

sap - マージを修正した後、#DATASYNC が消えない

4 つのクエリを含むレポートがあります。レポートではそのうちの 2 つを使用しました。そのうちの 2 つをレポートにマージしたところ、レポートは正常に実行されました。ただし、マージで何かを変更した場合 (たとえば、別のディメンションをマージに追加したり、マージを解除したりした場合)、レポートには #Datasync のみが表示されます。

マージをそのまま修復しても、レポートにはまだ#Datasync が表示されます。そんなことがあるものか?

明確にするために:

  1. レポートが機能します。
  2. マージで行われた変更: #DATASYNC でレポートが失敗する
  3. 元通りに復元されたマージ: レポート はまだ#DATASYNC で失敗します。レポートを完全に再構築する必要がある
0 投票する
1 に答える
27 参照

business-objects - オブジェクト/文字列から文字のグループを抽出する

日付と時刻を含む非常に長い文字列があります。日付部分と時刻部分だけを抽出するにはどうすればよいですか?

文字列は次のとおりです: 0:2019010309130000:0.000000:126:0

次のように日付と時刻を抽出するだけです。

日付 - 20190103 時間 - 0913 で、09:13 としてフォーマットします

0 投票する
1 に答える
142 参照

date - WEBI BO 値が一致する場合、今日の表示翌日 (dayname) に基づく

こんにちは、予約日が 2 列しかないテーブルがあります... 国と予約はそれぞれ 1 日だけ予約できます。月曜日から金曜日、その「日」は 2 列目に示されます。今日に基づいて、次のスロットが何であるかを示すために利用できる計算はありますか: (表の曜日に基づいて) しかし、今日が月曜日でスロットが月曜日の場合、次の月曜日などの日付が表示されます....

したがって、基本的に今日 (水曜日) は、利用可能な次の予約を確認し、日付を表示する計算が必要です。つまり、次の予約がファイル内で木曜日の場合、ファイル内が水曜日の場合、2019 年 3 月 14 日を表示する必要があります。今日は遅いので来週表示する必要があるので、2019/03/20