WebFOCUSの関数をアップデート!レガシー関数と推奨関数の見分け方とは?

2024年5月14日サポぶろぐ

みなさんはじめまして!
アシスト北海道でWebFOCUSのサポート担当をしております沼沢と申します。

さて、今回のサポぶろぐは、日頃からみなさんにご利用いただいておりますFAQから、閲覧数が常に多い”人気FAQ”「レガシー関数と推奨関数」について紹介したいと思います!

「レガシー関数と推奨関数」のFAQはこちら

WebFOCUSでは、レポートやグラフを作成する際に使用する関数はたくさんありますが、関数の中でも、レガシー関数と推奨関数があることをご存じでしょうか?

今回は「2種類あるなんて知らなかった!」という方にもわかりやすいよう、レガシー関数と推奨関数の違いや確認方法などを詳しくご紹介していきます!

レガシー関数と推奨関数

レガシー関数とは、過去のバージョンから使われてきましたが、現在は新しい関数に置き換えることを推奨されている関数のことです。

新しい関数は推奨関数と呼び、WebFOCUS 8.2.06以降で使用できる関数のことを指しています。

レガシー関数は、引数が多いことや、新たに問題が発生した場合に修正が行えないため、新規に作成する場合は、推奨関数を使用していただきたいです。

と言われても「どの関数がレガシー関数か、推奨関数が分からない!」と思うかもしれません。

そこで、次はレガシー関数の確認方法についてご紹介します。

レガシー関数の確認方法

レガシー関数は、Webコンソールの「関数パラメータレポート」から確認することができます。

新たに関数を使用する場合、レガシー関数か推奨関数か確認する際は、以下の手順で確認してみてください!

手順

  1. Webコンソール(http://サーバ名:8121)に管理者でログインします。
  2. 画面右上のツールアイコンから[ワークスペース]を開きます。
  3. 画面左上の[設定]ボタンから[環境設定各種情報]-[関数パラメータレポート]を開きます。
  4. [関数カテゴリの選択]を[レガシー]と選択し画面右下の「レポートの表示」ボタンを実行すると、レガシー関数が表示されます。

利用頻度の高い関数5選

続いて、推奨関数の中でも、お問い合わせで頻繁に目にする関数をサンプルプロシジャとともにご紹介します!
参考FAQも記載しておりますので、一緒にご確認ください!

レガシー関数    推奨関数
STRREP
SUBSTR
DATECVT
LAST
ATODBL
REPLACE
SUBSTRING
DT_FORMAT
PARTITION_REF
TO_NUMBER

特定の文字列を別の文字列に置換する関数

レガシー関数 推奨関数  
STRREPREPLACE
-*---------------------------------------------------------------------------------
DEFINE FILE CAR
TEST1/A26 = STRREP(26,MODEL,4,'AUTO',6,'MANUAL',26,'A26');
TEST2/A26 = REPLACE(MODEL,'AUTO','MANUAL');
END
 
TABLE FILE CAR
SUM SALES NOPRINT
BY COUNTRY NOPRINT
BY MODEL
BY TEST1 AS 'レガシー'
BY TEST2 AS '推奨'
WHERE COUNTRY EQ 'ENGLAND';
END
-*---------------------------------------------------------------------------------

MODELのAUTOをMANUALに置き換えています。

構文の説明については、参考FAQをご確認ください!

参考FAQ

No : 59449
タイトル:文字列を置換することはできますか? ※FAQはこちら

文字列から指定した長さの文字列を抽出する関数

レガシー関数 推奨関数
SUBSTRSUBTRTING
-*---------------------------------------------------------
DEFINE FILE CAR
TEST1/A3 = SUBSTR(16,CAR,1,3,3,TEST1);
TEST2/A3 = SUBSTRING(CAR,1,3);
END

TABLE FILE CAR
PRINT CAR
TEST1 AS 'レガシー'
TEST2 AS '推奨'
BY COUNTRY NOPRINT
WHERE COUNTRY EQ 'ENGLAND';
END
-*---------------------------------------------------------

CAR項目の値を前から3文字取得しています。

構文の説明については、参考FAQをご確認ください!

参考FAQ

No:33061
タイトル:文字列から指定した長さの文字列を取得する方法 ※FAQはこちら

日付型を文字型に変換する関数

レガシー関数 推奨関数
DATECVTDT_FORMAT
-*--------------------------------------------------------------------------------
DEFINE FILE CAR
TRANSDAT/YYMD = 20240401;
TEST1/A10 = DATECVT(TRANSDAT,'YYMD','A8YYMD');
TEST2/A10 = DT_FORMAT(TRANSDAT,'YYMD');
END

TABLE FILE CAR
PRINT
COMPUTE フォーマット変換前/A20 = EDIT(TRANSDAT, '9999年99月99日');
COMPUTE レガシー/A20 = EDIT(TEST1, '9999年99月99日');
COMPUTE 推奨/A20 = EDIT(TEST2, '9999$年99$月99$日');
BY COUNTRY NOPRINT
WHERE COUNTRY EQ 'ENGLAND';
END
-*-----------------------------------------------------------------------------------

日付型を文字型に変換しています。

また、文字型に変換された値をEDIT関数を使用して、「YYYY/MM/DD」から「YYYY年MM月DD日」形式に変換しています。

構文の説明については、参考FAQをご確認ください!

参考FAQ

No:59264
タイトル:日付または日時の値を文字列に変換する方法 ※FAQはこちら

特定項目の前後の値を取得する関数

レガシー関数    推奨関数
LASTPARTITION_REF
-*------------------------------------------------------------------------------------------
TABLE FILE CAR
SUM SEATS
COMPUTE TEST1/I6 = IF COUNTRY NE LAST COUNTRY
THEN SEATS ELSE TEST1 + SEATS; AS 'レガシー'
COMPUTE TEST1/I9 = PARTITION_REF(TEST1,COUNTRY,-1) + SEATS; AS '推奨'
BY COUNTRY
BY CAR
END
-*------------------------------------------------------------------------------------------

COUNTRYごとのSEATSの累計値を取得しています。

構文の説明については、参考FAQをご確認ください!

参考FAQ

No:59240
タイトル:特定項目の前後の値を取得する方法 ※FAQはこちら

文字型を数値型に変換する関数

レガシー  推奨
ATODBLTO_NUMBER
-*------------------------------------------------
DEFINE FILE CAR
TEST1/A10 = '12345';
TEST2/D10.2 = ATODBL(TEST1,'5',TEST2);
TEST3/D10.2 = TO_NUMBER(TEST1);
END

TABLE FILE CAR
PRINT
TEST1 AS 'フォーマット変換前'
TEST2 AS 'レガシー'
TEST3 AS '推奨'
BY COUNTRY NOPRINT
WHERE COUNTRY EQ 'ENGLAND'; 
END
-*------------------------------------------------

文字型を数値型に変換しています。

構文の説明については、参考FAQをご確認ください!

参考FAQ

No:59627
タイトル:文字列を数値型に変換して前ゼロを削除する方法 ※FAQはこちら

最後に

今回は、推奨関数とレガシー関数についてご紹介しました。

新しくレポートやグラフを作成される時は、意識して推奨関数を使ってみてください。

それでは、次回の記事もお楽しみに!