SAP関連知識まとめ

# 1. 概要
### SAPとERP
**SAP**
>　主にドイツのソフトウェアメーカーのSAP社が提供するERPパッケージの名称のこと。

会社の製品名だという認識でいいと思う。

**ERP**
>　ERPとは、Enterprise Resource Planningの略称であり、「企業資源計画」あるいは「経営資源計画」と訳される。
　生産や販売、在庫、購買、物流、会計、人事／給与(基幹システム)などの企業内のあらゆる経営資源(人員、物的資産、資金、情報)を有効活用しようとの観点から、これらを企業全体で統合的に管理し、最適に配置・配分することで効率的な経営活動を行っていこうという経営手法・コンセプトのこと。いわいる概念。

企業全体の活用法をどうするかということをERPとすればいいと思う。正直ERPという言葉を説明するようなことはあまりないような気がする。

**ERPパッケージ**
>　ERPパッケージとは、ERPを実現するために企業の基幹業務(財務・管理会計、人事、生産、調達、在庫、販売など)を包括する情報システムを構築するために開発された大規模な統合型パッケージソフトウェアのこと。

要するに製品のこと

**基幹システム**
>　基幹システムとは、企業の情報システムのうち、業務内容と直接にかかわる販売や在庫管理、財務などを扱うもの。もしくは、業務やサービスの中核となる重要なシステムのことであり、システムが動かなくなると企業活動そのものがとまってしまうようなシステムのこと。

ERP、ERPパッケージ、基幹システムなどの言葉は厳密にはそれぞれ違う意味を持つが、コミュニケーションの際に正確な意味合いで使われるとは限らない。大体上記のような意味合いを持っているということを意識しておけば会話には困らないはず。

# 2．システム構成
### 3システムランドスケープ
 SAPでのシステム構成は基本的に3システムランドスケープの構成となっていることが多いようです。
 3システムランドスケープ：【開発機】→【検証機】→【本番機】

**開発機**
その名の通り開発を行う環境。別の言葉で言われるのは「アドオン開発」や「カスタマイズ」を行う環境。
**検証機**
テスト実行を行う環境。検証機上でのカスタマイズは原則行わないというのが一般的。
**本番機**
実際にユーザが利用する環境。

### クライアント
SAPでは、1つのシステム上(開発機or検証機or本番機)に複数の環境を定義することができるようになっている。
この複数の環境のことをクライアントというように読んでいる。
これは1つのシステム上に複数の目的別の環境を用意するために使用されている。

### 移送
SAPの開発では、作成したものを各環境へ反映させることを移送というように呼んでいる。

### SAP NetWeaver
アプリケーション実行環境や開発・運用支援機能を有するアプリケーション基盤の名称。

### NWDI(NetWeaver Development Infrastructure)
Javaのアプリケーションを開発するための基盤。アプリケーションのバージョン、構築、およびライフサイクルを管理する機能を持っている。
NWDIの構成はNWDS・DTR・CBS・CMSと呼ばれるものがあるCようです。

# 3. 開発
### SC(Software Component)
SCは複数のDC(Development　Component)をまとめる大きな単位。
移送はSC単位で行われる。

### DC(Development　Component)
DCは最小の開発単位（Web Dynpro JAVAなど)でSCの配下に作成される。
DCごとにNWDSではプロジェクトとして作成される。

### DTR
デザインタイムリポジトリ(DTR)はファイルバージョン管理システムの名称。
DTRへ対する変更の開発及び移送の管理単位はアクティビティ(Activity)と呼ばれる。
アクティビティはOpenとClosedとの二つのステータスがあります。
・Open Activity 。
　　変更中のアクティビティ
・Closed Activity 
　　チェックインした後のアクティビティ

### WebDynpro
ユーザインタフェースを作成するためのプログラミングモデルのこと。

### ABAP
　SAPシステムで用いられるプログラミング言語のこと

### BAPI
　BAPIとは、Business Application Programming Interfaceの略でSAPのデータを取得したり更新したりするためのインターファイルであり、実態はABAPで作成されている汎用モジュール。

### UME(User Management Engine)
すべての Java アプリケーションに権限管理機能を提供するもののこと。

### トランザクションコード
　SAPシステムの機能を開始するために用いられる文字と数字で構成される文字コードのこと。様々なトランザクションコードを使用し目的の機能を開始する。

### モジュール
モジュールという言葉は状況によって様々な意味を持つのでそれを意識する必要がある。

**SAPモジュール**
>　SAPモジュールとは、企業の業務分野をいくつかの単位で分割し、その単位または略称のことを言うようです。

**SAPモジュール一覧**

| 略称 | 業務分野 |
|:-----------------:|:------------------:|
| SD | 販売管理【sales and Distribution】 |
| MM | 在庫購買管理【Material Management】 |
| PP | 生産計画/管理【Production Planning and Control】 |
| PM | プラント保全【Plant Maintenance】 |
| WM | 倉庫管理【Warehouse Managemant】 |
| FI | 財務会計【Financial Accounting】 |
| CO | 管理会計【Controling】 |
| HR | 人事管理【Human Resources】 |
| PS | プロジェクト管理【Project System】 |
| QM | 品質管理【Quality Managemant】 |
| IM | 設備投資管理【Inventment Managemant】 |
| RE | 不動産管理【Real Estate】 |
| CA-DMS | 文書管理【Document Managemant System】|
| CA-CL | 分類【Classification】|
| CA | クロスアプリケーション【Cross Application】 |

これらの業務分野に対してはそれぞれ専門的な知識が必要なため、ERPで開発・運用する場合にはそれぞれに専門の知識を有した人員を活用する必要がある。

**汎用モジュール**
>　汎用モジュールとは、ABAPプログラムの呼称のこと、他のプログラムから呼び出すことができる部品として使用されるもの。
汎用モジュールを構成するパラメータはImport(入力)、Export(出力)、Changing(入出力)、Table(入出力)がある。

Javaでいうメソッドとか。

# 4.ツール
### NWDS(NetWeaver Developer Studio)
eclipseのプラグイン。おそらくJava開発を行う場合は使用される。

### SAPGUI
基本的にはおそらくSAPGUIと呼ばれるものは「SAP GUI for Windows」であると思われます。
ABAP開発に利用される。