ir ao artigo André Dienes Fr... · Dez. 18, 2023 1 - Sim, salvo todos os JSONs. 2 - Faço o reenvio somente dos que dão erro. 3 - Não tinha reparado nesse ponto de retorno. -- Já consegui resolver o problema, praticamente refiz toda a lógica de envio do Json, em vez de enviar ele inteiro, quebrei em 300 objetos por vez, tem muito mais envios, porém não quebrou. Desculpa a demora para responder, e muito obrigado pela atenção.
ir ao artigo André Dienes Fr... · Dez. 11, 2023 O Json é bem extenso, mais de 5 milhões de caracteres, vou colocar aqui em baixo a classe, ClassMethod InserirFatura(pInput As %Library.AbstractStream, Output pOutput As %Stream.Object) As %Status { Set tSC = $System.Status.OK() Set %response.ContentType="application/json" Try { Set tObjBody = {}.%FromJSON(%request.Content) If $IsObject(tObjBody) { Set tArrayFatura = tObjBody.fatura Set iterArrayFatura = tArrayFatura.%GetIterator() Set tContNovo = 0 Set tContAlte = 0 Set tContDupli = 0 TSTART While iterArrayFatura.%GetNext(.key, .tObjFatura) { Set:(tObjFatura.modalidade = "ger. compartilhada-geradora") tUG = $ZCONVERT(tObjFatura.instalacao, "I") Set tFatura = ##Class(Onboarding.Modelo.BotCemig).%New() If tObjFatura."per_prox_saldo_exp" '= ""{ Set tMesProx = $PIECE(tObjFatura."per_prox_saldo_exp","/",2) Set tAnoProx = $PIECE(tObjFatura."per_prox_saldo_exp","/",1) Set tDataProx = "01/"_tMesProx_"/"_tAnoProx Set tFatura."per_prox_saldo_exp" = $ZDATEH(tDataProx) } Set tMesPer = $PIECE(tObjFatura.periodo,"/",2) Set tAnoPer = $PIECE(tObjFatura.periodo,"/",1) Set tDataPer = "01/"_tMesPer_"/"_tAnoPer Set tFatura.periodo = $ZDATEH(tDataPer) Set tNumSemPorc = $PIECE(tObjFatura.quota,"%",1) Set tNumSemVirg = $REPLACE(tNumSemPorc,",",".") Set tFatura.quota = tNumSemVirg Set tFatura."unidade_geradora" = tUG Set tFatura."posto_horario" = tObjFatura."posto_horario" Set tFatura."qtd_compensacao" = tObjFatura."qtd_compensacao" Set tFatura."qtd_consumo" = tObjFatura."qtd_consumo" Set tFatura."qtd_geracao" = tObjFatura."qtd_geracao" Set tFatura."qtd_geracao" = tObjFatura."qtd_geracao" Set tFatura."qtd_prox_saldo_exp" = tObjFatura."qtd_prox_saldo_exp" Set tFatura."qtd_recebimento" = tObjFatura."qtd_recebimento" Set tFatura."qtd_saldo_ant" = tObjFatura."qtd_saldo_ant" Set tFatura."qtd_saldo_atual" = tObjFatura."qtd_saldo_atual" Set tFatura."qtd_saldo_exp" = tObjFatura."qtd_saldo_exp" Set tFatura."qtd_transferencia" = tObjFatura."qtd_transferencia" Set tFatura.instalacao = $ZCONVERT(tObjFatura.instalacao, "I") Set tFatura.modalidade = tObjFatura.modalidade Set tRS = ##Class(Onboarding.Repositorio.ConsultaSQL).ConsultaFatura(tFatura.instalacao, tFatura.periodo, tFatura."posto_horario", .tSC) If $$$ISERR(tSC) { Throw tSC } If tRS.%Next() = 0 { Set tFatura."data_criacao" = $PIECE($HOROLOG,",",1) Set tFatura.duplicidade = 1 Set tSC = tFatura.%Save() If $$$ISERR(tSC) { Throw tSC } Set tContNovo = tContNovo+1 }Else{ Set tFaturaExi = ##Class(Onboarding.Modelo.BotCemig).%OpenId(tRS.ID, .tSC) If $$$ISERR(tSC) { Throw tSC } If ((tFaturaExi."data_alteracao" = $PIECE($HOROLOG,",",1)) || (tFaturaExi."data_criacao" = $PIECE($HOROLOG,",",1))) { Set tFatura.duplicidade = 1 Set tFaturaExi.duplicidade = 2 Set tFaturaExi."data_alteracao" = $PIECE($HOROLOG,",",1) Set tFatura."data_criacao" = $PIECE($HOROLOG,",",1) Set tSC = tFatura.%Save() Set tSC = tFaturaExi.%Save() If $$$ISERR(tSC) { Throw tSC } Set tContDupli = tContDupli+1 }Else { Set tFaturaExi.modalidade = tFatura.modalidade Set tFaturaExi."per_prox_saldo_exp" = tFatura."per_prox_saldo_exp" Set tFaturaExi."qtd_compensacao" = tFatura."qtd_compensacao" Set tFaturaExi."qtd_consumo" = tFatura."qtd_consumo" Set tFaturaExi."qtd_geracao" = tFatura."qtd_geracao" Set tFaturaExi."qtd_prox_saldo_exp" = tFatura."qtd_prox_saldo_exp" Set tFaturaExi."qtd_recebimento" = tFatura."qtd_recebimento" Set tFaturaExi."qtd_saldo_ant" = tFatura."qtd_saldo_ant" Set tFaturaExi."qtd_saldo_atual" = tFatura."qtd_saldo_atual" Set tFaturaExi."qtd_saldo_exp" = tFatura."qtd_saldo_exp" Set tFaturaExi."qtd_transferencia" = tFatura."qtd_transferencia" Set tFaturaExi.quota = tFatura.quota Set tFaturaExi.duplicidade = 1 Set tFaturaExi."data_alteracao" = $PIECE($HOROLOG,",",1) Set tSC = tFaturaExi.%Save() If $$$ISERR(tSC) { Throw tSC } Set tContAlte = tContAlte+1 } } } TCOMMIT Write {"retorno":"OK","tContNovo":(tContNovo),"tContAlte":(tContAlte),"tContDupli":(tContDupli)}.%ToJSON() } Else { Throw ##class(%Exception.General).%New("Entrada JSON inválida") } }Catch tException { TROLLBACK Do ..ReportHttpStatusCode(..#HTTP500INTERNALSERVERERROR) Set:'$$$ISERR(tSC) tSC = tException.AsStatus() Set tSC = $System.Status.GetErrorText(tSC) } Quit tSC }
ir ao artigo André Dienes Fr... · Ago. 7, 2023 Sim, eu tinha conseguido conectar, porém não posso voltar versão, porque preciso do Python que é a partir dessa versão, mas a versão web funciona, só queria algo mais integrado, mais rápido, esperar chegar a versão 2023 aqui, creio que está solucionado essa questao.
ir ao artigo André Dienes Fr... · Ago. 4, 2023 Olá Danusa, a versão é essa, Product version: IRIS 2022.1, $ZV: IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2022.1.2 (Build 574U), essa extensão utiliza o terminal na web, fora do VS, eu gostaria de rodar o terminar do IRIS, dentro do VsCode, mas fazendo novos testes hoje, descobri que para poder utilizar esse terminal integrado com o VS só na nova versão do IRIS.
ir ao artigo André Dienes Fr... · Ago. 3, 2023 Olá Djeniffer, simplesmente após a ultima atualização da extenção no dia 20/07 da InterSystems, eu não consigo executar mais o terminal do Iris no VsCode.
ir ao artigo André Dienes Fr... · Jul. 27, 2023 Creio que já deva ter sulocionado o problema, mas talvez, algo que possa ajudar nesse problema seria a utilização do Python? Não sei qual versão do Iris está utilizando, mas se tiver suporte ao Python, ele tem algumas bibliotecas que poderão te auxiliar nessa resolução.
ir ao artigo André Dienes Fr... · Jul. 27, 2023 Muito bom, estou utilizando o Python com o Iris, ele é um grande facilitador, suas bibliotecas já trazem muitas soluções prontas.
ir ao artigo André Dienes Fr... · Jun. 13, 2023 Alguns testes que estou realizando com o Python encontrei alguns problemas parecidos e algo que notei no seu código seria o uso do print como saída final, o print não lhe será útil para retornar para o Iris creio a substituição dele por um return será mais efetivo. O seu print irá imprimir como uma lista tudo que foi insirido no array vendas, se for para tratar essa váriavel externamente creio que será nescessário algumas modificações, mas irá funcionar.