Histórico da Página
...
Não há necessidade de chamar a função RpcSetEnv. Na função StarJob, no segundo parâmetro, informar GetEnvServer(), assim o job será executado no mesmo ambiente (environment) da conexão (thread) atual. Informar no terceiro parâmetro, true, assim a conexão pai espera a finalização do job. Chamar como abaixo:
StarJob("cNomeJob", GertEnvServ(), .T., "Parâmetros a serem passados para o JOB" ).
...
Outra questão, se o job iniciado não terminar, qual procedimento deverá ser tomado, já que provavelmente entrará entrará em um 'loop' infinito.
Existe a possibilidade finalizar a conexão de uma sessão com a função KillUser. A conexão principal pode esperar o término da execução do job, caso não termine tem a opção de finalizar o job com a função KillUser.
KillUser ("UserName", "ComputerName", "ThreadID", "ServerName") - para obter os parâmetros dessa função utilize GetUserInfoArray. Esta retorna um vetor multidimensional
Nessa situação em que o número do documento será gerado por um Job, poderá e provavelmente ocorrerá de o número do documento não ser sequencial. Quais são ou existem restrições em relação a geração de números de documentos não sequenciais?
...