The ScriptEval function takes a vector as input and returns a vector. This may not be what you want in a KPI object. Have a look here: sse-r-plugin/GetStarted.md at master · qlik-oss/sse-r-plugin · GitHub
I think for a KPI object it would be better to use the ScriptAggr function.
Another suggestion would be to load the data in the CSV into your qlik datamodel and then pass the values as a q$ parameter to your forcast call.
So it would look something like
R.ScriptAggr('library(TTR);library(forecast);frcst <-forecast(ts(q$newdata,$a1ccnt));frcst1 <-as.data.frame(q$frcst);frcst2 <-round(q$frcst1[1,],0);q$frcst2', data as newdata);
If you load the csv into qlik in the load script by the following:
(txt, codepage is 28591, embedded labels, delimiter is ',', msq);
In the KPI object you set the following expression, then it works:
frcst <- forecast(ts(q$a1ccnt));
frcst1 <- as.data.frame(frcst);
frcst2 <- round(frcst1[1,],0);'
, a1ccnt, Month)