Bom dia Pessoal estou desenvolvendo uma aplicação para importar um arquivo com extensão .RPX vindo da ANS que é o arquivo de Retorno do Sib, porém quando abro o arquivo por exemplo no notepad++ vem um monte de informações em apenas uma unica linha, com isso quando tento importar o conteúdo do arquivo em uma variável o tamanho comportado por uma variável é pequeno para a quantidade de informações, gostaria de saber se existe algum comando progress que faça à quebra de linhas alinhando às tag´s do arquivo xml com isso resolveria e muito o meu problema pois hoje esta vindo assim: <registrosIncluidos> <registroIncluido codigoBeneficiario="00000000000000000"> <cco>000000000000</cco> <nomeBeneficiario>NONONONO</nomeBeneficiario> </registroIncluido></registrosIncluidos> Tudo isso em uma unica linha e precisava importar assim : <registrosIncluidos> <registroIncluido codigoBeneficiario="00000000000000000"> <cco>000000000000</cco> <nomeBeneficiario>NONONONO</nomeBeneficiario> </registroIncluido> </registrosIncluidos> Abaixo segue à ideia que tive: DEFINE VARIABLE c-file AS CHARACTER NO-UNDO. DEFINE VARIABLE c-linha AS CHARACTER NO-UNDO. DEFINE STREAM s-entrada. ASSIGN c-file = 'C:\RETORNOSIB\TESTE.RPX'. INPUT STREAM s-entrada FROM VALUE(c-file). REPEAT: IMPORT STREAM s-entrada UNFORMATTED c-linha. END. Lembrando que à estrutura acima existem vários outros dados peguei uma amostra para entenderem.
Opa... verificando alguns exemplos e implementando mais um poco, consegui chega num programa que faz oq vc precisa: Código: DEFINE TEMP-TABLE registroIncluido FIELD codigoBeneficiario AS CHAR FIELD cco AS CHAR FIELD nomeBeneficiario AS CHAR. DEF DATASET dsNFe FOR registroIncluido. RUN geraTt. RUN recriaTt. /*------------------------------------------------------------------------------ Purpose: Parameters: <none> Notes: Criar novo XML ------------------------------------------------------------------------------*/ PROCEDURE recriaTt. DEFINE VARIABLE cTargetType AS CHARACTER NO-UNDO. DEFINE VARIABLE cFile AS CHARACTER NO-UNDO. DEFINE VARIABLE lFormatted AS LOGICAL NO-UNDO. DEFINE VARIABLE cEncoding AS CHARACTER NO-UNDO. DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO. DEFINE VARIABLE lWriteSchema AS LOGICAL NO-UNDO. DEFINE VARIABLE lMinSchema AS LOGICAL NO-UNDO. DEFINE VARIABLE retOK AS LOGICAL NO-UNDO. ASSIGN cTargetType = "file" cFile = "C:\Temp\teste\testeImp2.xml" lFormatted = YES cEncoding = "utf-8" cSchemaLocation = ? lWriteSchema = NO lMinSchema = NO. ASSIGN retOK = DATASET dsNFe:WRITE-XML(cTargetType, cFile, lFormatted, cEncoding, cSchemaLocation, lWriteSchema, lMinSchema). END PROCEDURE. PROCEDURE geraTt : /*------------------------------------------------------------------------------ Purpose: Parameters: <none> Notes: Ler XML e carregar Dataset ------------------------------------------------------------------------------*/ def var cSourceType as char no-undo. def var cReadMode as char no-undo. def var lOverrideDefaultMapping as log no-undo. def var cFile as char no-undo. def var cEncoding as char no-undo. def var cSchemaLocation as char no-undo. def var cFieldTypeMapping as char no-undo. def var cVerifySchemaMode as char no-undo. def var retOK as log no-undo. dataset dsNfe:empty-dataset no-error. assign cSourceType = "FILE" cFile = "C:\Temp\teste\testeImp.xml" /* arquivo da nfe - Realiza a leitura do procNFe */ cReadMode = "empty" cSchemaLocation = ? lOverrideDefaultMapping = ? cFieldTypeMapping = ? cVerifySchemaMode = "IGNORE". assign retOK = dataset dsNfe:read-xml(cSourceType, cFile, cReadMode, cSchemaLocation, lOverrideDefaultMapping, cFieldTypeMapping, cVerifySchemaMode) no-error. END PROCEDURE.