2017-01-10 14 views
1

Я создал службу OData, для которой требуется фильтр.Как передать параметризованное значение в фид OData в Excel Power Query

Эта услуга OData должна быть доступна из опции OData Feed в Micorsoft Excel - Power Query.

URL OData -:

http://176.0.11.79:8000/sap/opu/odata/sap/Z_SALES_REPORT_TUBES_SRV/et_sales_report_tubesSet $ фильтр = Spmon экв '20161101'

Теперь мне нужно передать значение фильтра Spmon '20161101' в качестве параметра. Это значение присутствует на другом листе в одном и том же превосходстве.

Как изменить запрос, чтобы данные передавались с листа, а не каждый раз изменяя URL.

ответ

0

Я нашел альтернативный способ прохождения фильтров в энергетике Query (не непосредственно из любого листа)

Это было достигнуто путем добавления еще один источник в запросе, и используя это в качестве переменной в OData поток.

Spmon = "20161001" , 
    Source = OData.Feed("http://176.0.11.79:8000/sap/opu/odata/sap/Z_SALES_REPORT_TUBES_SRV/ 
et_sales_report_tubesSet?$filter= Spmon eq '" & Spmon & "'") 

Эта переменная (Spmon) может быть отредактирована непосредственно в редакторе предварительного запроса (Power Query) напрямую.

3

питание Запрос сбросит фильтры для OData, так что вы можете использовать автофильтр или добавить фильтр шаг самостоятельно, добавив новый шаг и добавив следующую формулу по строке формул:

= Table.SelectRows(PreviousStep, each [Spmon] = '20161101')

Если это из другого листа, который вы загрузили в SheetQuery запроса, он будет выглядеть следующим образом:

= Table.SelectRows(PreviousStep, each [Spmon] = SheetQuery{row_index}[column_name])

вы, вероятно, необходимо установить уровень конфиденциальности для OData источник и рабочий лист, или вам нужно отключить уровни конфиденциальности в диалоговом окне «Параметры».

+0

Этот метод, я полагаю, фильтрует значение после возврата результирующего набора. Я хочу передать значение фильтра URL-адресу OData, чтобы значение использовалось в запросе, встроенном в реализацию службы. http://176.0.11.79:8000/sap/opu/odata/sap/Z_SALES_REPORT_TUBES_SRV/et_sales_report_tubesSet?$filter= Spmon эк «20161101» Я должен передать значение Spmon к URL OData принимает значение от другого лист в том же файле excel. –

+1

Power Query построит для вас URL-адрес $ filter, используя свертку запросов. Некоторые изменения OData, такие как фильтры, можно отложить назад, чтобы изменить URL. Если вы используете Fiddler, вы можете увидеть Power Query, запрашивающий исходный URL-адрес, с предложением $ filter, прикрепленным после использования Table.SelectRows. –

 Смежные вопросы

  • Нет связанных вопросов^_^