(RESOLVIDO) Codigo aleatorio

Sou novo no SC, preciso implantar algo como o codigo abaixo para que em cada nova inserção de registro, onde o campo “cod” pegue um codigo aleatório gerado pelo script.
Exemplo de codigo:

function token($tamanho=4, $id="", $up=false) {
  $characters = $id.'ABCDEFGHIJKLMNOPQRSTWXYZ0123456789';
  $charactersLength = strlen($characters);
  $randomString = '';
  for ($i = 0; $i < $tamanho; $i++) {
      $randomString .= $characters[rand(0, $charactersLength - 1)];
  }
  if($up === true) {
    return strtoupper($id.$randomString);
  } else {
    return $id.$randomString;
  }
};	

if ({cod} == ""){
	echo token();
	}

Testei o mesmo nos eventos onLoad, onScriptIni, porem gera na tela e não dentro do imput, tentei tambem com a variável “id_sc_field_cod_” que seria o id do campo, porem sem sucesso.
Agradesço desde já a ajuda de todos

echo vai sempre printar o valor na tela, se você quer alterar o valor/input de um campo especifico você vai usar algo como {nome_do_campo} = “valor”.

Coloque o código no evento onAfterInsert.

Não funcionou, não lança o valor no input

Tem que ser na onload mas testar se é registro novo.
Possivelmente a função está retornando falso.
A função deve ser um método php.

Até troquei o codigo, mas o mesmo não passa o valor para o Value do input
tenho o seguinte id do campo “id_sc_field_cod”

$comb = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,4);

{id_sc_field_cod} == "$pwd";

se alguém puder testar e me dar um help, agradesço.

Isso deve estar errado.

Se o nome da coluna é cod deve usar:

{cod} = $pwd;

Obrigado a todos pela ajuda, resolvi o problema aqui com as dicas passadas, principalmente as do Haroldo

1 Curtida