SAP NetWeaver ABAP基盤:概要:データベース・テクノロジー
0 40

このトピックでは、以下の特徴から、NetWeaver ABAP Platformのデータベース・テクノロジーを説明します。

  • ビジネスロジックもデータベース化
  • クライアントによる論理分割
  • ダイアログを跨る作業論理単位

NetWearver ABAP Platformでは、ビジネスデータのみではなく、ビジネスロジックが反映されたアプリケーション及びパラメータ設定情報そのものもデータベースで統合的に管理されます。 NetWearver ABAP Platformのデータベースにおけるテーブルは、出荷クラスによって以下のように分類されます。

出荷クラス主に格納されるデータ
システムテーブルプログラムといった開発オブジェク等
制御ロジックロジック制御情報等
カスタマイジングテーブルビジネス設定情報等
アプリケーションテーブルマスタやトランザクションといった業務データ等

SapECCシステムはクライアントによって論理的に分けられます。 実体となる1つのシステム上に、自由に複数のクライアントを定義できて、仮想的に複数のシステムが存在しているかのように扱うことができるのです。 各クライアントには、独自のデータ環境があり、すなわち、クライアントごとに独自のアプリケーションデータと殆どの設定データがあります。 あるクライアントに属するデータは、他のクライアントのユーザからアクセスできないような仕組みになっています。この仕組みを実現するためには、以下のような仕掛けが掛けられています

  • クライアント依存テーブルに全てクライアント番号を第1PKとして持たせる
  • OpenSQLによるDBアクセス処理で対象クライアント制御条件を裏で自動的に付加する

クライアントは3桁の数字で識別されます、インストール時のデフォルトクライアントは以下の通りです。

クライアント番号用途
000SAP標準クライアント
001ドイツ版のカスタマイズサンプル
066アーリーウォッチ用クライアント

普通の意味では、アプリケーションの動作のうち、「ある意味を持った一連の処理のまとまり」のことをトランザクションといいます。そして、トランザクション制御とはこの一つのトランザクション内でデータの整合性が保たれるようにすることです。

SapECCでは、正式的な名称として、この「ある意味を持った一連の処理のまとまり」を「トランザクション」ではなく、「作業論理単位(Logical Unit of Work、略するとLUW)」と呼んでいます。関連がありますが、SapECCの「トランザクション」は、トランザクションコードを使用して開始するアプリケーションプログラムのことと定義されています。

SapECCでは、DBMSが実装済のトランザクション制御の他に、業務レベルの作業論理単位制御をサポートしています。この二つの制御は、それぞれDB LUWとSAP LUWに呼ばれます。

DB LUW

DB LUW は、データが常に整合性を持つようにするために、OracleやMSSQLなどのDBMS(データベース管理システム)が使用するメカニズムです。DBMS側では、一般的にこのDB LUWを「トランザクション」と呼びます。

SAPのDB LUWは、以下のように動作します。

  • DB LUWは一つのワークプロセスの中に完結しなければなりません
  • ワークプロセスが正常又は異常終了する際に、コミットされていないDB更新に対して、暗黙的なデータベースコミット又はロールバックを行います
  • プログラムが汎用モジュールDB_COMMITを呼び出して明示的にデータベースコミットを行うことができます。
  • プログラムがSAP LUWの命令(COMMIT WORK、ROLLBACK WORK)を呼び出してSAP LUWを終了する同時に、DB LUWも終了します。
  • 開始されるときや、前のDB LUW がコミット又はロールバックで終了するときに、新しいDB LUWが開始されます。
  • DB LUW内で実行されるDB変更はでDBロックを起こします、そのDBロックはLUWの終了に伴い、自動的に解放されます。

SAP LUW

DB LUWはデータベースに対して分割できない連続したデータ上の操作であり、完全に終了するか、まったく実行しないかのいずれかにする必要があります。SAP LUWは、システムに対して分割できない業務処理であり、その業務処理全体を完了するか、あるいはまったく実行しないかのいずれかにする必要があります。SAP-LUW は通常、複数のダイアログステップや複数のDB LUW に及ぶことがあります。 同じSAP LUW で発生したDBデータ変更要求は、全て最後にデータベースに反映されることになります。

SAP LUWの終了

SAP LUWは、DB LUWのように暗黙的に終了することがありません。「COMMIT WORK」や「ROLLBACK WORK」命令を発行して、明示的に終了させる必要があります。

SAP LUWの原子性

一つのSAP LUWの中の各更新は複数のダイアログステップに跨って発行されることがよくありますが、発行時に即時に実行されるとすれば、別々のDB LUWのDBデータ操作になりますので、作業単位としての原子性が完全に崩れてしまうことになります。

NetWeaverABAPでは、それらの更新を即時実行せずに、「更新依頼」オブジェクトを登録しておきます。「commit work」命令でSAP LUWがコミットされる際に、登録された「更新依頼」を一つのDB LUWで実行することにより、作業単位としての原子性を維持します。

 

SAP LUWの単位

SAP LUW毎に、違う更新キーが割り当てられます、更新依頼はその更新キーと一緒に更新キューに登録されますので、それにより同じSAP LUWのものかどうかを判断できます。

アプリケーションプログラム( TYPE 1、TYPE M)はそれぞれ別のSAP LUWをもっています。但し、トランザクション(機能)ではなく、「ダイアログモジュール」として起動される場合は、呼び出し元のSAP LUWで実行されることになります。

SAP LUWとDB LUW

NetWeaverABAPではワークプロセスごとに、固定DB接続1 つが割り当てられています。そのDB接続でDB LUWが実行されますので、ワークプロセスは常に一つのDB LUWと結び付いております。

