問題タブ [internal-tables]
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.
javascript - HRインフォタイプitab行の条件付きループクリア?
私は ABAP について何も知りませんが、私の同僚 (それについてもまったく知りません) は、彼が思いついたいくつかのコードを見せてくれました。JavaScript では改善できたかもしれませんが、ABAP では配列が見つからないため少し迷っています;)。代わりに内部テーブルが使用されていることがわかりました。しかし、私はまだそれを理解することはできません。
コードは、EPI-USE 製の Query Manager の列に配置されます。これは、クエリの結果を調整する方法にすぎず、レポートを作成しようとすると(「既にプログラム内に」)、クラスまたはメソッドを作成すると(「try-catch-block を閉じます」)、エラーが発生することに気付きました。新しいクラスを宣言する前」)。
問題は非常に単純です。
多くのプロパティを持つ人がいます。値は数値です。これらはプロパティです
PA0013 ブロックをループして次のルールに従いたい:
条件:
が空の場合PA0013-RVNUM
、他のすべてのプロパティを空に設定する必要があります。
PA0013
-Value が空の場合、後続のすべてのPA0013
-Values を空に設定する必要があります (前のものではありません)。
-Value が空の場合PA0013
、対応するPA0000
-Value を空に設定する必要があります。
最初のループの後:
いずれかのPA0000
-Values の値が 3 の場合REJECT.
、その行を結果から除外するためにコマンドを実行します。
このための私の JS コードは次のようになります。
誰かが私のjsコードをABAPに「翻訳」することで私を助けることができますか?
私の同僚は、すべての条件に対して次のようなことをしました。
...
...
彼は、クエリが間違った PERNR で満たされないように、PERNR を空に設定したと私に言いました。
abap - INSERT INTO itab 中の抑制不可能な警告の抑制
ループ内のソートされた内部テーブルに新しいエントリを追加しています。私がいるループには、ソートされたテーブルのソート順とは異なるソート順があるため、INSERT INTO
ステートメントの代わりにステートメントを使用する必要がAPPEND TO
あります。後者はソート順に違反してダンプが発生するリスクがあるためです。
ただし、そのコードを追加すると、内部メッセージ コード " MESSAGE GJK
" で構文チェックの警告が表示されます。EPC では次のように表示されます。
しかし、「プラグマを使用して非表示にすることはできません」はうまくいきません。警告の理由は理解していますが、ビルド時に、新しいレコードを挿入する内部テーブルでループがアクティブにならないことを 100% 確実に知っています。それでも、この警告を隠すことはできません。開発中に役に立たない警告が表示されることは別として、一部の環境では、構文チェックの警告が含まれるコードを転送することができません。
この抑制できない警告を抑制する方法はありますか?
それができない場合、それを回避する方法はありますか?おそらく、ソートされていない一時テーブルを中間テーブルとして使用し、ソートされたテーブルに行を追加することでこれを行うことができますが、明らかな見落としと思われるものを回避するためだけに、役に立たない (100 万行の) 内部テーブルを作成することに躊躇しています。
abap - 内部テーブル宣言 OCCURS と TYPE TABLE OF の違いは?
そして、どちらが優先されるべきですか/なぜですか?
したがって、ローカルで定義された TYPE があります。
そして、以下に示すこれら2つのステートメントは両方とも同じことを行うと思います:
上記の 2 つのステートメントに違いはありますか?どちらが優先されますか?
performance - WHERE の条件 =、>=、<= で LOOP AT を最適化する
内部テーブルには大量のデータが含まれています。
次のコードがあります。
データベース テーブルには 7 つのフィールドが含まれ、内部テーブルにはデータベース テーブルと同じ型があります。
where 句には、主キー フィールドはありません。
テーブルには、2 つの主キーで構成される複合キーがあります。テーブル フィールドは、transid
(主キー)、item1
(主キー)、、、value1
およびです。value2
value3
value4
これらの条件のみに基づいてテーブルを検索する必要があります。しかし、これには時間がかかりすぎます。それを最適化する方法は?
abap - セカンダリ キーが完全に指定されているが使用されていない場合は警告、指定されている場合はエラー
私は困惑しています。次のコードをコンパイルすると
次の警告が表示されます
プログラム ZZY
2 次キー「SEC_KEY」は完全に指定されています。ただし、アクセスには主
キーが使用されます。「SEC_KEY」を使ったアクセスの方が
効率的かチェック
しかし、このキーを指定するとUSING KEY sec_key
、コンパイル時エラーが発生します!
プログラム ZZY
キー「SEC_KEY」は、「HASHED KEY」タイプの 2 次キーです。これらの場合、すべての主要コンポーネントを提供する必要があります
ここで何が間違っていますか?
abap - 既存のデータベース テーブルから内部テーブルを作成するための構文は?
ABAP初心者です。内部テーブルについて学び始めました。内部テーブルを作成する方法を読んでいました。
既存のデータベーステーブルから内部テーブルを作成するために、次の構文に出くわしました。
mara はテーブルであるため、私は混乱しています。lhs と rhs の両方が同じタイプである場合、次のようにすべきではありません。
mara が既にテーブルになっている場合、mara をテーブルに変換する必要は何ですか?
abap - インデックスを使用してヘッダーなしで内部テーブルを変更する
古い BW3.x コード (ヘッダー付きのテーブル) を BW7.x (ヘッダーなしのテーブル) に変更する方法
古いコード:
ここで、ヘッダー行が変更され、テーブルが更新されますmodify
。index
index
残念ながら、ヘッダーのないテーブルでキーワードを使用する方法がわかりません。
これまでのところ、次のようにコーディングしました。
しかし、それが正しいかどうかはわかりません。
dynamic - ABAP での動的内部テーブルのループ - 未知の属性
ユーザーからの入力文字列としてテーブル名を使用して動的内部テーブルを構築しましたが、同じものをループするにはどうすればよいですか?
MWE を見つけてください: