Bom dia ! tenho uma base de emitentes com uma série de CNPJ´s duplicados, e preciso unificá-la. Ou seja, eliminar um dos CNPJ´s duplicados e migrar os dados deste emitente para o que ficará na base. Alguém possui algum programa que já faça isso ou sabe se existe algum da Datasul ? Obrigada, Daniela.
Olá Daniela; Eu sempre uso o program abaixo para tranferir de uma base para outra gere um export dos registro que deseja transferir, e depois um import na base para ser agregada. /*************** exportando registro desejado *************/ /* gere um arquivo com os codigos que deseja exportar , um abaxo do outro *********/ DISABLE TRIGGERS FOR LOAD OF emitente. DEF VAR i-emitente LIKE emitente.cod-emitente. DEF VAR C-cidade LIKE EMITENTE.CIDADE. DEF VAR C-cidade-origem LIKE EMITENTE.CIDADE. DEF VAR C-bairro AS CHAR FORMAT "x(2000)". DEF VAR c-rota-ambev AS CHAR FORMAT "x(2000)". DEF VAR C-ESTADO LIKE EMITENTE.ESTADO. DEF VAR C-PAIS LIKE EMITENTE.PAIS. DEF VAR de-km AS DEC. DEF VAR c-espaco AS CHAR. DEF VAR I-CODIGO AS INT FORMAT "99". DEF VAR I-sequencia AS INT FORMAT "9999999". DEF VAR num-cli AS INT. DEF TEMP-TABLE tt-emitente-cod FIELD icodigo AS INT INDEX chcod icodigo. OUTPUT TO i:\temp\emit\ad098.d. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\ad043.d. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\ad324.d. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\ope-106.d. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\log-001.d. OUTPUT CLOSE. INPUT FROM c:\clientes.txt. DEF VAR ii AS INT. REPEAT: IMPORT i-emitente. num-cli = num-cli + 1. FIND emitente NO-LOCK WHERE emitente.cod-emitente = i-emitente NO-ERROR. IF NOT AVAIL emitente THEN NEXT. OUTPUT TO i:\temp\emit\ad098.d APPEND. EXPORT emitente. OUTPUT CLOSE. FOR EACH cont-emit NO-LOCK WHERE cont-emit.cod-emitente = emitente.cod-emitente: OUTPUT TO i:\temp\emit\ad043.d APPEND. EXPORT cont-emit. OUTPUT CLOSE. END. FOR EACH cta-emitente NO-LOCK WHERE cta-emitente.cod-emitente = emitente.cod-emitente: OUTPUT TO i:\temp\emit\ad324.d APPEND. EXPORT cta-emitente. OUTPUT CLOSE. END. END. OUTPUT TO i:\temp\emit\ad098.d APPEND. PUT "." SKIP "PSC" SKIP "filename=emitente" SKIP "records=" num-cli format "9999999999999" skip "ldbname=mgadm" SKIP "timestamp=2007/06/13-09:13:33" SKIP "numformat=46,44" SKIP "dateformat=dmy-1950" SKIP "map=NO-MAP" skip "cpstream=ibm850" SKIP "." SKIP "0002105824" SKIP. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\ad043.d APPEND. PUT "." SKIP "PSC" SKIP "filename=cont-emit" SKIP "records=" num-cli format "9999999999999" skip "ldbname=mgadm" SKIP "timestamp=2007/06/13-09:13:33" SKIP "numformat=46,44" SKIP "dateformat=dmy-1950" SKIP "map=NO-MAP" skip "cpstream=ibm850" SKIP "." SKIP "0002105824" SKIP. OUTPUT CLOSE. OUTPUT TO i:\temp\emit\ad324.d APPEND. PUT "." SKIP "PSC" SKIP "filename=cta-emitente" SKIP "records=" num-cli format "9999999999999" skip "ldbname=mgadm" SKIP "timestamp=2007/06/13-09:13:33" SKIP "numformat=46,44" SKIP "dateformat=dmy-1950" SKIP "map=NO-MAP" skip "cpstream=ibm850" SKIP "." SKIP "0002105824" SKIP. OUTPUT CLOSE. /************* importando na base o registro exportados *******************/ /**********************************************************************************/ DISABLE TRIGGERS FOR LOAD OF emitente. DEF TEMP-TABLE tt-emitente LIKE emitente. DEF TEMP-TABLE tt-cont-emit LIKE cont-emit. DEF TEMP-TABLE tt-cta-emitente LIKE cta-emitente. INPUT FROM i:\temp\emit\ad098.d. REPEAT: CREATE tt-emitente. IMPORT tt-emitente. FIND FIRST emitente NO-LOCK WHERE emitente.cgc = tt-emitente.cgc NO-ERROR. IF AVAIL emitente THEN DO: DELETE tt-emitente. NEXT. END. IF NOT AVAIL emitente THEN DO: CREATE emitente. RAW-TRANSFER tt-emitente TO emitente. END. END. INPUT CLOSE. INPUT FROM i:\temp\emit\ad043.d. REPEAT: CREATE tt-cont-emit. import tt-cont-emit. FIND FIRST tt-emitente NO-LOCK WHERE tt-emitente.cod-emitente = tt-cont-emit.cod-emitente NO-ERROR. IF AVAIL tt-emitente THEN DO: CREATE cont-emit. RAW-TRANSFER tt-cont-emit TO cont-emit. END. END. INPUT CLOSE. INPUT FROM i:\temp\emit\ad324.d. REPEAT: CREATE tt-cta-emitente. import tt-cta-emitente. FIND FIRST tt-emitente NO-LOCK WHERE tt-emitente.cod-emitente = tt-cta-emitente.cod-emitente NO-ERROR. IF AVAIL tt-emitente THEN DO: CREATE cta-emitente. RAW-TRANSFER tt-cta-emitente TO cta-emitente. END. END. INPUT CLOSE.