シナリオ
私たちは、データベーステーブルAを持っていると仮定して、我々はCDSはそれのためのビューBをリダイレクト作成し、READ OPEN SQLは、テーブルAで行われ、その後たびは、ABAPカーネルは、ビューBへこの要求を指示し、からのコンテンツとの要求を提供しますB.
前提
テーブルAのリダイレクトビューとして認定ビューBを作るためには、AとBの両方が正確に同じ順序とtehcnical名前と同じフィールドを持っている必要があります。
の仕方
- ロジックを実証するために、私は以下のように4つのフィールドを持つER9 / 001でZテーブルを作成します。
テストへの簡単なレポートを書きます:
DATA: lt_table TYPE STANDARD TABLE OF zcomm_product.
SELECT * INTO TABLE lt_table FROM zcomm_product.
WRITE: / sy-dbcnt.
この表を作成したばかりしているので、それは、0を出力するために期待されている内部にはコンテンツがありません。
- 以下のソースコードを使用して新しいCDSビューを作成します。
@AbapCatalog.sqlViewName: 'zmara_cds'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Redirect ZCOMM_PRODUCT to MARA'
define view Zp_Mara_Redirect as select from mara {
mara.matnr as PRODUCT_ID,
case
when (mara.mtart = 'HAWA' or mara.mtart = 'INTR')
then '01'
when (mara.mtart = 'DIEN' or mara.mtart = 'COUP')
then '02'
else ''
end as product_Type,
mara.mtart as object_family
}
注:これは単なる一例であるので、MARA.MTARTにZCOMM_PRODUCT.PRODUCT_TYPEとの間のマッピングは、ビジネスの観点から意味をなさない、私は、データベーステーブルからのフィールドは、CDSにマッピングする方法を説明するためにそれを使用する(フィールドを表示します名前と技術的なタイプ)は等しくなければなりません。
CDSビューが完了したら、それをアクティブにし、SE11のメニューを経由してデータベース・テーブルにビューを割り当てます。
行われたら、もう一度レポートを実行します。今回は、あなたがZCOMM_PRODUCTが実際にMARAテーブルにリダイレクトされ、空のテーブルにSELECT OPEN SQLを見ることができる - エントリの多くが戻りました。
あなたはTCODEのSE16からZCOMM_PRODUCTのコンテンツを閲覧する際のリダイレクトも自動的に行われます。
どのようにリダイレクト作業フードの下
あなたはST05トレースを実行する場合、あなたはリダイレクトが自動的にABAPランタイムによって行われて観察することができ、アプリケーション側から対処する必要はありません。
もっとジェリーの元の記事については、してください公共の番号「王Zixi」に注意を払います: