ABAP言語は主にSAPにアドオンプログラムを作成する際に使用する言語なのですが、ABAP言語に触れる前にまずアドオンとは何かについて説明させていただきます。
SAPはパッケージソフト
SAPはパッケージソフトです。
パッケージソフトとは特定の業務を行うのに必要な機能があらかじめ提供されているソフトウェアのことで、一時期CMでよく見ていた「勘定奉行」や「大蔵大臣」といった会計ソフトもパッケージソフトとなります。
パッケージソフトのメリット・デメリット
パッケージソフトには特定の業務を行うために必要な機能が予め提供されているため、新規でシステム開発を行って同様のシステムを作るより導入のコストが低くなります。
そのため、パッケージソフトに含まれる機能で自社の業務を行うことができるのであれば、新規でシステム開発を行うより安くシステムを導入できるというメリットがあります。
また、法改正といった何等かの理由で機能改修が必要となった場合に開発元がある程度対応してくれる、一般的な業務フローを考慮して作成されているパッケージソフトの機能に業務をあわせることで業務フローの最適化が図れるといった部分もメリットになります。
半面、どうしてもパッケージソフトの機能に自社の業務をあわせることができない場合、それらの業務に対応するために新規で機能を開発したり、少し強引な使い方をする必要が出てきます。
特に大手の日本企業は独自業務を行っていることが多いため、SAPを導入したものの独自業務を行うためにたくさんの追加機能を開発してSAPを使用している例もたくさんあります。
当然、独自に追加開発した機能については開発元企業によるサポート対象外となりますので、追加開発した機能に対する開発費やメンテナンスコストといった費用がかかったり、パッケージソフトの機能を少し強引に使用して業務上の手間が増えたりすることがあります。
こうしたパッケージソフトの機能で自社の既存業務を実施できないときに何等かの対応が必要になるといったところがパッケージソフトのデメリットになります。
新規でシステムを開発した場合、その会社専用の機能を作ることができますからね。
SAPを導入する際に顧客業務を実現する方法
それでは、実際にSAPを導入する際にどのように顧客業務を実現するのでしょうか。
その方法は大きく分けて以下の3つがあります。
- カスタマイズ
SAPではパラメータ設定を変更することである程度自由に標準機能(*1)の使用方法をカスタマイズすることができます。
このパラメータ設定で顧客の要望を実現することをカスタマイズと呼んでいます。
こちらはSAP社にて用意されている使用方法となりますので、不具合が発生した場合にサポート対象となるといった利点があります。 - アドオン
新規でSAPシステムにユーザ固有の機能を作成して顧客要望を実現することをアドオン機能(*2)開発と呼んでいます。
SAP社にて用意されていない独自機能を新規開発していますので、新規開発した機能はサポート対象外となりますが、予め用意されている標準機能を変更していないため、既存の機能に影響を与えない要望の実現方法となります。 - モディフィケーション
SAPシステムに予め用意されている標準機能を直接変更することをモディフィケーションといいます。
SAP標準機能を直接修正しているためこの手法を行った機能はサポート対象外となり、アップデートにて意図せぬ不具合を発生させる可能性もあるため、基本的には行わない手法となります。
*1 : SAP社にて予め用意されている機能のこと
*2 : ユーザが独自で作成した機能のこと
また、実際は2.アドオンの中に許可された範囲でSAP標準機能にロジックを実装するBAdIやExitといった拡張と呼ばれると2と3の中間のような手法があるのですが、まずは概要ということで、ここでは省略させていただいています。