【SAP ABAP】汎用モジュール(Function Module)の概要と作成方法

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!

この記事を読むメリット

  • 汎用モジュールと汎用グループの概要が理解できます。
  • 汎用モジュールを作成することができるようになります。
  • プログラムから汎用モジュールを呼び出せるようになります。
レイナ

汎用モジュールはどういうもので、どうやって作成したらいいんだろう?

SAPの汎用モジュール(Function Module)はABAPでコーディングされる共通機能です。

当記事では基本知識となる汎用モジュールの概要と汎用モジュールの作成方法について解説していきますね。
アドオン機能の設計や開発に関わるメンバーであれば必ず知っておくべき事項なので、もし知らない方は要チェックです!

SAPフリーランスバンク SAPフリーランスバンク

新着のSAPフリーランス案件

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義

【SD】

外資系アパレル業向けSDモジュール運用保守支援

要スキル:
• SDモジュールでの運用保守経験 • ユーザからのQA対応等の経験 • チームメンバーやユーザーとの円滑なコミュニケーションが可能 • 英語翻訳サイト等を使用して、文書・メール・チャットの読み書きが可能 • 英語を使用した会議に参加頂ける方(翻訳サービス使用可能) <尚可> • Winshuttleを使用したバッチインプットツール作成経験 • WMSへのデータ連携に関する知見(運用担当レベル)
月額単価:
~1,000,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
• 日本の業務ユーザーが使用しているシステムの運用保守、問合せ対応(メール・チャットでの問い合わせ) • SDモジュールでの運用保守 、不具合/問合せのGlobal Support Teamへのエスカレーション • 問い合わせのステータス管理 • Winshuttleを使用したバッチインプットツール作成 • 新商流発生時の仕様調査やEnd to End テスト実施 • EDIシステム(受注・出荷)の運用保守

【FI】

電気機械器具向け SAP導入プロジェクト支援 FIコンサル(AA/GL/AP/AR)

要スキル:
FIコンサルとしての要件定義経験
月額単価:
~1,500,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
会計領域をS/4HANAへ刷新に向け、会計領域の要件定義フェーズ作業(メイン作業) ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理(サブ作業) ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・BPマスタへの統合作業支援

【FI】

電気機械器具向け SAP導入プロジェクト支援 FI SE(基本設計者)

要スキル:
FI Add-onの基本設計の経験
月額単価:
~1,200,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
会計領域をS/4HANAへ刷新に向け、会計領域の基本設計フェーズにてAdd-on機能の基本設計をご担当いただきます。

【FI】

食品・薬品製造販売業向けSAP運用保守支援

要スキル:
・SAP・FIの導入または保守の経験あり(GL/AP/AR) ・コミュニケーションスキル(システムや業務のお客様と直接問い合わせ対応を行います) <尚可> ・SAP・FIの固定資産(AA)の知識、COの知識(CCA,PA,CO-PC)、標準EIXT、ABAPの知識
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
財務会計と管理会計の問い合わせ対応。仕様変更対応をご担当いただく予定です。

【MM】

【SD】

大手製造業向けECC⇒S4移行におけるグローバルテンプレート構築支援(ロジ領域)

要スキル:
・SAPロジ系モジュールの導入経験 ・構想策定/要件定義フェーズの経験 ・業務プロセス設計の経験 ・S/4HANA導入経験 ・カスタマイズ/アドオン設計 ・リーダー経験 <尚可> ・製造業、フルモジュールプロジェクトでの導入経験 ・グローバルテンプレート導入経験 ・英語でのコミュニケーション能力(当タスクで作成のプロセスフローを海外ユーザーに説明、QA対応など)
月額単価:
~1,400,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
グローバルテンプレート構築 ・要件定義タスク遂行 ・内部レビュー(モジュール横断整合性含む) ・セッションファシリテート ・個別課題検討・解決

【FI】

FI-AAモジュール 要件定義支援

要スキル:
・FIモジュールにおける要件定義フェーズでの参画経験 ・FI-AAモジュールにおけるテストフェーズでの参画経験 ・ABAP開発経験 ・英語スキル:読み書き
月額単価:
~1,150,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
ABAPの設計書の調査等を行いプロジェクトリーダーのサポート

【FI】

【MM】

【SD】

S4HANA導入コンサル支援(SD/MM/FI)

要スキル:
業務要件定義、業務フロー作成、カスタマイズ実装、アドオン要件定義書作成
月額単価:
~1,400,000円 / 月
稼働場所:
兵庫県
稼働率:
100%
作業内容:
要件定義フェーズにおける各種コンサルタスクを実施いただきます。 ●募集人数 SDコンサル:1名 MMコンサル:1名 FIコンサル:1名

