10.1 DBの内容をExcelに書き出す
【仕様】
- MSSQLデータベース上に格納されている見積明細データをExcelに書き出し、見積書を作成します。
ヘッダ情報は既に見積書に記述されているものとします。
見積明細のテーブル名 | MitsumoriLine |
見積書ひな型Excelブック名 | 見積書.xlsx |
【フロー完成イメージ】
【ビジネスプロセスとフローの追加】
- 「ビジネスプロセス」を追加し、名称を「Excel」に変更します。
- 追加されたフローの他に、もう1フロー追加し、それぞれのフローの名称を以下のように変更します。
「見積データ抽出」
「見積データ書込」
【コンテキスト変数の定義】
- ソリューションエクスプローラーのプロジェクト名 > リポジトリ > コンテキスト変数をダブルクリックし、Excelの明細行番号を格納するためのコンテキスト変数を定義します。
【フロー変数の定義】
- 「見積データ抽出」フローのフロー変数を定義します。
名 | タイプ | 長さ |
F.ファイル名 | Alpha | 1000 |
F.見積番号 | Numeric | 10.0 |
【フロー変数の定義】
- 「見積データ書込」フローのフロー変数を定義します。
名 | タイプ | 長さ |
F.商品名 | Alpha | 30 |
F.単価 | Alpha | 30 |
F.数量 | Alpha | 30 |
F.見積金額 | Alpha | 30 |
【メインフローの設定】
- 「見積データ抽出」フローをダブルクリックし、フローエディタを開きます。
- ツールボックスから「Flow Data」をフローエリアにDrag&Dropします。
【変数の値をセット】
- Flow Dataをダブルクリックして、下記のように設定します。
アクション | タイプ | 名 | Encoding | 更新式 |
Update | Flow | F.ファイル名 | Ansi | EnvVal (‘currentprojectdir’)&’Output\見積書’ &DStr (Date (),’YYYYMMDD’) &TStr (Time (),’HHMMSS’)&’.xlsx’ |
Update | Flow | F.見積番号 | 1 | |
Update | Context | C.明細カウンタ | 22 |
【Excelコンポーネントの配置】
- ツールボックスからMicrosoft ExcelコンポーネントをDragしてFlow Dataの下にDropし、ステップ名を「MicrosoftExcel : Open」とします。
【Excelブックのオープン】
- Excelコンポーネントをダブルクリックして、「追加」ボタンでメソッドを追加します。
# | メソッド | パラメータ名 | Value |
1 | Workbook Open | ファイル名 | EnvVal (‘currentprojectdir’)& ‘Templates\見積書.xlsx’ |
【ワークシートの選択】
- 更にメソッドを追加して、ワークシートをアクティブにします。
# | メソッド | パラメータ名 | Value |
2
| Worksheet
| アクション | Activate |
名前 | ‘ワークフローオリジナル(見積書)’ |
【データマッパの配置】
- ツールボックスからデータマッパをExcelコンポーネントの下にDrag&Dropし、ステップ名を「見積データ抽出 → 見積データ書込」とします。
【送り元と送り先の設定】
- データマッパをダブルクリックして、マッパ画面を表示し、送り元にDataBase、送り先にCall Flowを設定します。
【送り元の設定】
- 送り元のデータベースウィザードで見積明細データを抽出するSQL文を作成します。
- Where句テキストを設定します。
- 使用可能列や変数はダブルクリックすることでWHERE句テキスト欄に反映されます。
- 「=」や「<>」などの演算子は手入力します。
- データベースウィザードのサマリで、作成されたSQL文を確認します。
【送り先の設定】
- 送り先のCall Flowのプロパティでフロー「見積データ書込」を選択します。
- マッパ画面を開いて、送り先の変数一覧が表示されることを確認します。
【項目のマッピング】
- マッパ画面で以下の項目をマッピングします。
送り元 | 送り先 | 計算値に設定する式 |
ItemName | F.商品名 | |
Suryo | F.数量 | Str (Src.S1/Record/Suryo ,’10C’) |
Tanka | F.単価 | Str (Src.S1/Record/Tanka ,’10C’) |
Kingaku | F.見積金額 | Str (Src.S1/Record/Kingaku ,’10C’) |
※Str関数の第二引数「10C」の「10」は整数部分が10桁であることを示しています。
「10C」の「C」は機能指示記号と呼ばれ、3桁ごとにカンマで区切られます。
【明細カウンタのカウントアップ】
- 送り先ルートで明細カウンタをカウントアップします。
- 送り先にデータを1レコードずつ渡す前に、明細カウンタをカウントアップします。
【Excelコンポーネントの配置】
- ツールボックスからMicrosoft ExcelコンポーネントをDragしてデータマッパーの下にDropし、ステップ名を「MicrosoftExcel : Close」とします。
【Excelブックの保存】
- Excelコンポーネントをダブルクリックして、「追加」ボタンでメソッドを追加します。
# | メソッド | パラメータ名 | 値 |
1 | Workbook Save | アクション | 名前を付けて保存 |
ァイル名 | F.ファイル名 | ||
ファイル形式 | XLSX |
【Excelプロセスの終了】
- 更にメソッドを追加してExcelプロセスを終了します。
# | メソッド | パラメータ名 | 値 |
2 | Quit |
【サブフローの設定】
- 「見積データ書込」フローをダブルクリックし、フローエディタを開きます。
- ツールボックスからMicrosoftExcelコンポーネントをフローエリアにDrag&Dropします。
【Excelシートの構成】
- Excelシートの明細行の構成は下記のようになっています。
- Excelコンポーネントでは、各セルの行番号、列番号を指定して値を設定します。
【品名の設定】
- Cellメソッドを追加し、下記のように設定します。
# | メソッド | パラメータ名 | Value |
1 | Cell | アクション | SetValue |
行 | C.明細カウンタ | ||
カラム | 2 | ||
値 | F.商品名 |
【定価の設定】
- Cellメソッドを追加し、下記のように設定します。
# | メソッド | パラメータ名 | Value |
2 | Cell | アクション | SetValue |
行 | C.明細カウンタ | ||
カラム | 17 | ||
値 | F.単価 |
【ご提供単価の設定】
- Cellメソッドを追加し、下記のように設定します。
# | メソッド | パラメータ名 | Value |
3 | Cell | アクション | SetValue |
行 | C.明細カウンタ | ||
カラム | 20 | ||
値 | F.単価 |
【数量の設定】
- Cellメソッドを追加し、下記のように設定します。
# | メソッド | パラメータ名 | Value |
4 | Cell | アクション | SetValue |
行 | C.明細カウンタ | ||
カラム | 23 | ||
値 | F.数量 |
# | メソッド | パラメータ名 | Value |
5 | Cell | アクション | SetValue |
行 | C.明細カウンタ | ||
カラム | 25 | ||
値 | F.見積金額 |
- フロー完成です。
【バッチファイルによるGigaSpacesの起動】
- 「Magic xpi 4.13 GSA」サービスを停止し、バッチファイルからGigaSpacesを起動します。
※GigaSpacesを再起動した後は、必ずデバッガサービス、モニタサービスも再起動するようにしてください。
【GigaSpacesの実装状況の確認】
- デスクトップのショートカットから「GigaSpaces – UI」を起動します。
下記6つのコンポーネントが表示されていることを確認します。 ・gsc(MAGIC_INFO) ・gsc(mirror-service) ・gsc(MAGIC_SPACE) ・gsa ・lus ・gsm※「開発(小)」でインストールした場合 ※順序は上記と異なる場合があります。 |
【デバッグ】
- 「見積データ抽出」フローに自動起動を設定しプロジェクトデバッグを実行します。
- 「<projectフォルダ>\Output\」フォルダに「見積書[YYYYMMDD][HHMMSS].xlsx」ファイルが作成され、明細データが出力されていることを確認します。
- メニュー > デバッグxpi > デバッグ停止でデバッグを停止します。