Apos um Insert em um formulário, como capturar o ID do ultimo registro?

Blz, entendi…

E ele é vinculado a sessão do usuário, então não gera problemas pra acesso multi usuário, certo?

Resolvi fazer o seguinte:

No onAfterInsert sc_exec_sql(“UPDATE tabela SET id_repetir = '” . {id} . “’ WHERE id= '” . {id} . “’”);

Visto que depois faço um while se tiver as recorrências, aí também coloco na string SQL id_repetir = ‘" . {id} . "’…

Alguma objeção dessa prática?

Se nos teus testes funcionou, não vejo problema algum.

E como faço pra usar o valor de retorno (pk) como variável no Scriptcase?

Depende de como foi criada a Tabela e do tipo de Banco de Dados.

Uma Tabela com campo ID auto incremento no MSSQLServer.
Após executar uma instrução INSERT a função abaixo retornará o valor inserido apenas dentro do escopo atual (sendo único por sessão e tabela) o que não causa problema de concorrência:
SELECT SCOPE_IDENTITY()

No MYSQL LAST_INSERT_ID() :
Inserções de uma única linha funcionam.
Mas ao fazer inserções múltiplas, LAST_INSERT_ID() retornará o valor da primeira linha inserida (não a última).