【CO】

【MM】

半導体製造機器製造向けSAP運用保守

要スキル:
【募集①】CO/PS領域(1名) ・ SAPにおいて運用保守または導入経験のある方(CO or PSいずれかの経験でも可) ・カスタマイズ知見要 <尚可> ・業務整理、設計、開発いずれかの経験のある方、S4バーションアップ経験のある方 【募集②】MM領域(1名) ・ SAPにおいて運用保守または導入経験のある方(主に購買側のMRP部分の知見・経験のある方) ・カスタマイズ知見要 <尚可> ・設計変更知見、業務整理、設計、開発いずれかの経験のある方 ・S4バーションアップ経験のある方
月額単価:
~1,000,000円 / 月
稼働場所:
神奈川県
稼働率:
100%
作業内容:
SAP運用保守の支援+バージョンアップ準備業務
この記事のポイント

汎用モジュールとは?

汎用モジュールとは、複数の異なるプログラムから呼び出して使用できる共通部品(関数)です。
複数の機能にて、同じロジックの処理をしたいという要件が発生することがあります。そんな時に汎用モジュールを利用します。

汎用モジュールの概要

汎用モジュールの基本的な機能としては、大きく分けて以下の3つとなります。

  • 呼び出し元プログラムからパラメータを受け取り
  • 主処理
    トランザクションデータ登録・DB直接更新・ファイルアウトプットなどの何かしらの処理
  • 呼び出し元プログラムへパラメータを受け渡し

例えば、複数の機能で「単価」と「個数」から「合計金額」を計算したいという要件があったとします。その場合は

  • 呼び出し元のプログラムから「単価」と「個数」を受け取り
  • 「単価」と「個数」を掛けて「合計金額」を算出
  • 呼び出し元プログラムへ「合計金額」を受け渡し

という汎用モジュールを作成することで、複数の機能から汎用モジュールを呼び出すことで同じ計算結果を利用することができます。

汎用モジュールの具体例

共通部品(関数)としては、汎用モジュールだけではなくT-CODE:SE24でクラスを定義・作成することも可能です。クラスについては別途解説します!

汎用グループとは?

汎用グループとは一般的に、汎用モジュールを利用目的ごとに取りまとめるグループです。
汎用モジュールは必ず1つの汎用グループに紐付ける必要があります。
※1つの汎用モジュールには複数の汎用モジュールが紐付く構成となります。

汎用グループの概要

汎用グループ内にある汎用モジュールは、変数や内部テーブルなどの定義を共通で利用することができます。

汎用モジュールの作成方法

汎用モジュールを作成する際はT-CODE:SE37を使用します。

汎用グループの登録

まずは汎用グループを登録します。
※既存の汎用グループに汎用モジュールを紐付ける場合は省略可能です。

T-CODE:SE37のヘッダメニューの「ジャンプ > 汎用グループ > グループ登録」を選択し、汎用グループIDと名称(内容説明)を入力して登録します。

汎用グループの登録

汎用モジュールの登録

T-CODE:SE37から登録したい汎用モジュールIDを入力し、「登録」ボタンを押下します。

ポップアップ画面にて紐付ける汎用グループと汎用モジュールの説明文を入力します。

汎用グループの作成(汎用モジュールIDの指定)

次にインポートパラメータ/エクスポートパラメータを入力します。※いずれも仕様により不要な場合もあります。
インポートパラメータの「任意」にチェックをいれるとプログラムから汎用モジュールを呼び出す際にパラメータの指定は必須ではなくなります。

汎用グループの作成(インポートパラメータの設定)
汎用グループの作成(エクスポートパラメータの設定)

インポート/エクスポートパラメータ以外にも以下のパラメータを指定することもできます。

汎用グループの作成(CHANGING/テーブル/例外の設定)
  • CHANGINGパラメータ
    呼び出し元のプログラムから渡された変数やテーブルを汎用モジュール内で編集し、呼び出し元のプログラムに返します。
  • テーブルパラメータ
    呼び出し元のプログラムから渡されたテーブルを汎用モジュール内で編集し、呼び出し元のプログラムに返します。
  • 例外パラメータ
    汎用モジュール内で意図しない処理がされた場合などに例外を返します。
    例外が返された際には、呼び出し元プログラム上ではシステム変数:SY-SUBRCに例外番号が設定されます。

以下では例外パラメータで個数(kosu)が0だった場合は「KOSU_ERROR」という例外を出力する例となります。

汎用グループの作成(例外の設定)

次に、ソースコードタブにて処理したい内容をABAPで記述します。

