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

时间:2016-02-17 03:59:09

标签: ruby-on-rails ruby blueprint gooddata

在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

谢谢你的任何想法。 米甲

1 个答案:

答案 0 :(得分:0)

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)并通过Ruby重现POST。