problem with ssv feeder

Hi All,

I have two feeders, and I have problem reading data from feeder jobParamsFeeder.The jobParamsFeeder reads a ssv file with following contents:
a;b;c;d
a1;b1;c1;d1

a2;b2;c2;d2

Printing out received data inside runJob, I saw “${a}” instead of “a1”. getToken worked fine (and “${token}” was received by runJob sccessfully), so data from another feeder loingsFeeder were fine.

Am I doing it wrong when I pass data to runJob?

def runJob(token: String, a: String, b: String, c: String, d: String) = {

exec(session => {
logger.info(s"received a: " + a + ";b: " + b + ";c: " + c + ";d: " + d)
session
})

}

val scnRunJobs = scenario(“MyTestRequests”)
.feed(loginsFeeder)
.feed(jobParamsFeeder)
.exec(getToken("${user}", “${pwd}”))
.repeat(props.getProperty(“jobRepeat”, “5”).toInt) {
group(“run_job_and_get_report”) {
group(“run_and_finish_job”) {
exec(runJob("${token}",
“${a}”,
“${b}”,
“${c}”,
“${d}”))
.exec(checkStatus("${accessToken}", “${jobID}”))
}
.exec(getReport("${accessToken}", “${jobID}”))
}
}

https://gatling.io/docs/current/session/expression_el/

Warning

This Expression Language only works on String values being passed to Gatling DSL methods. Such Strings are parsed only once, when the Gatling simulation is being instantiated.

For example queryParam("latitude", session => "${latitude}") wouldn’t work because the parameter is not a String, but a function that returns a String.

Also, queryParam("latitude", "${latitude}".toInt) wouldn’t because the toInt would happen before passing the parameter to the queryParam method.

The solution here would be to pass a function:

session => session("latitude").validate[Int].

https://gatling.io/docs/current/session/session_api/

Thanks for your help Stephane.
So the problem comes from how I pass data (from a feeder) to my runJob function.
Do you have any sample script to show a sample on how that may be done? In sample scripts I find online, feeder data are passed to get/post methods directly, yet in my case I need to process such data before calling get/post.