以下の例では個数(kosu)が0だった場合は例外を返し、0以外だった場合は合計金額(goukei_kingaku)に単価(tanka)×個数(kosu)を設定する内容を記述しています。

汎用グループの作成(ソースコードの記載)

以下は上図のプログラム部分をテキストで記載したものです。

FUNCTION ztest_satofn01. " 作成した汎用モジュール名
*"----------------------------------------------------------------------
*"*"ローカルインタフェース:
*"  IMPORTING
*"     REFERENCE(TANKA) TYPE  PRICE
*"     REFERENCE(KOSU) TYPE  AMNT
*"  EXPORTING
*"     REFERENCE(GOUKEI_KINGAKU) TYPE  TOTAL_KK
*"  EXCEPTIONS
*"      KOSU_ERROR
*"----------------------------------------------------------------------

* 個数が0の場合は例外を返す
  IF kosu = 0.
    RAISE kosu_error.
  ENDIF.

* 合計金額を計算する
  goukei_kingaku = tanka * kosu.

ENDFUNCTION.

構文チェックしてエラーが無ければ有効化をしてみましょう!
その際に汎用グループを登録した際に自動で登録されるプログラムも一緒に選択して有効化しましょう。

汎用モジュールの単体テスト

先ほど作った汎用モジュールをテストしてみましょう。
T-CODE:SE37から作成した汎用モジュールを指定し実行ボタンを押下します。

汎用グループの実行方法

次にインポートパラメータを指定し実行します。

以下は個数(kosu)に0を入れて例外が返される確認です。

汎用グループの実行方法(例外処理されるパラメータの設定)

次に個数(kosu)に0以外を入れて合計金額(goukei_kingaku)が計算されるかの確認です。

汎用グループの実行方法(正常処理されるパラメータの設定)

汎用モジュールをプログラムから呼び出す

プログラムから汎用モジュールを呼び出す方法も解説をします。
ここではT-CODE:SE38にてABAPプログラムの中から汎用モジュールを呼び出してみましょう。

博士

T-CODE:SE38でプログラムを作成する方法は以下で確認できるぞい!

パターンボタンを押下し、CALL FUNCTIONにて先ほど作成した汎用モジュールを入力してENTERを押下してみましょう。

するとプログラム内に汎用モジュールと定義されたパラメータが記述されたソースコードのフォーマットが自動入力されます。

プログラムから汎用モジュールのフォーマットを呼び出す方法

以下は上記のフォーマットを編集し、単価(tanka)が100・個数(kosu)が9を汎用モジュールに渡して合計金額(goukei_kingaku)を出力する例です。

プログラムから汎用モジュールを呼び出し編集

以下は上図のプログラム部分をテキストで記載したものです。

REPORT ztest_sato18. " 作成したプログラム名

* 変数定義
DATA
  g_goukei_kingaku TYPE total_kk. "合計金額

* 汎用モジュール
CALL FUNCTION 'ZTEST_SATOFN01' " 作成した汎用モジュール名
  EXPORTING
    tanka          = 100
    kosu           = 9
  IMPORTING
    goukei_kingaku = g_goukei_kingaku
  EXCEPTIONS
    kosu_error     = 1
    OTHERS         = 2.

* 例外処理
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

* 合計金額出力
write g_goukei_kingaku.

上記プログラムを実行すると、合計金額(goukei_kingaku)が900と正しく計算され出力されることが確認できます。

プログラムから汎用モジュールを呼び出した結果の出力画面

さいごに

汎用モジュールは複数の機能で共通化した処理として使えるよう、設計者同士で認識の齟齬がないようにする必要があります。
正常系の処理だけではなく、異常系の処理への対処方法も認識合わせることが重要になります。

博士

汎用モジュールの概要と作成方法についての解説は以上じゃ!

新着のSAPフリーランス案件

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義

【SD】

外資系アパレル業向けSDモジュール運用保守支援

要スキル:
• SDモジュールでの運用保守経験 • ユーザからのQA対応等の経験 • チームメンバーやユーザーとの円滑なコミュニケーションが可能 • 英語翻訳サイト等を使用して、文書・メール・チャットの読み書きが可能 • 英語を使用した会議に参加頂ける方(翻訳サービス使用可能) <尚可> • Winshuttleを使用したバッチインプットツール作成経験 • WMSへのデータ連携に関する知見(運用担当レベル)
月額単価:
~1,000,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
• 日本の業務ユーザーが使用しているシステムの運用保守、問合せ対応(メール・チャットでの問い合わせ) • SDモジュールでの運用保守 、不具合/問合せのGlobal Support Teamへのエスカレーション • 問い合わせのステータス管理 • Winshuttleを使用したバッチインプットツール作成 • 新商流発生時の仕様調査やEnd to End テスト実施 • EDIシステム(受注・出荷)の運用保守

