Recommendations Designs - velocity - map | Community
Skip to main content
New Participant
February 8, 2019
Solved

Recommendations Designs - velocity - map

  • February 8, 2019
  • 4 replies
  • 4433 views

Hi,

I am trying to setup a Map array for design, I am able to set the map array but I can access it's value

Apache Velocity Engine - User Guide

#set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"})

$monkey.Map.get("banana") Doesn't work

Is map included?

rgds,

jerome

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by evidana

It seems that using the Map is where things go wrong.

$translateReadmore.en

$translateReadmore.fr

$translateReadmore.de

Those should work based on the example. Tried your use case as well:

#set( $translateReadmore = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

#set( $language = "en" )

{

    "entityId" : "$entity.id",

    "test" : "$translateReadmore[$language]"

}

test comes through fine as Read more

4 replies

New Participant
February 12, 2019

Yes it works, many thanks Eric !!

evidanaAccepted solution
New Participant
February 12, 2019

It seems that using the Map is where things go wrong.

$translateReadmore.en

$translateReadmore.fr

$translateReadmore.de

Those should work based on the example. Tried your use case as well:

#set( $translateReadmore = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

#set( $language = "en" )

{

    "entityId" : "$entity.id",

    "test" : "$translateReadmore[$language]"

}

test comes through fine as Read more

New Participant
February 12, 2019

Hi Eric,

Sorry I don't understand your answer.

Let me give you an example of what I want to do - If I want to translate a Design

#set( $translateReadmore.Map = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

So I could use in the Design ($language determined based on Metadata)

$translateReadmore.Map.get($language)

Rgds,

Jerome

New Participant
February 11, 2019

So it is not exactly what you are asking ... however this works for me.

#set( $monkey = {"banana" : "good", "roast beef" : "bad"})

{

    "entityId" : "$entity.id",

    "test" : "$monkey.banana"

}

Response

{

    "thirdPartyId": "ldksjflaksdjfldjlkf",

    "edgeHost": "mboxedge19283048309849803487.tt.omtrdc.net",

    "content": "{\n    \"entityId\" : \"top-secret-product\",\n    \"test\" : \"good\"\n}",

    "sessionId": "abc123554"

}

Seems like it does not need to be specified as a map.