Introdução
Em alguns casos o cliente utiliza todas as lojas de um estado em um mesmo concentrador, e decide realizar a separação colocando uma loja em cada concentrador, porém as nomenclaturas e agent ids continuam o mesmo. Como proceder para inserir os documentos de cada loja nos seus futuros concentradores?
Passo a passo
Nestes casos se não houver alteração de agentid e apenas o que for ser alterado é o job aonde os documentos serão exibidos no e-monitor, deve ser usada a seguinte query:
declare @JOBIDATUAL bigint, @JOBIDDESEJADO bigint
set @JOBIDATUAL = set @JOBIDDESEJADO =
—DEVE SER EXECUTADA EM PRIMEIRO LUGAR ESTA QUERY LOGO APÓS A QUERY QUE REALIZA UPDATE NA TBLOGDOCUMENT, CASO SEJA INVERTIDA A ORDEM NÃO SERÁ MAIS POSSÍVEL REALIZAR A MIGRAÇÃO E OS VINCULOS FICARAM ERRÔNEOS
UPDATE TBPROCESS SET JOBID = @JOBIDDESEJADO WHERE LOGDOCID IN (select LOGDOCID FROM TBLOGDOCUMENT WHERE JOBID = @JOBIDATUAL AND AGENTID IN (IDSDOSAGENTES))
UPDATE TBLOGDOCUMENT SET JOBID = @JOBIDDESEJADO WHERE JOBID = @JOBIDATUAL AND AGENTID IN (IDSDOSAGENTES)
OBS: Caso haja alteração de agentid, devem ser identificamos os agents que correspondem aos antigos e substituir apenas na tblogdocument pelas id's dos novos agents, um exemplo de query é este:
por exemplo a nomenclatura de loja foi alterada e o agent que tinha por agentkey LOJA01001 e ID 1, agora será STOR01001 E ID 2. O update que será realizado na TBLOGDOCUMENT É:
declare @AGENTIDATUAL bigint, @AGENTIDDESEJADO bigint,@JOBID bigint
set @AGENTIDATUAL = 1 set @AGENTIDDESEJADO = 2 set @JOBID = ID DO JOB AONDE OS DOCUMENTOS DESTE AGENT ESTÃO VINCULADOS
UPDATE TBLOGDOCUMENT SET AGENTID = @AGENTIDDESEJADO WHERE JOBID = @JOBID AND AGENTID = @AGENTIDATUAL
OBS: Esta ação deve ser realizada após a alteração de JOBID mencionada no início desta resposta.
Outras informações
Fonte: João Vitor Moretto de Azevedo