O erro DBSetOrder pode ocorrer quando há dois RPO´s apontando para a mesma pasta de dicionário de dados (RootPath\StartPath), onde um RPO está mais atualizado que o outro, fazendo com que de divergência na criação dos índices.
Lembrando que é recomendável, quando utilizar mais de um ambiente, apontar cada RPO para uma pasta System diferente, ou seja, no arquivo .ini, utilizar uma pasta "RootPath=" diferente para cada ambiente que tiver RPO diferente.
Para corrigir este erro é necessário separar o SYSTEM dos ambientes ou efetuar a atualização do RPO + UPDATE + LIB da base de produção e base de TESTE (ambas devem estar com a mesma data).
Com a atualização da Lib, já existe uma proteção quanto ao cenário acima:
http://tdn.totvs.com/pages/viewpage.action?pageId=268816127
Obs.: após a correção faça o seguinte:
- Pare o Protheus;
- Acesse a pasta protheus_data e renomeie a pasta semáforo;
- Entre na pasta System;
- Renomeie os arquivos xx1, xx2,xx3.dbf ou .dtc;
- Apague o arquivo xx1,xx2,xx3.cdx;
- Apague o conteúdo da pasta %TEMP% do sistema OP;
- Remova da pasta system para uma pasta de backup os arquivos: _schedtsk.dbf ou .dtc, .fpt e .cdx, sxh.dtc .fpt, .dbf e .cdx;
- Reinicie o Protheus;
- Faça novo teste acessando o Configurador / schedule;
Obs.: Destes arquivos que estamos realizando o procedimento, os únicos que precisam ser appendados nas novas tabelas criadas são os arquivos xx1, xx2 e xx3 os demais não são necessários.