Можно ли изменить папку атрибутов в проекте GoodData с помощью Ruby?

В проекте GoodData можно перемещать ваши атрибуты и факты в определенную папку. Я пытаюсь сделать что-то подобное с помощью скрипта Ruby. У меня есть схема проекта, список идентификаторов атрибутов и информация об их папках, но я до сих пор не знаю, как изменить папку. Потому что этот код не работает:

    blueprint = project.blueprint
    blueprint.datasets.map do |dataset|
    dataset.attributes.map do |attr|
        attr.folder = dataset.title
    end
   end

Ошибка:

NoMethodError: undefined method `folder='

В GoodData Ruby Cookbook есть пример того, как найти список папок, но больше информации нет.

 # Currently there is not support in SDK to directly explore folders but we can reach to API directly
  # You can also go to the project in your browser and look for folders there
  client.get("#{project.md['query']}/dimensions")['query']['entries'].map {|i| i['title']} # => ["Dataset.Opportunities", "Awesome Sales Reps", "Dataset.Regions"]

  client.get("#{project.md['query']}/folders")['query']['entries'].map {|i| i['title']} # => ["My Special Folder"]

Кто-нибудь уже пытался изменить папку атрибутов или фактов в вашем проекте GoodData?

вот SDK: http://www.rubydoc.info/gems/gooddata/GoodData/Model/BlueprintField и вот несколько примеров того, как работать с чертежом, но в основном это просто создание новых атрибутов: http://sdk.gooddata.com/gooddata-ruby-examples/#_12_working_with_blueprints

Спасибо за любую идею. Михал


person Michal    schedule 17.02.2016    source источник


Ответы (1)


SDK GoodData Automation не поддерживает изменение папки атрибута или факта.

Что вы можете сделать, так это изменить его через CloudConnect, MAQL или вы можете разработать свой собственный метод на Ruby или, конечно, изменить его через пользовательский интерфейс.

CloudConnect позволяет вам изменить его, а также показывает код MAQL, который будет использоваться для изменения. Вы можете узнать из него, как создать код MAQL для таких изменений, а затем вы можете выполнить код MAQL через GoodData API. Как выполнить код MAQL через API описано здесь: https://developer.gooddata.com/api#/reference/project-model/execute-a-maql-ddl-script/execute-a-maql-ddl-script< /а>

Существует также возможность изменить его через пользовательский интерфейс, перехватить изменение с помощью инструментов разработчика браузера (это HTTP POST для объекта атрибута/факта) и воспроизвести POST через Ruby.

person Martin Burian    schedule 17.02.2016