I also tried this method and I didn't have the desired respond. 


do loop
quit
new idx
set idx = 1
  write !,$order(^Data(idx),+1)
   quit
loop
  new idx set idx = ""
  for {
  set idx = $o(^Data(idx)) quit:idx=""
  write !,"idx: "_idx
  write ^Data(idx, "name")
}   
quit 
   
new idx
set idx = $$getNext()
set ^Data(idx, "name") = "Jodrick"
set ^Data(idx, "surname") = "Sieyanji"
quit
write ^test(1),!
write ^test(2),!
quit

getNext() {
return $order(^Data(""),-1) + 1
}