WebFOCUS 上 級 コース ~ 研 修 受 講 後 のスキルアップサポート~ 最 終 更 新 日 :2014/3/18 本 資 料 は アシスト WebFOCUS 研 修 をご 受 講 いただいたお 客 様 からのご 質 問 や 研 修 ではご 案 内 できなかった 情 報 などを FAQ にまとめたものです 研 修 受 講 後 のスキルアップの 一 助 として 是 非 お 役 立 て 下 さい ご 利 用 上 の 注 意 事 項 は 最 後 のページにまとめられております ご 確 認 のうえ ご 利 用 下 さい 第 2 章 コマンドの 利 用 1 Q. 動 詞 の 項 目 名 の 間 には 必 ず 半 角 ブランクを 指 定 するとの 事 ですが 全 角 ブランクではいけないのでしょう か A. WebFOCUS のコマンドの 区 切 りは 必 ず 半 角 ブランクをご 使 用 下 さい 全 角 ブランクは 区 切 り 文 字 ではなく 文 字 列 として 認 識 されます 2 Q. 項 目 名 には FIELD 名 か ALIAS 名 が 指 定 できますが 1 つのリクエスト 中 に FIELD 名 と ALIAS 名 を 混 在 して 指 定 することはできますか A. FIELD と ALIAS は 混 在 して 指 定 しても 問 題 ありません 3 Q. READLIMIT は 他 の 選 択 条 件 よりも 前 に 処 理 されていますか 後 に 処 理 されていますか A. READLIMIT の 条 件 も SQL に 変 換 されますが Oracle では 検 索 結 果 に 対 して 絞 込 みがかかるため 他 の 選 択 条 件 よりも 後 に 処 理 されます 例 えば WHERE STATE EQ ' 東 京 都 ' WHERE READLIMIT EQ 10 と 指 定 した 時 は 東 京 都 に 絞 り 込 んだ 後 上 位 10 件 だけが 検 索 されます Oracle では ROWNUM 擬 似 列 に 対 して 条 件 が 掛 かります 4 Q. レコード 件 数 の 制 限 をする 際 指 定 した 件 数 よりもデータベース 中 の 件 数 が 少 なかったらどうなりますか A. 件 数 の 絞 込 みになりますので 指 定 した 件 数 よりもデータベース 中 の 件 数 が 少 なかったら 全 件 表 示 となり ます 5 Q. READLIMIT と RECORDLIMIT について 読 み 込 みレコード 数 と 最 大 レコード 数 の 違 いについて 詳 しく 教 え て 下 さい A. 読 み 込 みレコード 数 はデータベースから 取 得 する 値 で データベース 側 で 検 索 処 理 が 終 了 した 後 WebFOCUS に 返 す 結 果 セットの 件 数 に 条 件 を 掛 けます 最 大 レコード 数 はレポートに 表 示 する 件 数 なので データベース 側 からは 結 果 セットをそのまま 受 け 取 り WebFOCUS 側 で 件 数 に 条 件 を 掛 けます 6 Q. スタイル 設 定 のコマンドが 少 ないように 見 えます これで 全 てなのでしょうか A. スタイル 設 定 については 外 部 ファイルにデフォルトの 情 報 が 格 納 されています デフォルトでは 以 下 のディレクトリのスタイルファイルです C:\ibi\srv80\home\etc\jadeflt.sty 1
第 2 章 コマンドの 利 用 7 Q. 複 数 行 をコメントアウトする 指 定 はありますか A. 複 数 行 のコメントアウト 機 能 は 残 念 ながらありません Developer Studio のテキストエディタで 複 数 行 をまとめてコメントアウト([Ctrl]+[M])するか -GOTO を 使 用 して 特 定 部 分 を 実 行 せずに 処 理 を 遷 移 さ せます 例 えば 以 下 のように 指 定 すると 選 択 条 件 の 部 分 は 実 行 されません TABLE FILE 売 上 実 績 SUM 売 上 金 額 BY 地 区 名 -GOTO LABEL1 WHERE 地 区 名 EQ '&AREA' WHERE 納 品 年 EQ '&YEAR' -LABEL1 END 8 Q. デバッグ 時 の 便 利 機 能 は 他 にもありますか A. メッセージビューア -TYPE があります これらは 変 数 にどんな 値 が 渡 されているかを 確 認 する 場 合 によ く 使 用 します メッセージビューアを 使 用 する 場 合 は 一 段 目 のツールバーにある 実 行 ボタンの 右 の ボタンをクリック し [ダイアログマネージャコマンドの 表 示 ]を 選 択 します 実 行 結 果 のウィンドウで 画 面 が 分 割 され 実 行 されたコマンドの 内 容 が 確 認 できます -TYPE は 変 数 に 格 納 された 値 をブラウザから 確 認 したい 場 合 に 使 用 します -TYPE & 変 数 名 と 指 定 し ます 結 果 は レポートが 表 示 された 場 合 はブラウザのソースに レポートが 表 示 されなかった 場 合 はそのまま ブラウザ 上 に 表 示 されます 第 3 章 プロシジャのチューニング 1 Q. SUM を 指 定 しても 集 計 の SQL が 発 行 されなかった 場 合 検 索 を 行 わずにエラーを 返 すことはできますか A. 集 計 の SQL が 発 行 されたかどうかにより 自 動 的 にエラーを 返 すことは 難 しいため 開 発 時 に XRETRIEVAL=OFF を 使 用 していただき 発 行 される SQL を 確 認 しながら 開 発 を 行 って 下 さい 2 Q. データベース 関 連 のトレースで 他 に 有 用 なトレース 機 能 はありますか A. SQLDI を 使 用 すると WebFOCUS がデータベースに 対 して 呼 び 出 している API コールを 確 認 することが できます データベースのより 詳 細 な 動 作 を 確 認 したい 場 合 に 使 用 します 3 Q. SQL レポートウィザードでは 他 にどんなことができますか A. 既 存 の SQL ファイルが 存 在 する 場 合 は SQL ファイルをそのまま 実 行 したり 既 存 の SQL ファイルのソー スを WebFOCUS にインポートして SQL を 編 集 したりできます 2
第 4 章 日 付 演 算 1 Q. 時 刻 はどこまで 表 示 できますか A. ナノ 秒 まで 表 示 できます 表 示 フォーマット 日 付 構 成 要 素 --------------------------------------------------------------- HH HH 時 間 HH.MM HHI 時 間 から 分 まで HH.MM.SS HHIS 時 間 から 秒 まで HH.MM.SS.fff HHISs 時 間 からミリ 秒 まで HH.MM.SS.ffffff HHISsmn 時 間 からマイクロ 秒 まで YYYY-MM-DD HH HYYMDH 年 から 時 間 まで YYYY-MM-DD HH.MM HYYMDI 年 から 分 まで YYYY-MM-DD HH.MM.SS HYYMDS 年 から 秒 まで YYYY-MM-DD HH.MM.SS.fff HYYMDs 年 からミリ 秒 まで YYYY-MM-DD HH.MM.SS.ffffff HYYMDm 年 からマイクロ 秒 まで YYYY-MM-DD HH.MM.SS.fffffffff HYYMDn 年 からナノ 秒 まで 2 Q. 年 の 日 年 の 週 月 の 週 を 求 めることはできますか A. 年 の 日 日 付 項 目 から 各 年 の 1 月 1 日 を 1 とした 年 の 日 を 求 めます 結 果 の 値 は 平 年 は 1~365 閏 年 は 1~366 の 数 値 となります COMPUTE 年 の 日 /I3 = DATEDIF(DATEMOV( 日 付, 'BOY'), 日 付, 'D') + 1; 年 の 週 日 付 項 目 から 各 年 の 1 月 1 日 を 第 1 週 とした 年 の 週 を 求 めます 1 年 は 52 週 と 数 日 であるため 結 果 の 値 は 1~53 の 数 値 となります COMPUTE 年 初 の 曜 日 1/W = DATEMOV( 日 付, 'BOY'); NOPRINT COMPUTE 年 初 の 曜 日 2/I1 = IMOD( 年 初 の 曜 日 1, 7, 'I1'); NOPRINT COMPUTE 年 の 週 /I2 = ( 年 の 日 + 年 初 の 曜 日 2-1) / 7 + 1; 月 の 週 日 付 項 目 から 各 月 の 週 を 求 めます 一 般 的 に n 月 の 第 n 週 と 呼 ばれるものです 結 果 の 値 は 1~5 の 数 値 となります COMPUTE 月 初 の 曜 日 1/W = DATEMOV( 日 付, 'BOM'); NOPRINT COMPUTE 月 初 の 曜 日 2/I1 = IMOD( 月 初 の 曜 日 1, 7, 'I1'); NOPRINT COMPUTE 日 付 A/A8YYMD= 日 付 ; NOPRINT COMPUTE 日 I/I2=EDIT(EDIT( 日 付 A,'$$$$$$99')); NOPRINT COMPUTE 月 の 週 /I2 = ( 日 I + 月 初 の 曜 日 2-1) / 7 + 1; 3 Q. 日 付 の 日 本 語 表 示 はできますか A. DATETRAN 関 数 を 使 用 して 日 本 語 表 示 の 日 付 を 取 得 します COMPUTE 日 本 語 表 示 _ 曜 日 無 /A14 = DATETRAN( 日 付, '(YYMD)', '(Ktrd)', 'JA', 14, 'A14'); COMPUTE 日 本 語 表 示 _ 曜 日 有 /A20 = DATETRAN( 日 付, '(YYMD)', '(KtrdXR)', 'JA', 20, 'A20'); 日 本 語 表 示 _ 曜 日 無 は 2004 年 1 月 1 日 の 形 式 で 日 本 語 表 示 _ 曜 日 有 は 2004 年 1 月 1 日 木 曜 日 の 形 式 で 結 果 を 取 得 します 3
第 5 章 JOIN と MATCH 1 Q. DEFINE 項 目 を JOIN のキー 項 目 に 使 用 した 場 合 通 常 の JOIN よりもパフォーマンスが 落 ちることはありま すか A. 作 成 したキー 項 目 の 演 算 式 が SQL に 変 換 できない 場 合 両 方 のテーブルのデータを 明 細 で 取 得 し WebFOCUS 側 で 結 合 します データ 量 によってはパフォーマンスが 低 下 する 場 合 があるため JOIN のチュー ニングにおいても SQL トレースを 取 得 し JOIN がデータベース 側 で 行 われているかを 確 認 して 下 さい 2 Q. 例 題 3 で JOIN 時 の 修 飾 フィールド 名 の 設 定 をしていますが もし 修 飾 なしのフィールド 名 で JOIN した 場 合 どうなりますか A. エラーは 発 生 しませんが どちらのテーブルに 含 まれる 項 目 なのかが 区 別 できないため 先 に 指 定 された ファイル 中 の 項 目 しか 使 用 できません その 結 果 JOIN しなかった 場 合 と 同 じ 値 しか 取 得 できません 3 Q. 条 件 付 き JOIN を 使 用 しなくても APPEND + HOLD で 同 じレポートが 作 成 できそうですが 条 件 付 き JOIN を 使 用 するメリットはありますか A. HOLD + APPEND でも 同 じ 結 果 を 得 ることはできますが 一 度 の 検 索 で 結 果 を 得 たほうが 効 率 的 なため 条 件 付 き JOIN を 使 用 しています 4 Q. MATCH の 手 順 で OLD 側 と NEW 側 で BY フィールドに 貼 り 付 けている 項 目 が 異 なります BY フィールドは キー 項 目 という 説 明 だったので 同 じ 項 目 を 貼 り 付 けるべきではないのでしょうか A. MATCH の BY フィールドは キー 項 目 としての 役 割 と 通 常 の BY としての( 並 び 替 え グループ 化 を 行 う) 役 割 があります 今 回 は 商 品 名 ごとにも 並 び 替 えているため BY フィールドに 指 定 しています 片 方 のファイルの BY フィールドが もう 一 方 のファイルに 完 全 に 含 まれていれば 問 題 なく 結 合 可 能 です 今 回 の 例 では 予 算 商 品 別 ファイルの 予 算 年 月 と 商 品 番 号 は 売 上 実 績 2 ファイルの BY フィール ドに 両 方 含 まれているため 問 題 ありません 4
第 6 章 テクニカル Tips 1 Q. 編 集 オプションを 追 加 することはできませんか? A. 残 念 ながら 追 加 はできません 任 意 の 記 号 や 文 字 を 表 示 したい 場 合 は EDIT 関 数 や を 使 用 して 追 加 して 下 さい 2 Q. 例 題 1 の 売 上 金 額 _ 円 は 文 字 タイプの 項 目 として 作 成 したのに なぜ 集 計 されているんですか A. COMPUTE は 集 計 後 の 値 に 対 して 一 時 項 目 を 作 成 するため 売 上 金 額 はデータベース 側 で 既 に 集 計 されてい ます つまり 集 計 済 みの 売 上 金 額 を 文 字 タイプに 変 換 後 円 という 文 字 を 追 加 しています 3 Q. FTOA 関 数 の 構 文 について カンマをいくつ 分 でカウントすればよいか 簡 単 な 演 算 式 を 教 えて 下 さい A. 以 下 の 演 算 式 で 求 めることができます ( 桁 数 - 1) / 3 フォーマットの 桁 数 から 1 を 引 いた 値 を 3 で 割 って 余 りを 切 り 捨 てた 数 がカンマの 数 です D16 なら 5 と なり D25 なら 8 となります 4 Q. 4 桁 区 切 りのカンマを 挿 入 したい 場 合 は どうすれば 良 いですか A. 数 値 タイプの 項 目 を 文 字 タイプに 変 換 後 EDIT 関 数 で, を 文 字 として 挿 入 します 売 上 金 額 _A という 文 字 タイプの 項 目 があったとすれば 以 下 のような 演 算 式 で 4 桁 ごとにカンマを 挿 入 して 下 さい EDIT(' 売 上 金 額 _A','9999,9999,9999,9999'); 5 Q. 文 字 タイプの 項 目 を IN-GROUPS-OF でグループ 分 けすることはできますか A. できません GUI で 設 定 しようとしても フォーマットが 数 値 タイプの 項 目 しか[グループ]タブは 表 示 さ れるません その 他 1 Q. HOLD ファイルの 出 力 形 式 は ALPHA と BINARY がよく 使 われています それぞれの 出 力 形 式 の 特 徴 を 教 えて 下 さい A. ALPHA は 文 字 型 でファイルを 出 力 するので テキストエディタで HOLD ファイルの 中 身 を 確 認 したい 場 合 に よく 利 用 されています BINARY はバイナリ 形 式 でファイルを 出 力 するので 中 身 を 確 認 することはできませんが 文 字 型 の ALPHA よりもファイルサイズが 小 さくなることが 多 いです 2 Q. HOLD ファイルのデフォルトのフォーマットは 何 ですか A. ON TABLE HOLD のみ 指 定 した 場 合 HOLD ファイルは BINARY で 出 力 されます 3 Q. 一 時 項 目 に 接 頭 語 を 指 定 することはできますか A. DEFINE 項 目 に 対 して 使 用 する 場 合 は 特 に 懸 念 点 はありません COMPUTE 項 目 に 対 して 使 用 する 場 合 は エラーにはなりませんが 集 計 後 の 値 に 対 して 演 算 を 行 うため 接 頭 語 の 指 定 が 意 味 を 持 ちません 集 計 後 の 値 から 割 合 などを 求 めたい 場 合 は 二 次 検 索 を 使 用 します 詳 細 は 付 録 の PA-4 以 降 に 記 載 がございますので ご 参 照 下 さい 4 Q. 複 数 動 詞 を 使 用 した 時 計 算 結 果 が 正 しく 求 められない 場 合 があります どこを 編 集 すればよいですか A. 複 数 動 詞 と COMPUTE を 併 用 した 場 合 COMPUTE の 演 算 で 意 図 した 値 を 参 照 しない 場 合 があります 回 避 方 法 については 付 録 の PA-12 をご 参 照 下 さい 5
ご 利 用 上 の 注 意 事 項 本 書 の 著 作 権 は 株 式 会 社 アシストに 帰 属 します 本 書 は 参 考 資 料 であり 掲 載 されている 情 報 は 予 告 なしに 変 更 されることがあります 本 書 で 使 用 している 製 品 の 名 称 は 各 社 の 商 標 または 登 録 商 標 です 本 資 料 の 内 容 に 関 するご 質 問 はご 遠 慮 ください 本 資 料 はお 客 様 の 責 任 のもとでご 利 用 ください これらの 使 用 によりいかなる 損 害 が 生 じたとしても 株 式 会 社 アシストは 一 切 保 証 致 しかねますので ご 了 承 ください 6