Essbase脚本中的替换变量

时间:2017-01-13 11:32:13

标签: hyperion essbase

我正在尝试使用替换变量来参数化我的私钥。我创建了名为'privateKey'的替换变量。

RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLScriptFunction
    "-D"
    "$privateKey" /* Private key */ 
    ""
    "login $key 944589711255867592121610891 $key 944589711255867592121610891 on 'localhost'"
    "alter database 'MIS'.'Analytic'
    clear data in region
    '{
    .....
    } ' physical "
    "logout"
    "spool off"
    "exit";

我已尝试更改$ privateKey的脚本但不起作用。

public List<HistoricalData> getByUserIdAndLocation(List<Long> userIds) {
    Table table = dynamoDB.getTable(getTableName());
    ScanSpec scanSpec = new ScanSpec()
            .withFilterExpression("userId IN (" + buildInFilterExpression(userIds) + ")")
            .withValueMap(
                    buildValueMap(userIds)
            );
    ItemCollection<ScanOutcome> scanOutcome = table.scan(scanSpec);
    return convertItemToHistoricalData(scanOutcome.iterator());
}

private String buildInFilterExpression(List<Long> userIds) {
    StringBuilder builder = new StringBuilder();
    for (Long id : userIds) {
        builder.append(":user" + id + ",");
    }
    return builder.toString().substring(0, builder.length() - 1);
}

private ValueMap buildValueMap(List<Long> userIds) {
    ValueMap valueMap = new ValueMap();
    for (Long id : userIds) {
        valueMap.withNumber(":user" + id, id);
    }
    return valueMap;
}

有人可以帮助我吗?

提前致谢

问候

1 个答案:

答案 0 :(得分:0)

Hi Laggc - 我不推荐这种方法,但是如果你想在MaxL脚本中引用替换变量,你需要使用&符号。美元符号用于MaxL变量以及特殊$key“元变量”。因此,您需要使用&privateKey%代替$privateKey