【问题标题】:powershell json format variable in tmsl scripttmsl脚本中的powershell json格式变量
【发布时间】:2021-02-24 10:44:39
【问题描述】:

我使用 powershell,我想将 json 格式的变量放入 TMSL 创建角色脚本。我想把这个变量放到 TablePermission 参数中

json 变量:

$filter=
[

    {
          "name": "DimGeography",
          "filterExpression": "DimGeography[CountryRegionCode] = \"US\" "
        }
]

TMSL 脚本:

$Query='
    {  
    "create": {  
        "parentObject": {  
        "database": "AW Internet Sales"  
        },  
        "role": {
      "name": "test_filter",
      "modelPermission": "read",
      "tablePermissions": "'+$filter+'"
    }
        }
          
    }'

这是我要参数化的脚本

{
  "createOrReplace": {
    "object": {
      "database": "AW Internet Sales",
      "role": "SalesManagerUS"
    },
    "role": {
      "name": "SalesManagerUS",
      "modelPermission": "read",
      "tablePermissions": [
        {
          "name": "DimGeography",
          "filterExpression": "DimGeography[CountryRegionCode] = \"US\" "
        }
      ]
    }
  }
}

如何将 $filter 放入 $Query 以接收上述工作脚本?

【问题讨论】:

    标签: json powershell azure-powershell azure-analysis-services runbook


    【解决方案1】:

    你可以试试下面的 sn-p :

        $filter=
    '[
    
        {
              "name": "DimGeography",
              "filterExpression": "DimGeography[CountryRegionCode] = \"US\" "
            }
    ]'
    
    
    function populate-tsml ($filter)
    {
    
    
    $Query='
        {  
        "create": {  
            "parentObject": {  
            "database": "AW Internet Sales"  
            },  
            "role": {
          "name": "test_filter",
          "modelPermission": "read",
          "tablePermissions": '+$filter+'
        }
            }
              
        }'
    
        return $Query
    
        }
    
      $Query =   populate-tsml -filter $filter
    

    输出:

    【讨论】:

      【解决方案2】:

      谢谢! 不需要定义一个函数,在引号中稍作改动就足够了。 以下脚本有效:

      $filter=
      '[
      
          {
                "name": "DimGeography",
                "filterExpression": "DimGeography[CountryRegionCode] = \"US\" "
              }
      ]'
      
      
      
      
      $Query='
          {  
          "create": {  
              "parentObject": {  
              "database": "AW Internet Sales"  
              },  
              "role": {
            "name": "test_filter",
            "modelPermission": "read",
            "tablePermissions": '+$filter+'
          }
              }
                
          }'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-30
        • 2014-08-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-03
        • 2023-02-07
        • 1970-01-01
        • 2016-11-16
        相关资源
        最近更新 更多