【パブリッシャー】WebクエリをWebクエリのデータソースにしてみる

**[Sharperlight](https://sharperlight.jp/)パブリッシャー**で作成したWebクエリ（公開クエリともいう）を別のWebクエリのデータソースとして使用する方法を紹介します。

### データソースとして使用するwebクエリの作成 ###
[Sharperlight](https://sharperlight.jp/)アプリケーションメニューからパブリッシャーを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/56d4f9b6-2813-962b-15b9-8b8eaf42f4ff.png)
パブリッシャーウインドウの下部にある新規ボタンでWebクエリを新規作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/ca631a47-1d51-6ebe-e665-a1442905cdfd.png)
Webクエリのダイアログが表示されるので、お好みのコードとグループを入力し、**クエリーを編集**ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/6bcd2ea3-b4e4-e58b-00f8-cf058f55a0cc.png)
ここでは、コード：WebQueryDataSource、グループ：QiitaSampleと入力してみましょう。
クエリビルダーが起動したら、簡単なクエリを設計します。
モードには、詳細レポート、製品には、SAPのコネクターを使用してみましょう。既定の会社名が自動選択されます。ここでは、OEC Computersになっています。テーブルには、Sales Order - Row（売上伝票の詳細）を選択します。
フィルターの設定や出力項目の選択を以下のように行います。
注）SAPコネクターは現在のところ英語版のみ、将来的に日本語対応可能。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/9665a44c-b432-b12c-da7f-e3929b6fed6b.png)
ここまでで一度、**OK**ボタンならびに**適用**ボタンを利用して作業内容を保存しましょう。

さて、もう一度**クエリーを編集**ボタンでクエリ定義を開きましょう。
ここでは、ユニオンクエリを追加します。フィルター領域で右クリックメニューを表示し、**クエリーユニオン**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/7d3d88ea-fa4e-37bf-2887-d82815d48ae6.png)
**新規アイコン**をクリックし、新たにクエリを追加します。
追加されたユニオンクエリーを選択し、**クエリーを編集**ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/8a4e7df9-3195-9881-afec-5a8d2c56c447.png)
親クエリーがテンプレートとして表示されます。ここではCompanyフィルターを、**OECジャパン株式会社**に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/92777a99-5cca-5d54-cfa1-65725413db91.png)
**OK**ボタンで保存します。注意を促すダイアログが表示されますが、Yesで先に進みます。
ユニオンクエリーダイアログに戻るので、合計オプションの設定を行います。親クエリおよびユニオンクエリー共に、最下部のオプションを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/fb0dc792-1830-61ff-55ea-33278fbbc107.png)
**閉じる**ボタンでクエリビルダーに戻り、**OK**ボタンで保存します。クエリの公開ダイアログも**OK**ボタンで保存終了しましょう。
ここまでが、データソースとなるクエリの作成でした。次に、作成したWebクエリをデータソースとして使用するWebクエリを作成します。

### Webクエリをデータソースとして使用するWebクエリの作成 ###
パブリッシャーウインドウで新規を選び、Webクエリの作成を行います。
ここでは、コード：WebQueryParent、グループ：QiitaSampleと入力してみましょう。
**クエリーを編集**ボタンをクリックします。
データソースとして使用するWebクエリは、二つの会社のデータをユニオンクエリで返します。それを利用して、両会社の月単位の売上額を比較できるようなクエリを作成してみましょう。
モードは**概要レポート**、製品には**システム**、テーブルには**カスタム定義のデータセット**を選択します。
データセットを定義フィルターには、既定の値が表示されますが全て消去します。
新たに**_Publisher=QiitaSample.WebQueryDatasource** (_Publisher=グループ.コードの形式）と入力します。
選択領域には、指定したデータソースクエリの出力項目が選択項目として表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/3c564be2-e38f-5074-1adf-412ddd00d0bb.png)
選択項目の**Company**をフィルター領域に設定し、**<ALL>**と指定します。
次に、選択項目の**Document Date**と**Document Total**を出力領域に設定します。

出力領域に設定した**Document Date**をダブルクリックし、出力オプションダイアログを開きます。
[一般]タブでは、説明を**年/月**とし、[関数]タブでは、日付オプションの**年/月**オプションを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/7c19a915-87e0-3982-cb15-6d336d1f70ce.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/20253ceb-227b-46ec-58b5-30610bc093a9.png)

出力領域に設定した**Document Total**の出力オプションでは、[関数]タブの集計オプションを**合計**にします。この出力項目にフィルターを適用オプションでは、**Companyチェックボックス**をチェックし、更に**動的出力として設定**オプションを選択します。[一般]タブでは、説明を**売上合計**とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/ccb2d1f4-78c6-aace-e65e-6a08f2099d09.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/9fca5b77-e11d-3f81-7714-c94efce86062.png)

ではプレビューボタンで、クエリ結果を表示してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/89face87-5b6e-48d7-d41d-a9aaee6834ee.png)
このようになります。（今回は選択した会社が同じ年月のデータを持っていなかったので、このような結果になってしまいました、ご了承ください。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/209f0ec7-1ceb-6681-1aa4-1d005574bafb.png)

:postbox:[お問い合わせ](https://sharperlight.jp/about-us/contact-us/)