Jump to content
  1. Incremente de Colunas por VBA

    Marcos Augusto Soares
    By Marcos Augusto Soares,

     

    Boa noite,

     

    Estou precisando de um auxilio quanto a montar um código que faça mesclagens automáticas de intervalos que possuem dados iguais. Como é possivel observar na imagem abaixo.

    Tenho vários dados nas colunas de apenas uma linha, tenho que mesclar as colunas da linha que possuem o mesmo mês.

    https://uploaddeimagens.com.br/imagens/KoYRIB4

     

    Conseguem me ajudar?

    Desde já agradeço!

    Att., Marcos

    • 0 replies
  2. Re: Envio DMR (AT) via webservices.

    Psousa
    By Psousa,
    On 2/23/2022 at 3:36 PM, desconfiado said:

    O código é simples demais. No envio de ficheiros tens basicamente 3 funções:

    1. RegistarFicheiro
    2. SubstituirFicheiro
    3. ConsultarFicheiro

    Se programas em .NET podes utilizar os webservices references do próprio VS para obter as especificações dos serviçosa através da WSDL. Depois é só chamar os serviços.

    É um bocado básico mas aqui tens o código.

        private void RegistarFicheiro()
        {
            try
            {
                SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro();
                if (ckTeste.CheckState == Windows.Forms.CheckState.Checked)
                    myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
                else
                    myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
    
                myWS.Credentials = GetMyCredentials();
    
                byte[] myFile = System.IO.File.ReadAllBytes(txtFicheiro.Text);
                var resp = myWS.registarFicheiro(myFile, Path.GetFileName(txtFicheiro.Text));
                txtID.Text = resp;
                registaLog("Registo Ficheiro (ID: " + txtID.Text + ") " + txtFicheiro.Text, resp);
                MsgBox("Ficheiro registado com sucesso. ID Ficheiro: " + resp, MsgBoxStyle.Information);
            }
            catch (Exception ex)
            {
                Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical);
                registaLog("Erro Registo Ficheiro " + txtFicheiro.Text, "");
            }
        }
    
        private void SubstituirFicheiro()
        {
            string idAnt = txtID.Text;
            try
            {
                SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro();
                if (ckTeste.CheckState == Windows.Forms.CheckState.Checked)
                    myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
                else
                    myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
    
                myWS.Credentials = GetMyCredentials();
    
                byte[] myFile = System.IO.File.ReadAllBytes(txtFicheiro.Text);
                var resp = myWS.substituirFicheiro(myFile, txtFicheiro.Text, txtID.Text);
                txtID.Text = resp;
                registaLog("Substituição Ficheiro com ID: " + TxtIDant.Text + " por ficheiro (ID: " + txtID.Text + ") " + txtFicheiro.Text, resp);
                MsgBox("Ficheiro substituido com sucesso. ID Ficheiro: " + resp, MsgBoxStyle.Information);
            }
            catch (Exception ex)
            {
                Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical);
                registaLog("Erro Registo Ficheiro " + txtFicheiro.Text, "");
            }
        }
    
        private void ConsultarFicheiro()
        {
            try
            {
                SSWS_GestaoFicheiros.gestaoficheiro myWS = new SSWS_GestaoFicheiros.gestaoficheiro();
                if (ckTeste.CheckState == Windows.Forms.CheckState.Checked)
                    myWS.Url = "https://preapp.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
                else
                    myWS.Url = "https://app.seg-social.pt/ws/gr/v1/gestaoFicheiro?wsdl";
    
                myWS.Credentials = GetMyCredentials();
    
                var resp = myWS.consultarFicheiro(txtID.Text);
                switch (resp.estado)
                {
                    case "0":
                        {
                            string dirPath = Path.GetDirectoryName(txtFicheiro.Text);
                            string nomeFich = dirPath + @"\" + resp.nomeFicheiro;
                            File.WriteAllBytes(nomeFich, resp.lstErrosAlertasZip);
                            registaLog("Ficheiro " + resp.estadoFicheiro + ", ID: " + txtID.Text + ", Fich=" + resp.nomeFicheiro, txtID.Text);
                            var abre = MsgBox("Ficheiro " + resp.estadoFicheiro + "." + IIf(resp.dataEntregaSpecified, Constants.vbNewLine + "Data Entrega: " + resp.dataEntrega, "") + IIf(resp.dataLimiteSubstituicaoSpecified, Constants.vbNewLine + "Data Limite Substituição: " + resp.dataLimiteSubstituicao, "") + "Pretende abrir o ficheiro para consultar os alertas/erros?", MsgBoxStyle.YesNo);
                            if (abre)
                                Process.Start(nomeFich);
                            break;
                        }
                    default:
                        {
                            MsgBox(resp.mensagem, MsgBoxStyle.Information);
                            break;
                        }
                }
            }
            catch (Exception ex)
            {
                Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical);
            }
        }

    Depois tens mais 2 serviços, um de consulta da situação do funcionário e outro de registo de vinculo do funcionário. Mas como digo são bastante básicos.

    Boas.

    Já alguém teve este erro ao usar o webservice consultar ficheiro. Parece que a resposta do webservice não está conforme a defnição do wsdl:

    "The content type multipart/related; boundary=MIME_Boundary; " & vbTab & "start=""<7170517611704357129-5f12cc37.18738f148f9.45ca>""; " & vbTab & "type=""application/xop+xml""; start-info=""text/xml"" of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '--MIME_Boundary" & vbCrLf & "Content-ID: <7170517611704357129-5f12cc37.18738f148f9.45ca>" & vbCrLf & "Content-Type: application/xop+xml; type=""text/xml""; charset=utf-8" & vbCrLf & "Content-Transfer-Encoding: 8bit" & vbCrLf & vbCrLf & "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbLf & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""><soapenv:Header/><S:Body xmlns:S=""http://schemas.xmlsoap.org/soap/envelope/""><ges:consultarFicheiroResponse xmlns:ges=""http://app.seg-social.pt/ws/gr/gestaoficheiro"" xmlns:ent=""http://app.seg-social.pt/ws/gr/entidade""><return><dataEntrega>2023-03-31+01:00</dataEntrega><dataLimiteSubstituicao>2023-04-10+01:00</dataLimiteSubstituicao><nomeFicheiro>TSU202302</nomeFicheiro><estado>0</estado><lstErrosAlertasZip><inc:Include href=""cid:5f12cc37:18738f148f9:45cb"" xmlns:inc=""http://www.w3.org/2004/08/xop/include""/></lstErrosAlertasZip><estadoFicheiro>Rejeitado</estadoFicheiro></return></ges:consultarFicheiroResponse></S:Body></soapenv:Envelope>" & vbCrLf & "--MIME_Boundary" & vbCrLf & "Content-ID: <5f12cc37:18738f148f9:45cb>" & vbCrLf & "Content-Type: application/'."

     

    Resolvido... falatva encoding. mtom 🙂

    • 40 replies
  3. Re: AT - questões legais

    Cerzedelo
    By Cerzedelo,

    Provavelmente dentro em breve, a AT irá apresentar com pompa e circunstância um instrumento semelhante ao apresentado pelo Ministério da Justiça, onde o chatGPT responde aos internautas. Também com o tipo de respostas que muitas vezes a AT dá, a diferença não será muita.

    https://justica.gov.pt/Servicos/Guia-pratico-da-Justica-Versao-Beta

    • 6,580 replies
  4. Re: Utilizar Webservices da AT

    bioshock
    By bioshock,
    On 3/31/2023 at 10:21 AM, CPHJ1966 said:

    Bom dia.

    Alguém tem novidades sobre o novo certificado Certificado ChavePublicaAT.cer?

    Termina em Junho e precisa de ser substituido em todos os clientes.

    Obrigado

    Estamos todos à espera..

    https://postimg.cc/Z90RV7Qf

    • 11,598 replies
  5. Falha comunicacao com Servidor de Autenticacao (500)

    fernando
    By fernando,

    Desde hoje recebo o erro Falha comunicacao com Servidor de Autenticacao (500)

    Alude a um erro 33

    A princípio pensei que fosse um problema de atraso de tempo para o handshake, mas depois de sincronizar o tempo, o erro persiste

    Os certificados são válidos, então descarto esse problema

    Alguém mais tem esse problema

    Atenciosamente

    • 0 replies
  6. Re: Números impressos como código ASCII em vez de número normal

    Rui Carlos
    By Rui Carlos,

    Uma solução é fazeres a conversão do número para string.

    • 1 reply
  7. Re: Utilizar Webservices da AT

    Reboot
    By Reboot,

    Bom dia,

    No registo de séries quando recebemos o retorno 5000 "Erro técnico não especificado" sabem qual a razão?

    Obg

    • 11,598 replies
  8. Re: Utilizar Webservices da AT

    CPHJ1966
    By CPHJ1966,

    Bom dia.

    Alguém tem novidades sobre o novo certificado Certificado ChavePublicaAT.cer?

    Termina em Junho e precisa de ser substituido em todos os clientes.

    Obrigado

    • 11,598 replies
  1. Load more activity
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.