【FI】

電気機械器具向け SAP導入プロジェクト支援 FIコンサル(AA/GL/AP/AR)

要スキル:
FIコンサルとしての要件定義経験
月額単価:
~1,500,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
会計領域をS/4HANAへ刷新に向け、会計領域の要件定義フェーズ作業(メイン作業) ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理(サブ作業) ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・BPマスタへの統合作業支援

【FI】

電気機械器具向け SAP導入プロジェクト支援 FI SE(基本設計者)

要スキル:
FI Add-onの基本設計の経験
月額単価:
~1,200,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
会計領域をS/4HANAへ刷新に向け、会計領域の基本設計フェーズにてAdd-on機能の基本設計をご担当いただきます。

【FI】

食品・薬品製造販売業向けSAP運用保守支援

要スキル:
・SAP・FIの導入または保守の経験あり(GL/AP/AR) ・コミュニケーションスキル(システムや業務のお客様と直接問い合わせ対応を行います) <尚可> ・SAP・FIの固定資産(AA)の知識、COの知識(CCA,PA,CO-PC)、標準EIXT、ABAPの知識
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
財務会計と管理会計の問い合わせ対応。仕様変更対応をご担当いただく予定です。

【MM】

【SD】

大手製造業向けECC⇒S4移行におけるグローバルテンプレート構築支援(ロジ領域)

要スキル:
・SAPロジ系モジュールの導入経験 ・構想策定/要件定義フェーズの経験 ・業務プロセス設計の経験 ・S/4HANA導入経験 ・カスタマイズ/アドオン設計 ・リーダー経験 <尚可> ・製造業、フルモジュールプロジェクトでの導入経験 ・グローバルテンプレート導入経験 ・英語でのコミュニケーション能力(当タスクで作成のプロセスフローを海外ユーザーに説明、QA対応など)
月額単価:
~1,400,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
グローバルテンプレート構築 ・要件定義タスク遂行 ・内部レビュー(モジュール横断整合性含む) ・セッションファシリテート ・個別課題検討・解決

【FI】

FI-AAモジュール 要件定義支援

要スキル:
・FIモジュールにおける要件定義フェーズでの参画経験 ・FI-AAモジュールにおけるテストフェーズでの参画経験 ・ABAP開発経験 ・英語スキル:読み書き
月額単価:
~1,150,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
ABAPの設計書の調査等を行いプロジェクトリーダーのサポート

【FI】

【MM】

【SD】

S4HANA導入コンサル支援(SD/MM/FI)

要スキル:
業務要件定義、業務フロー作成、カスタマイズ実装、アドオン要件定義書作成
月額単価:
~1,400,000円 / 月
稼働場所:
兵庫県
稼働率:
100%
作業内容:
要件定義フェーズにおける各種コンサルタスクを実施いただきます。 ●募集人数 SDコンサル:1名 MMコンサル:1名 FIコンサル:1名

【CO】

【MM】

半導体製造機器製造向けSAP運用保守

要スキル:
【募集①】CO/PS領域(1名) ・ SAPにおいて運用保守または導入経験のある方(CO or PSいずれかの経験でも可) ・カスタマイズ知見要 <尚可> ・業務整理、設計、開発いずれかの経験のある方、S4バーションアップ経験のある方 【募集②】MM領域(1名) ・ SAPにおいて運用保守または導入経験のある方(主に購買側のMRP部分の知見・経験のある方) ・カスタマイズ知見要 <尚可> ・設計変更知見、業務整理、設計、開発いずれかの経験のある方 ・S4バーションアップ経験のある方
月額単価:
~1,000,000円 / 月
稼働場所:
神奈川県
稼働率:
100%
作業内容:
SAP運用保守の支援+バージョンアップ準備業務

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社Luxy(https://luxy-inc.com/company_info/)と株式会社アガルートITパートナーズ(https://agaroot-itp.com/about/)の代表取締役。

新卒でSAPエンジニアとして働き始める。副業で事業を開始したのち、2015年に独立しシステム開発会社を設立。SAPの案件に従事しつつシステム開発事業を成長させ、2021年に会社をバイアウト。その後も創業会社とグループ会社で代表を兼任。
SAPエンジニア・コンサルタント歴は10年以上。

一緒に「SAPラボ」を盛り上げてくれる副業ライター(SAP経験者)を募集してますので、お問い合わせよりお願いします!

この記事のポイント