Exemplo dataset sincronizado

Olá, boa tarde.

Como é a implementação de sincronização de dataset de forma incremental? Ou seja, no momento de sincronizar, quero fazer uma verificação para ver se o registro já existe no dataset, no caso é um cadastro de produto, se não existir ele faz o addRow, updateRow ou o deleteRow.

Mas na minha implementação, para cada registro que é retornado do protheus, eu faço um DatasetFactory.getDataset para ver se já existe no dataset, mas isso ocasionou um loop, pois o getDataset internamente chama o create dataset, entrando em um loop.

Poderiam mostrar um exemplo de como fazer a sincronização de forma incremental?

Também tenho essa curiosidade.

No único dataset sincronizado que fiz, até agora, eu uso o método addOrUpdateRow pra adicionar ou atualizar automaticamente o dataset.

É bom fazer a pesquisa utilizando o parâmetro recebido pela função onSync (que é a data da última sincronização) pra só pesquisar os registros que tiveram alteração após esta data (no WebService ou Banco de Dados) pra reduzir a quantidade de itens que serão analisados.

Exato brow, estou implementado essa lógica para utilizar a data da última sincronização para pegar só o que foi alterado/incluído depois dessa data, só que to meio perdido para saber como ver se já existe o registro no dataset, pois vou precisar usar o delete também.