一方、SAP LUWは論理的な単位を提供しています、SAP LUWにおける各更新依頼は、結局、DB LUWによりデータの変更をデータベースに反映しないといけないですが、そのDB LUWは新たに生成されるものではなく、更新依頼が実行されるワークプロセスの固有のDB LUWとなります。そのDB LUWで発行された別の即時DB更新がもしあれば、同時にコミットされます、なお、エラーが発生する場合も、一緒にロールバックされることになります。

0 40
みんなのツイート (0)

関連サマリー


  • BASIS 0 Votes 415 閲覧数


    このトピックでは、NetWeaver ABAPの権限チェックの実装を取り上げて説明します。

    権限チェックのタイミング

    権限のチェックは、プログラムレベルのチェックとシステムレベルのチェックと2種類があります。

    プログラムレベルのチェック

    プログラムレベルでのチェックは、プログラムでAUTHORITY-CHECKを明示的に組み込む必要があります。 AUTHORITY-CHECK によって、ユーザに指定されたプロファイルが検索され、AUTHORITY-CHECKに指定された権限オブジェクトの権限をユーザが持っているかどうかが確認されます。検索された権限のいずれかが必要な値に一致する場合は、チェックは成功です。

    システムレベルのチェック

    システムレベルのチェックは、個別にプログラミングする必要がなく、システムより自動的に実施される権限チェックです。トランザクションやレポートプログラムが起動する際に、ユーザが該当機能を実行できる権限をもっているかどうかをシステムよりチェックされます。

    トランザクション起動時

    トランザクションが起動する際に、システムから以下のチェックは順に実施されます。

    トランザクションコードは有効か
    テーブルTSTCチェックトランザクションがシステム管理者によってロックされているか
    テーブルTSTCチェックS_TCODE権限チェック 
    ユーザが実行できるトランザクションコード一覧に該当トランザクションコードがはいっていないかをチェックされます。追加権限チェック
    SE93で該当トランザクションに追加権限が割り当てられた場合、それがチェックされます。割当権限チェック
    SU24で該当トランザクションに権限オブジェクトを割り当て且つチェックフラグを設定された場合、それがチェックされますレポートクラスの開始

    レポートに権限クラスを割り当てることによって、追加権限チェックを実行することができます。

    RFC汎用モジュールの呼出

    RFC汎用モジュールがRFCクライアントプログラムまたは他のシステムによって呼び出されると、呼び出されたシステムの権限オブジェクトS_RFC の権限チェックが実行されます。

    権限チェックのカスタマ実装

    権限設計は、業務運用でどこかの場面で何かの権限制御をかけなければならないという要件から始まります。 例として、「販売伝票一覧を出力するレポート処理で、ログオンユーザが権限を持っていない販売エリアの伝票を出力しない」という権限制御を取り上げます。

    権限オブジェクトの定義

    権限オブジェクトV_VBAK_VKOは、例の権限制御を実現できる標準権限オブジェクトです。

    権限クラス権限オブジェクト権限項目SDV_VBAK_VKOVKORG(販売組織)VTWEG(流通チャネル)SPART(製品部門)ACTVT(アクティビティ)権限チェックの実装

    以下の権限チェック処理で、ユーザが権限を持っていない販売エリアのデータが出力対象にならないように制御しております。

    LOOP AT T_VBAK INTO L_VBAK. AUTHORITY-CHECK OBJECT 'V_VBAK_VKO' ID 'VKORG' FIELD L_VBAK-VKORG ID 'VTWEG' FIELD L_VBAK-VTWEG ID 'SPART' FIELD L_VBAK-SPART ID 'ACTVT' FIELD '03'. IF NOT SY-SUBRC IS INITIAL. DELETE T_VBAK. ENDIF. 

    ENDLOOP.


  • BASIS 0 Votes 140 閲覧数


    このトピックでは、権限に関わるシステムテーブルを抜粋して説明します。

    概要 カテゴリ技術名称名称説明ユーザUSR01ユーザマスタレコード基本属性を定義USR02ユーザログオンデータユーザログオンデータを定義USR03ユーザアドレスデータユーザアドレスデータを定義USR04ユーザ権限ユーザに割り当てられた権限プロファイル情報を格納USR05ユーザマスタパラメータIDユーザパラメータ値を格納USR21ユーザ名アドレスキーの割当ユーザのアドレスキー値を格納ADR2電話番号 (アドレス管理)ユーザの電話番号を格納ADR3FAX 番号 (アドレス管理)ユーザのFAX番号を格納ADR6電子メールアドレスユーザの電子メールアドレスを格納ロールAGR_AGRS集合ロール内のロール-AGR_DEFINEロール定義 -AGR_FLAGSロール属性-AGR_HIERロールメユー構造-AGR_1016ロールプロファイル-AGR_1250ロール権限データ(ヘッダ)-AGR_1251ロール権限データ(項目値明細)-AGR_1252ロール権限データ(組織要素)-権限オブジェクトTOBC権限クラス権限クラスを定義TOBJ権限オブジェクト権限オブジェクトと権限オブジェクトの項目構成を定義TACTZ権限オブジェクトごとの有効アクティビティ権限オブジェクトごとの有効アクティビティ権限プロファイルUST10C複合権限プロファイル含められている単一ロールを定義UST10S単一権限プロファイル権限プロファイルの権限名を定義UST12権限プロフィル権限値権限オブジェクト別に権限プロファイル毎の各権限項目値を格納権限(ユーザ)USR10ユーザマスタ権限プロファイル-USR12ユーザマスタ権限値-USR16ユーザ権限用変数の値-権限(トランザクション)TSTCAトランザクションコード権限の値SE93で照会・更新USOBTトランザクション>権限オブジェクトSU22/SU24で照会・更新USOBXUSOBTのチェック用テーブル-USOBT_Cトランザクション>権限オブジェクト(カスタマ)-USOBX_CUSOBT_Cのチェック用テーブル-詳細(ユーザ系)USR01テーブル

    ユーザマスタレコード

     項目一覧 No.PK技術名称名称説明1○BNAMEユーザユーザID2 STCOD開始メニュー-3 SPLD出力デバイス-4 DATFM日付書式-5 DCPFMISOコード-6 LANGU言語- USR02テーブル 

    ユーザログオンデータ

     項目一覧 No.PK技術名称名称説明1○BNAMEユーザユーザID2 BCODE初期パスワード-3 USTYPユーザタイプ- USR04テーブル 

    ユーザ権限

     項目一覧 No.PK技術名称名称説明1○BNAMEユーザユーザID2 NRPROプロファイル数-3 PROFSプロファイル名リスト- USR05テーブル 

    ユーザパラメータ

     項目一覧 No.PK技術名称名称説明1○BNAMEユーザユーザID2 PARIDパラメータID-3 PARVAパラメータ値-

    定義可能なパラメータ名はTPARAテーブルに定義されます。

    詳細(ロール)AGR_DEFINEテーブル

    ロール定義 

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール名称-2 TEXTテキスト- AGR_FLAGSテーブル 

    ロール属性

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール名称-2○FLAG_TYPE属性タイプ-3 FLAG_VALUE属性値- AGR_HIERテーブル 

    ロールメユー構造 AGR_HIERT

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール名称-2○OBJECT_IDメニューID-3 FOLDER親メニューID-4 SORT_ORDERソート順番-5 MENU_LEVELメニューレベル-6 SAP_GUID一意 ID-7 ATTRIBUTES親メニューID-8 SOURCE_AGR色-9 ICONメニューエントリアイコン-10 APPL_ALIASメニューエントリテキスト- AGR_1016テーブル

    ロールプロファイル名称

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール-2○COUNTERカウンタID-3 PROFILEプロファイル-4 GENERATED生成済-5 PSTATEバージョン- AGR_1250テーブル

    ロール権限データ(ヘッダ)

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール-2○COUNTERカウンタID-3 OBJECT権限オブジェクト-4 AUTH権限値-5 MODIFIEDオブジェクトステータス- AGR_1251テーブル

    ロール権限データ(項目値明細)

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール-2○COUNTERカウンタID-3 OBJECT権限オブジェクト-4 AUTH権限値-5 FIELD項目名-6 LOW値-7 HIGH値- AGR_1252テーブル

    ロール権限データ(組織要素) ロールが関連付ける組織(販売組織、購買組織、会社コードなど)の情報を格納します。 利用可能な組織の変数名がUSVARに定義されます。

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール-2○COUNTERカウンタID-3 VARBL組織変数名-4 LOW値-5 HIGH値-AGR_USERSテーブル

    ユーザへのロール割当

     項目一覧 No.PK技術名称名称説明1○AGR_NAMEロール-2○UNAMEユーザ-3○FROM_DAT開始日付-4○TO_DAT終了日付-5 COL_FLAG集合ロールからの割当-詳細(権限オブジェクト系)TOBCテーブル

    権限クラス 

     項目一覧 No.PK技術名称名称説明1○OCLSS権限クラス- TOBJテーブル 

    権限オブジェクト

     項目一覧 No.PK技術名称名称説明1○OBJCT権限オブジェクト名称-2 FIEL1~FIEL0項目名-3 OCLSS権限クラス- TACTZテーブル 

    権限オブジェクトごとの有効アクティビティ

     項目一覧 No.PK技術名称名称説明1○BROBJ権限オブジェクト名-2○ACTVTアクティビティ-詳細(権限プロファイル系)UST10Cテーブル

    複合権限プロファイル

     項目一覧 No.PK技術名称名称説明1○PROFN複合プロファイル-2○AKTPSバージョン-3○SUBPROF単一プロファイル-UST10Sテーブル

    単一権限プロファイル

     項目一覧 No.PK技術名称名称説明1○PROFNプロファイル-2○AKTPSバージョン-3 OBJCT権限オブジェクト-4 AUTHユーザマスタ:権限名-UST12テーブル

    権限プロフィル権限値

     項目一覧 No.PK技術名称名称説明1○OBJCT権限オブジェクト-2○AUTHユーザマスタ:権限名-3○AKTPSバージョン-4○FIELD権限項目-5○VON権限項目値-6○BIS権限項目値-詳細(権限(ユーザ)系)USR10テーブル

    ユーザマスタ権限プロファイル

     項目一覧 No.PK技術名称名称説明1○PROFNプロファイル名-2○AKTPSバージョン-3 TYPタイプ-4 NRAUTプロファイル/権限の数-5 AUTHS権限-USR12テーブル

    ユーザマスタ権限値

     項目一覧 No.PK技術名称名称説明1○OBJCT権限オブジェクト-2○AUTHユーザマスタ:権限名-3○AKTPSバージョン-4 VALS権限値-


  • BASIS 0 Votes 90 閲覧数


    このトピックでは、リポジトリ情報が格納される各システムテーブルを抜粋して説明します。

    リポジトリ管理技術名称説明主要項目TADIRリポジトリオブジェクトのディレクトリPGMIDプログラムID
    OBJECTオブジェクトタイプ
    OBJ_NAMEオブジェクト名称SRCSYSTEM マスタシステム
    DEVCLASSパッケージ
    MASTERLANGマスタ言語
    COMPONENTソフトウェアコンポーネント ABAPアプリケーション 技術名称説明主要項目TAPLPアプリケーションディレクトリAPPL アプリケーションカテゴリ名KTEXT アプリケーション短文テキスト ABAPディクショナリ 技術名称説明主要項目DD02L DBテーブルTABNAME テーブル名TABCLASS テーブルカテゴリ
    BUFFERED バッファリング
    CONTFLAG 出荷クラスDD08LDBテーブル 外部キーTABNAME テーブル名
    FIELDNAME 項目名CHECKTABLE チェックテーブル
    FRKART 依存度DD05SDBテーブル 外部キー 項目TABNAME テーブル名
    FIELDNAME 項目名
    PRIMPOS 位置FORTABLE外部キーテーブル
    FORKEY外部キー項目DD09LDBテーブル 技術設定TABNAME テーブル名TABKATサイズカテゴリ
    TABARTデータクラス
    PUFFERUNGバッファタイプ
    TRANSPFLAG透過フラグ
    BUFALLOWバッファ可能DD12LDBテーブル 二次索引SQLTABテーブル名
    INDEXNAME索引 IDDD17SDBテーブル 二次索引 項目SQLTABテーブル名
    INDEXNAME索引 ID
    POSITIONテーブル位置FIELDNAME項目名
    DESCFLAG降順DD03LDBテーブル 項目TABNAME テーブル名
    FIELDNAME項目名
    POSITIONテーブル位置KEYFLAGキー項目
    MANDATORY必須項目
    ROLLNAMEデータエレメント
    CHECKTABLEチェックテーブル
    INTTYPE ABAP データ型
    DATATYPEデータ型DD35LSAPテーブル項目 検索ヘルプ割当TABNAME テーブル名
    FIELDNAME項目名SHLPNAME検索ヘルプ名DD36SSAPテーブル項目 検索ヘルプパラメータTABNAME テーブル名
    FIELDNAME項目名
    SHLPFIELD検索ヘルプ ParaSHTYPE割当タイプ
    SHTABLE割当テーブル
    SHFIELD割当項目DARTT技術設定 データクラスDGKAT技術設定 サイズカテゴリDD25LテーブルビューVIEWNAMEビュー名ROOTTAB一次テーブル
    VIEWCLASSビュータイプ
    CUSTOMAUTH出荷クラス
    VIEWGRANT更新ステータス
    GLOBALFLAGテーブル更新DD26Sテーブルビュー 基本・結合テーブルVIEWNAMEビュー名
    TABNAME基本テーブルOBJPOS反復グループ位置DD27Sテーブルビュー項目VIEWNAMEビュー名
    OBJPOS反復グループ位置VIEWFIELDビュー項目
    TABNAME基本テーブル
    FIELDNAME基本項目
    KEYFLAGキー項目
    ROLLNAMEデータエレメント
    RDONLY更新フラグDD28Sテーブルビュー 選択条件CONDNAME選択条件 ID
    POSITION反復グループ位置TABNAMEテーブル名
    FIELDNAME項目名
    NEGATION否定
    OPERATOR演算子
    CONSTANTS定数
    CONTLINE継続行フラグ
    AND_ORDD29LテーブルビューとマッチコードIDの選択条件CONDNAME選択条件 IDVIEWNAMEビュー名
    LINE_CNT反復グループ位置DD01LドメインDOMNAME ドメイン名
    AS4LOCAL有効化ステータスDATATYPE データ型
    LENG 長さ
    DECIMALS 小数点以下桁数
    ENTITYTAB  値テーブル
    CONVEXIT 変換ルーチンDD07Lドメイン値DOMNAME ドメイン名
    AS4LOCAL有効化ステータス
    VALPOS ドメイン値キーDOMVALUE_L  ドメインの値:下限/単一値
    DOMVALUE_H  ドメインの値:上限DD30L検索ヘルプSHLPNAME検索ヘルプ名SELMETHOD選択メソッド
    SELMTYPE選択カテゴリ
    SELMEXIT検索ヘルプ ExitDD32S検索ヘルプ 項目SHLPNAME検索ヘルプ名
    FIELDNAME検索ヘルプ ParaFLPOSITION検索ヘルプ項目位置
    ROLLNAMEデータエレメント
    SHLPINPUT IMPORT param.
    SHLPOUTPUT EXPORT param.
    SHLPSELPOS 選択位置
    SHLPSELDIS 選択表示
    DATATYPE データ型DD31S複合検索ヘルプ 割当SHLPNAME検索ヘルプ名
    SUBSHLP検索ヘルプVIASHLP検索ヘルプ (親)DD33S検索ヘルプ 項目割当SHLPNAME検索ヘルプ名
    FIELDNAME検索ヘルプ Para
    SUBSHLP検索ヘルプ
    SUBFIELD参照パラメータDD25LロックオブジェクトDD26Sロックオブジェクト 二次テーブルDD27S ロックオブジェクト 項目DDLOGバッファ同期DDSYNバッファ同期化のパラメータABAPプログラム技術名称説明主要項目REPOSRCレポートソースコードPROGNAMEプログラム名CLASPGM クラス
    SUBCプログラム Type
    APPL Application
    SECU権限グループ
    DATA Source CodeTLIBG汎用グループTFDIR汎用モジュールFUNCNAME汎用モジュールPNAMEプログラム名
    FMODEモード
    UTASK更新FUPARAREF汎用モジュール(パラメータ)FUNCNAME汎用モジュール
    PARAMETERパラメータ名
    PARAMTYPEパラメータ TypeSTRUCTURE関連する型
    DEFAULTVALデフォルト値
    OPTIONALオプション paramsENLFDIR汎用モジュール(追加属性)FUNCNAME汎用モジュールAREA汎用グループ
    ACTIVE有効
    GENERATED生成済
    FREEDATEリリース日付D020SDynpro 内容PROGプログラム名DNUM  Dynpro番号
    TYPE  Dynproタイプ 
    FNUM 
    DGRPD021TDynpro キーワードテキストPROGプログラム名
    LANG言語
    FLDN項目名DTXT画面のキーワードテキストVARIDバリアント一覧REPORTレポート名
    VARIANTバリアントVARIS選択画面へのバリアント割当REPORTレポート名
    DYNNR Dynpro 番号
    VARIANTバリアントD342LGUIステータスPROGNAME プログラム名称
    STATUS GUI ステータス
    TYPEロードタイプD347TGUI表題PROGNAMEプログラム名称
    SPRSL言語
    OBJ_CODE表題番号SEOCLASSクラス/インタフェースCLSNAME クラス名称CLSTYPEクラスタイプ
    UUIDSEOCLASSDFクラス/インタフェース定義CLSNAME クラス名称
    VERSIONバージョンCATEGORYカテゴリ
    EXPOSURE可視性
    STATEステータス
    RELEASEリリース
    CLSEMBED埋込可能
    CLSABSTRCT抽象
    CLSFINAL 最終クラスSEOCOMPOクラス/インタフェースコンポーネントCLSNAME クラス名称
    CMPNAMEコンポーネントCMPTYPEコンポーネントタイプ
    MTDTYPEメソッドタイプSEOCOMPODFクラス/インタフェースコンポーネント定義CLSNAME クラス名称
    CMPNAMEコンポーネント
    VERSIONバージョンEXPOSURE可視性
    STATEステータスSEOFRIENDSクラス/インタフェース フレンド属性CLSNAME クラス名称
    REFCLSNAME参照クラス名称
    FRIENDTYPEフレンドタイプ
    VERSIONバージョンSTATEステータスSEOIMPLRELクラス/インタフェース 属性(参照型定義)CLSNAME クラス名称
    CMPNAMEコンポーネント
    VERSIONバージョンREFCLSNAME参照クラス名称
    IRLTYPE関係タイプSEOMETARELクラス/インタフェース スーパークラス・インタフェース定義CLSNAME クラス名称
    REFCLSNAME参照クラス名称
    VERSIONバージョンSTATEステータスステータス
    RELTYPEクラス間の関係タイプ
    RELNAME関係タイプ名SEOREDEFクラス/インタフェース 定義のオーバーライド)CLSNAME クラス名称
    REFCLSNAME参照クラス名称
    VERSIONバージョン
    MTDNAMEメソッド名称MTDABSTRCT抽象
    MTDFINAL Final
    ATTVALUE初期値SEOSUBCOクラス/インタフェース サブコンポーネントCLSNAME クラス名称
    CMPNAMEコンポーネント
    SCONAMEサブコンポーネントCMPTYPEコンポーネントタイプ
    MTDTYPEメソッドタイプSEOSUBCODFクラス/インタフェース サブコンポーネント定義CLSNAME クラス名称
    CMPNAMEコンポーネント
    SCONAMEサブコンポーネント
    VERSIONバージョンLOCKEDロック
    PARDECLTYP宣言レベル
    PARPASSTYP引渡しタイプ
    TYPTYPE型指定SEOTYPEPLSクラス/インタフェース データ型グループ割当CLSNAME クラス名称
    TYPEGROUPタイプグループSHDSVCI画面バリアントSCVARIANT画面バリアントPROGNAMEプログラム
    DYNPRO Dynpro番号SHDSVFVCI画面バリアント: 項目内容SCVARIANT画面バリアント
    FIELDNAME項目名
    STEPLステップループ行FIELDVALUE項目値
    --SHDTVUクライアント依存トランザクションバリアントTCVARIANT トランザクションバリアントTCODE トランザクションコードSHDTVクライアント依存トランザクションバリアントTCODE トランザクションコード
    TCVARIANT トランザクションバリアントSHDTVCIUクライアント非依存トランザクションバリアントTCVARIANT トランザクションバリアントTCODE トランザクションコードSHDTVCIクライアント非依存トランザクションバリアントTCODE トランザクションコード
    TCVARIANT トランザクションバリアントTSTCトランザクションコードTCODEトランザクションコードPGMNAプログラム
    DYPNO Dynpro--WebDynproプログラム技術名称説明主要項目WDY_COMPONENTWeb Dynpro: ComponentCOMPONENT_NAMEコンポーネント名称
    VERSIONプログラムステータス
    TYPEタイプMODULE‗POOL_NAMEモジュールプール名拡張技術名称説明主要項目MODSAP拡張プロジェクト(カスタマEXIT)NAME拡張プロジェクト名称
    構成要素TYPタイプ
    MEMBER拡張名称DEVCLASSパッケージMODACT拡張実装(カスタマEXIT)NAME拡張名
    TYP構成要素タイプ
    MEMBER拡張BADI_SPOTBAdi定義BADI‗NAME BAdi定義名称ENHSPOTNAME拡張スポット名称ENHOBJ拡張オブジェクトENHNAME拡張実装
    VERSIONバージョン
    OBJ_TYPオブジェクトタイプ
    OBJ_NAMEオブジェクト名称


  • BASIS 0 Votes 197 閲覧数


    このトピックでは、移送に関わるシステムテーブルを抜粋して説明します。

    概要

    以下の表でテーブル一覧を示します。

    No.カテゴリ技術名称名称説明1システム構成TCETRAL移送レイヤ移送レイヤの情報を格納2TCERELE移送レイヤの詳細-3TMSCDOM移送ドメイン移送ドメインの情報を格納4TMSCDES宛先宛先の情報を格納5TMSCNFS移送グループ移送ドメインの情報を格納6TMSCSYSシステムシステムの情報を格納7変更管理E070依頼/タスクのヘッダ依頼/タスクのヘッダ情報を格納8E070A依頼の属性依頼の属性情報を格納9E070C依頼/タスクのソース/対象クライアント依頼/タスクのソースクライアントを格納10E070L依頼/タスクの番号割当用索引最後に割り当てれた番号を格納11E071依頼/タスクの明細変更されたオブジェクト情報を格納12E071K依頼/タスクのキーエントリテーブルデータの場合のキー情報を格納13TTOBJECTS翻訳関連に応じた移送オブジェクト-14移送管理TSYIMPSTAT移送依頼インポートステータス-15TMSBUFREQ移送バッファの移送依頼-詳細(システム構成)  TCETRALテーブル 

    移送レイヤ、移送レイヤの情報を格納

     項目一覧 No.PK技術名称名称説明1○VERSIONバージョン-2○TRANSLAYER移送レイヤ- TMSCDOMテーブル 

    移送ドメイン、移送ドメインの情報を格納

     項目一覧 No.PK技術名称名称説明1○DOMNAM移送ドメイン-2 DOMCTLドメインコントローラ- TMSCDESテーブル 

    宛先、宛先の情報を格納

     項目一覧 No.PK技術名称名称説明1○RFCDESRFC宛先-2○LIMBOフラグ-3 RFCTYPE接続タイプ-4 RFCLIBFLG負荷分散-5 RFCHOST対象ホスト-6 RFCSERVサービス-7 RFCCLIENTクライアント-8 RFCUSERユーザ-9 RFCAUTHパスワード-10 DOMNAM移送ドメイン- TMSCNFSテーブル 

    移送グループ、移送ドメインの情報を格納

     項目一覧 No.PK技術名称名称説明1○DOMNAM移送ドメイン-2○NFSGRP移送グループ- TMSCSYSテーブル 

    システム、システムの情報を格納

     項目一覧 No.PK技術名称名称説明1○DOMNAM移送ドメイン-2○SYSNAMシステム名-3○LIMBOフラグ-4 NFSGRP移送グループ-5 DESADMRFC宛先-6 INSTNOインストール番号-詳細(移送系) E070テーブル

    依頼/タスクのヘッダ

     項目一覧 No.PK技術名称名称説明1○TRKORR依頼/タスク番号-2 TRFUNCTIONタイプ依頼の場合、K(ワークベンチ依頼)やW(カスタマイジング依頼)といった分類が格納されます3 TRSTATUSステータスD(修正可能)、R(リリース済)などがあります4 TARSYSTEM移送対象-5 KORRDEVカテゴリCUST(クライアント依存)、(クライアント非依存)があります6 AS4USER所有者-7 STRKORR上位移送- E070Lテーブル 

    CTS: 依頼/タスクの番号割当用索引

     項目一覧 No.PK技術名称名称説明1○LASTNUM識別-2 TRKORR移送/タスク番号-

    E070Lには何番から採番すれば良いのかという情報を保持しています。 開発機を何らかの理由で過去の状態に戻すと、移送依頼番号も、また若い番号から採番されてしまいます。 例えば、KDA0900100 まで採番された状態に戻ると、KDA0900100 から KDA0900200 までは2回繰り返されることになってしまい、それらの移送依頼をリリースしようとすると、移送ディレクトリに存在する過去の移送ファイルと重複してしまうため、エラーになってしまいます。 このような「移送依頼番号の重複」を回避するためには、移送依頼番号の情報を管理しているテーブル E070L の内容を移送依頼番号が重複しないような大きい番号に編集してあげればOKです。 ただ、このテーブルは編集不可に設定されているため、T-cd:SE16 では編集できません。 データベースレベルで直接 SQL を実行して編集します。 update E070L SET TRKORR = 'KDA0900300' WHERE LASTNUM = 'TRKORR';

    E071テーブル

    依頼/タスクのオブジェクトエントリ

     項目一覧 No.PK技術名称名称説明1○TRKORR依頼/タスク番号-2○AS4POS明細行番号-3 PGMIDプログラムID-4 OBJECTオブジェクトタイプ-5 OBJ_NAMEオブジェクト名-6 LOCKFLAGロックステータス-


  • BASIS 0 Votes 132 閲覧数


    ユーザ

    ユーザ毎に設定・保持されるデータは、ユーザマスタレコードと呼ばれます。

    ユーザの基本データ

    ユーザの基本データには、アドレスデータ、ログオンデータ、デフォルトデータがあります。

    アドレス 
    姓・名や、職務、文書、連絡方法などの情報が含められます。ログオンデータ 
    パスワードや有効期限などの情報が含められます。デフォルト
    ログオン言語や、書式(数値、日付、時刻)、スプール制御などの情報が含められます。ユーザパラメータ

    ユーザパラメータによって、SAP項目に初期値が指定されます。項目を指定すると、初期値が自動的に表示されます。項目定義によって、そのエントリをユーザ入力値に置き換えることもできます。 例として以下のユーザパラメータを取り上げます。

    BUK
    会社コードEKO
    購買組織WRK
    プラント

    設定可能なパラメータはすべてシステムテーブルTPARAに登録されています。

    ユーザとロール

    ユーザに単一又は集合ロールを割り当てることができます。ユーザに複数ロールが割り当てられた場合は、結果は論理和になります。

    ユーザと権限プロファイル

    ユーザにマニュアル権限プロファイルを割り当てることができます。ユーザに複数権限プロファイルが割り当てられた場合は、結果は論理和になります。

    ロール

    ロールはユーザをグループ化する手段を提供します。 ロールは権限を割当する単位とするほか、ユーザメニュー構成を定義する単位にもなります。 ロールは、部署や役職に基づいてを設計することが多い。

    ロールの分類

    ロールには単一ロールと集合ロールがあります。 単一ロールには、ユーザの権限データとログオンメニューが含まれます。 集合ロールには、任意の数の単一ロールが含まれます。

    ロールと権限

    単一ロールの権限データから権限プロファイルが自動生成されます。ここの権限プロファイルは生成済権限プロファイルと呼ばれます。

    ツール

    標準機能から以下の権限管理ツールが提供されておいます。

    SU01 ユーザ管理
    ユーザデータの登録、変更PFCG ロール更新
    ロールの登録、変更SUIM ユーザ情報システム


  • BASIS 0 Votes 49 閲覧数


    このトピックでは、NetWeaver ABAP(ECC)の権限制御のコンセプトや概要を取り上げて説明します。

    前書き権限とは

    権限とは、システムのユーザに、ある範囲のことを正当に行うことができるものとして与えられている能力、またその能力が及ぶ範囲のことです。

    ユーザに付与される権限には、以下の情報が定められます。

    対象
    権限でアクセス可能な対象(リソースや処理など)を定義します。範囲
    対象に対してアクセス可能な範囲を定義します。例えば、対象がファイルなら、読み取りができるかどうか、書き込めるかどうか、アクセスされる範囲を制御できます。期間
    権限の有効期間を指定します。権限制御とは

    権限制御とは、システムが、各ユーザに対して、事前に付与された権限に従って、処理の実行やアクセスの範囲を制御することです。

    権限制御は、通常、OSやデータベース、アプリケーションなど各分野でそれぞれ実施されます。

    OS
    アプリケーション、サービス、ファイルといったリソースのアクセス権限をユーザ・グループ毎に制御します。データベース
    テーブル、ビューといったデータベースオブジェクト単位で、ユーザ・グループ毎にデータの照会、更新、作成、削除の権限を制御します。アプリケーション
    アプリケーション側で必要に応じてビジネスレベルの権限制御を行います。目的と機能

    データベース側では、テーブルレベルのアクセス制御が仕組みに組み込まれているのは普通ですが、テーブルをさらに行レベルのアクセス制御をかけることは通常サポートされません。

    例えば、各支店の売上データが格納されたテーブルがあるとします。各支店の従業員が所属支店のデータしか参照できないというセキュリティ要件はよくあるものですが、データベース側でカーバできないため、アプリケーション側で何らかの対応をしなければなりません。

    NetWeaver ABAPは、アプリケーションレベルで独自の権限仕組みを導入ことにより、上記のビジネス要件に統合化したソリューションを提供します。

    NetWeaver ABAPの権限制御を利用することにより、以下の機能を実現することができます。

    ユーザ(グループ)毎に各機能の実行可否を制御
    例えば、経理部の人を購買システムの機能を実行できないように権限制御をかけることができます。ユーザ(グループ)毎にアクセスデータ範囲を制御
    例として取り上げられた支店毎の制御をかけることができます。特徴

    NetWeaver ABAPの権限制御は以下の特徴があります。

    できることの積み上げ
    できることのみを定義でき、できないことの定義はできません。これはシンプルという利点もありますが、膨大になりがち、管理が大変になるというデメリットがあります。言語レベルでサポート
    権限チェックするためのコマンド(authority-check) がABAP言語に組み込まれています。構成要素

    Netweaver ABAPの権限コンセプトの構成要素は開発局面と運用局面に分けて整理することができます。

    開発局面
    プログラムを実装する際に、機能のセキュリティ要件を元に、実行時にどうな権限チェックをかけないといけないかを設計して、そのロジックをプログラムに組み込んでおく必要があります。 
    このような権限チェックの内容と方法を定義するのは権限オブジェクトという構成要素になります。
    権限オブジェクトはコア要素であり、システムにより一元管理されます。運用局面
    システムを構築する際に、 運用要件を元に、システムの利用者がどんな人いるか、どういうふうに権限をわけないといけないかを設計しておく必要があります。
    このような権限割当の単位を定義するのは権限プロファイルという構成要素になります。
    権限プロファイルに関連機能の権限オブジェクトの権限値が含められますので、機能にどんな権限オブジェクトがあるかを把握しておかなければなりません。
    ECC標準機能ではすでに数千の権限オブジェクトが組み込まれていますので、権限オブジェクトの把握は相当大変な作業になると想像できます。権限オブジェクト

    権限オブジェクトとは、権限制御でチェックしなければならない項目及びチェック方法を示す要素です。 権限オブジェクトの上位要素としては権限クラス、下位要素としては権限項目があります。

    権限クラス
    権限クラスは、権限オブジェクトの論理的な組合せで、たとえばアプリケーション(財務会計、人事管理など) に対応します。権限項目
    権限項目は、権限オブジェクトに構成する項目です。ABAPディクショナリで保存されたデータエレメントトに接続されています。

    権限オブジェクトは、AND で結合された項目を 10 個までグループ゚化します。

    権限オブジェクトが事前にプログラムロジックに組み込まれており、実行時に 実行可能なアクション(データの照会や登録、変更など)及び処理可能なデータの範囲を制御します。

    権限

    権限とは、権限オブジェクトの定義、すなわち、権限オブジェクトの各権限項目の許容値を組合せたものです。 権限により、権限オブジェクト項目値のセットにもとづいて、ECCシステムで特定のアクティビティを実行することができます。 権限を使用することで、権限オブジェクトの項目に対して任意の数の指定値または値範囲を項目に対して指定することができます。また、すべての値を許可したり、空の項目を許容値として許可したりすることもできます。 権限を変更すると、その権限を含む権限プロファイルを持つすべてのユーザが影響を受けます。

    権限プロファイル

    権限プロファイルとは、権限の集合で、ユーザにまとめて権限を割り当てる単位です。権限プロファイルは下記3種類があります。

    生成済権限プロファイル 
    生成済権限プロファイルは、ロールからロールの権限データで自動生成される権限プロファイルです。マニュアル権限プロファイル
    マニュアル権限プロファイルとは、 ロールを使わずに明示的に作成される権限プロファイルです複合プロファイル
    複合プロファイルには、任意の数の権限プロファイルが含まれます。各要素の関係

    以下の図で権限コンセプトを構成する各要素の関係を示します。

    ロールの利用

    ロールは厳密的に権限コンセプトの構成要素ではないですが、内部的に生成済権限プロファイルを自動生成するため、権限プロファイルとして利用することができます。 さらに、ロールはユーザメニュ構成を定義する単位にもなりますので、実際のシステム運用ではロールを利用してユーザの権限を管理するはほとんどです。

    ロールは、ユーザをグルーピングする手段として、部署や役職に基づいて設計することが多い。


  • BASIS 0 Votes 72 閲覧数


    このトピックで例をあげてロールの設計と実装を説明します。

    ビジネス要件

    グループ各会社が同じクライアントIDでSAPシステムを共有しています。

    ロールの作成

    ロールの移送


  • BASIS 0 Votes 185 閲覧数


    このトピックでは、NetWeaver ABAPリリース7.0 (SAP NetWeaver 2004s)以降から導入された新しいテクニックの拡張フレームワークを取り上げてそれぞれ説明します。

    拡張フレームワークとは

    拡張フレームワーク(Enhancement Framework)とは、、従来の拡張テクニック(カスタマExitやクラシックBAdiなど)をオブジェクト指向の手法で改良したフレームワークです。 拡張フレームワークでサポートされる拡張仕組は、「BAdiによるオブジェクトプラグイン」と「Enhancement Optionによるソースコードプラグイン」に大別します。 ここのBAdiは従来のクラシックBAdiと区別して、新規BAdiと呼ばれます。クラシックBAdiから新規BAdiに自動的に変換することができます。

    拡張フレームワークの構成

    拡張フレームワークを構成しているコンポーネントには下記のようなものがあります。 •Enhacement Spot •Enhancement Implementaion •Enhancement Option

    Enhacement Spot

    Enhacement Spotは、拡張が実装できる位置を管理します。 オブジェクトプラグインとしてのEnhacement Spotは明示的に作成しなければならないほか、ソースコードプラグインとしてのEnhacement Spotは、Enhancement Optionを作成する際に一緒に作成されます。 オブジェクトプラグインEnhacement Spotの例ソースコードプラグインEnhacement Spotの例

    Enhancement Implementaion

    Enhancement Implementaionは、拡張実装を表します。オブジェクトプラグインとしてのBAdiによる拡張実装と、ソースコードプラグインとしてのEnhancement Optionによる拡張実装とも含められます。

    Enhancement Option

    ソースコードプラグイン を記述する位置はEnhancement Option によって管理されています。 Enhancement Option には、「ソース中の位置」「拡張タイプ(動的/静的、Point/Section)」などの属性があります。

    Enhancement Option には、明示的なものと暗黙的なものがあります。 暗黙的なものとは、すべてのリポジトリオブジェクトにあらかじめ組み込まれたもので、Enhancement Spot を必要としません。 明示的なものとは、開発者が独自に作成するもので、Enhacement Point文やEnhancement Section文などを使用し、明示的に作成位置を指定します。 Enhancement Point は「挿入型」の拡張で、指定した行位置に拡張コードが挿入されます。 Enhancement Section は「置換型」の拡張で、指定した行範囲のコードが拡張コードで置換されます。

    拡張の定義

    拡張をサポートさせるには、拡張できるようにさせたいソースコードに事前に拡張の仕掛けを組み込む必要があります。 拡張フレームワークには以下三つの拡張方法が用意されています。

    BAdiによる拡張明示的Enhancement Optionによる拡張暗黙的Enhancement Optionによる拡張

    「暗黙的Enhancement Optionによる拡張」は、サブルーチンや、汎用モジュールといったリポジトリオブジェクトのソース実装の開始及び終了の場所に全て予め組み込まれていますので、個別定義する必要がありません。

    BADIによる拡張仕掛けを作成

    以下の手順で、BADIによる拡張仕掛けを作成することができます。

    クラスビルダでBAdi用インタフェースを作成Enhancement Spotを作成
    SE80を利用します Enhancement Spot Defineを作成
    SE80を利用します
    Create BAdiを選択し、先ほど作成済のBAdi用インタフェースを指定拡張するソースコードにGET BADI、CALL BADIを実装明示的Enhancement Optionによる拡張仕掛けを作成

    以下の手順で、明示的Enhancement Optionによる拡張仕掛けを作成することができます。

    拡張するソースコードにEnhancement-Point文又はEnhancement-Sectionを記述保存してウィザードに従いEnhancement Optionを作成
    Enhancement Optionを管理するEnhancement Spotも同時に作成