Azure Machine LearningでExperimentをWeb Service向けにデプロイすると、Web Servicesに対応したExcelワークブックを取得することができます。
ところがExperimentでのモデルの作り方によってはWeb Serviceに対応したExcelが表示されない場合があります。今回は表示されない場合でもExcelワークブックを使うための対処法を紹介します。
1. Web Service Parametersを確認する
1つ目の対処法は、Web Service Parameterを削除する方法です。Training ExperimentでReaderやWriterを使っていた場合、自動的にWeb Service Parametersが設定される場合があります。この状態でWebデプロイ向けのPredictive Experimentを作成すると、Web Service Parametersの設定が残ってしまい、Web Service Parametersが設定されているため、Web Service画面でExcelが表示されません。
Predictive ExperimentでWriterなどでWeb Service Parametersを使用していない場合は、Web InputのWeb Service Parametersを削除した後に、Deploy Web Serviceすることで、Excelが表示されるようになります。
2. ExcelのVBAを編集する
2つ目の対処法はExcelのVBAを編集する方法です。Web Service Parametersが設定されてたWeb Serviceでは、表示されているExceワークブックを使うことができません。Excel内のWeb Service URLやAccess Key、Schemaを変更すれば動きそうな気がしますが、Excel内のVBA(2015/8/24時点)ではWeb Service Parametersに関するデータを送らないため、無効な引数としてエラーが返ってきます。
Web Service Parametersの入力を含めるためにはExcelのVBAを、API version 2に適したデータに修正する必要があります。例として下記のように変更します。Web Service Parametersのパラメータや、入力名は適した名前に変更してください。
きれいなコードではありませんが、ご参考に。
VBAでJsonを使えないのかな。。。