这是非常基本的,但我正在努力尝试从keyvaluemap构建/检索值。例如给定变量X和Y,其中X = 123abc,第一次执行时Y = foo,X = 456def,第二次执行时Y = bar,我希望有一个键值映射,其中[123abc] - > [foo]和[456def] - > [巴]。
但是,当我尝试使用X的值检索变量Z中的值时,我总是得到最后一个值:Z = bar。如果我删除键X = 456def,则检索键X = 123abc将返回错误,该键不存在。
我的猜测是,地图中只构建了一个值,并且它会被放入""好像没有设置变量。覆盖值" true"正在用最后一个附加值替换它。我确信该变量具有一个值,因为它在跟踪中的先前策略执行中正确显示。
语法中有什么东西吗?有什么想法吗?
我正在使用以下政策来构建密钥
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="map1" enabled="true" continueOnError="false" async="false" name="buildmap1">
<DisplayName>build map1</DisplayName>
<FaultRules/>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>-1</ExpiryTimeInSecs>
<InitialEntries/>
<Put override="true">
<Key>
<Parameter>ref="X"</Parameter>
</Key>
<Value ref="Y"></Value>
</Put>
<Scope>organization</Scope>
</KeyValueMapOperations>
我使用以下内容检索密钥
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="map1" enabled="true" continueOnError="false" async="false" name="getmap1">
<DisplayName>get map1</DisplayName>
<FaultRules/>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>-1</ExpiryTimeInSecs>
<InitialEntries/>
<Get assignTo="Z">
<Key>
<Parameter>ref="X"</Parameter>
</Key>
</Get>
<Scope>organization</Scope>
</KeyValueMapOperations>
答案 0 :(得分:0)
请查看https://community.apigee.com/articles/3384/keyvaluemap-kvmap-operations.html
上的文章<Parameter ref='X'></Parameter>
其中X是变量。但是,您还希望使用两个变量构建复合键
<Parameter ref='X-Y'></Parameter>
不起作用。您需要使用Javascript策略来构建该组合密钥。