是否可以通过 Ruby 更改 GoodData 项目中的属性文件夹?

Is it possible change attribute folder in GoodData project by Ruby?

在 GoodData 项目中,可以将您的属性和事实移动到某个特定文件夹。我正在尝试通过 Ruby 脚本来做类似的事情。 我有项目蓝图和属性 ID 列表以及有关其文件夹的信息,但我仍然不确定如何更改文件夹。因为此代码不起作用:

    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

谢谢你的想法。 米甲

GoodData Automation SDK 不支持更改属性或事实的文件夹。

您可以通过 CloudConnect、MAQL 进行更改,或者您可以在 Ruby 中开发自己的方法,当然也可以通过 UI 进行更改。

CloudConnect 让您可以更改它,还会显示将用于更改的 MAQL 代码。您可以从中学习如何为此类更改创建 MAQL 代码,然后您可以通过 GoodData API 执行 MAQL 代码。此处描述了如何通过 API 执行 MAQL 代码:https://developer.gooddata.com/api#/reference/project-model/execute-a-maql-ddl-script/execute-a-maql-ddl-script

也可以通过 UI 更改它,通过浏览器开发工具捕获更改(它是 HTTP POST 到 attribute/fact 对象)并重现 POST 通过 Ruby.