PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Array Out of Bounds (2 0f 0) Importar CSV Produtos
Versão:
12.1.2210
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCADVPL LUCADVPL em 05/09/2024, 15:20 h
Local: SP  Registro: 05/02/2024  Postagens: 14
Fala pessoal boa tarde, blz?
Eu estou fazendo uma função para importar um csv de produtos para a tabela SB1.
Nesse CSV os campos não estão escritos iguais aos campos da SB1, então estou fazendo uma condição que "traduz" os campos do CSV para os campos da SB1.
O problema que estou enfrentando é de Array Out Of Bounds (2 of 0) na linha 57: Aadd(aDadosSB1, {"B1_COD"       , aDados[2], NIL}). Porém conforme a iteração do for acontece, os dados de aDados são adicionados ao array aDadosSB1 normalmente. Somente no final da execução (acredito eu que no ExecAuto), que da esse erro. Alguem tem alguma ideia? Obrigado desde já.

Segue a função:

User Function fImpCsv()
    Local cDiret
    Local cLinha := ""
    Local lPrimlin := .T.
    Local aCampos := {} // Campos do Cabecalho
    Local aDados := {} // Linhas/Dados
    Local aDadosSB1 := {}
    Local i
    Local j
    Private aErro := {}
    PUBLIC __TTSINUSE := .T.
     PUBLIC __cLogSiga := ""


    cDiret := cGetFile( ‘Arquivo CSV|*.csv| Arquivo TXT|*.txt| Arquivo XML|*.xml‘,; // [ cMascara],
                        ‘Selecao de Arquivos‘,;                                      // [ cTitulo],
                        0,;                                                         // [ cMascPadrao],
                        ‘C:\‘,;                                                      // [ cDirInicial],
                        .F.,;                                                        // [ lSalvar],
                        GETF_LOCALHARD + GETF_NETWORKDRIVE,;                         // [ nOpcoes],
                        .T.)     

    // Processo de preenchimento do array de cabecalho e do array de dados
    FT_FUSE(cDiret)
    ProcRegua(FT_FLASTREC())
    FT_FGOTOP()

    While ! FT_FEOF()

        IncProc("Lendo arquivo texto...")

        cLinha := FT_FREADLN()

        If lPrimlin // Primeira linha do arquivo - Cabecalho
            aCampos := Separa(cLinha,";",.T.) // Quebra das linhas ;
            lPrimlin := .F.
        Else
            aAdd(aDados, Separa(cLinha,";",.T.))
        EndIf

        FT_FSKIP()
    EndDo // Fim do processo

    // Importação dos registros para a tabela SB1
    Begin Transaction
        ProcRegua(Len(aDados))
        For i := 1 to Len(aDados)

            IncProc("Importando Registros...")

                 // Destino                   // Origem
            Aadd(aDadosSB1, {"B1_COD"       , aDados[2], NIL})
            Aadd(aDadosSB1, {"B1_DESC"      , aDados[3], NIL})
            Aadd(aDadosSB1, {"B1_UM"        , aDados[4], NIL})
            Aadd(aDadosSB1, {"B1_POSIPI"    , aDados[5], NIL})
            Aadd(aDadosSB1, {"B1_ORIGEM"    , aDados[6], NIL})
            Aadd(aDadosSB1, {"B1_PRV1"      , aDados[7], NIL})
            Aadd(aDadosSB1, {"B1_IPI"       , aDados[8], NIL})
            Aadd(aDadosSB1, {"B1_OBS"       , aDados[9], NIL})
            Aadd(aDadosSB1, {"B1_SITPROD"   , aDados[10], NIL})
            Aadd(aDadosSB1, {"B1_QTDINIC"   , aDados[11], NIL})
            Aadd(aDadosSB1, {"B1_CUSTD"     , aDados[12], NIL})
            Aadd(aDadosSB1, {"B1_PROC"      , aDados[13], NIL})
            // Fornecedor - Nome do Fornecedor
            Aadd(aDadosSB1, {"B1_LOCALIZ"   , aDados[15], NIL})
            Aadd(aDadosSB1, {"B1_EMAX"      , aDados[16], NIL})
            Aadd(aDadosSB1, {"B1_ESTSEG"    , aDados[17], NIL})
            Aadd(aDadosSB1, {"B1_PESO"      , aDados[18], NIL})
            Aadd(aDadosSB1, {"B1_PESBRU"    , aDados[19], NIL})
            Aadd(aDadosSB1, {"B1_CODGTIN"   , aDados[20], NIL})
            Aadd(aDadosSB1, {"B1_CODEMB"    , aDados[21], NIL})
            // Largura do Produto
            // Altura do Produto
            // Profundidade
            Aadd(aDadosSB1, {"B1_PRVALID"   , aDados[25], NIL})
            // Descrição do Produto no Fornecedor
            Aadd(aDadosSB1, {"B1_ESPECIF"   , aDados[27], NIL})-
            // Unidade por Caixa
            // Produto Variação
            Aadd(aDadosSB1, {"B1_IPPT"      , aDados[30], NIL})
            Aadd(aDadosSB1, {"B1_SELOEN"    , aDados[31], NIL})
            Aadd(aDadosSB1, {"B1_CNAE"      , aDados[32], NIL})
            Aadd(aDadosSB1, {"B1_TIPO"      , aDados[33], NIL})
            // Grupo de Tags/Tags
            Aadd(aDadosSB1, {"B1_TFETHAB"   , aDados[35], NIL})
            Aadd(aDadosSB1, {"B1_PRODPAI"   , aDados[36], NIL})
            Aadd(aDadosSB1, {"B1_CODBAR"    , aDados[37], NIL})
            Aadd(aDadosSB1, {"B1_GRUPO"     , aDados[38], NIL})
            // Marca - B1_FABRIC - Talvez
            Aadd(aDadosSB1, {"B1_CEST"      , aDados[40], NIL})
            // Volumes
            Aadd(aDadosSB1, {"B1_ESPECIF"   , aDados[42], NIL})
            // Cross-Docking
            // Url Imagens Externas
            // Link Externo
            // Meses Garantia no Fornecedor
            // Clonar dados do pai
            // Condição do produto
            // Frete Grátis
            Aadd(aDadosSB1, {"B1_NUMFCI"   , aDados[50], NIL})
            Aadd(aDadosSB1, {"B1_SETOR"    , aDados[51], NIL})
            // Unidade de Medida
            Aadd(aDadosSB1, {"B1_UPRC"     , aDados[53], NIL})
            Aadd(aDadosSB1, {"B1_REFBAS"   , aDados[54], NIL})
            // Valor ICMS ST para retenção
            Aadd(aDadosSB1, {"B1_INT_ICM" , aDados[56], NIL})
            // Categoria do produto
            // Informações adicionais
    
        Next i
    End Transaction

    // Execução Mata010
    MSExecAuto({|x,y| Mata010(x,y)},aDadosSB1,3)

    ApMsgInfo("Importação concluída com sucesso!", "Sucesso!")
Return

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário FPAZINATO FPAZINATO em 06/09/2024, 08:48 h
Local: RS  Registro: 12/06/2024  Postagens: 1
Bom dia, LUCADVPL

Espero que esteja tudo bem com o senhor.

Acredito que o problema está no ponto de chamada do ExecAuto.

Você está passando todas as linhas do arquivo de uma só vez no array aDadosSB1. Esta chamada deve ocorrer a cada iteração do FOR

Teste alterando a parte final do for no código para algo deste tipo.
.
.
.
Aadd(aDadosSB1, {"B1_INT_ICM" , aDados[56], NIL})
// Categoria do produto
// Informações adicionais

// Execução Mata010
MSExecAuto({|x,y| Mata010(x,y)},aDadosSB1,3)
// Limpa o array de dados do produto posicionado
aDadosSB1 := {}

Next i


Acredito ser necessário revisar as posições do transaction.

Outras alternativas podem ser colocar toda a execução no mesmo While ao inves de segmentar em capturar de dados e gravação de dados. Ou separar cada etapa em uma Static Function chamadas na função principal para aproveitar melhor os conceitos de clean code e reutilização de codigo.

Atenciosamente.


Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 06/09/2024, 11:49 h
Local: PR  Registro: 04/07/2017  Postagens: 546
Bom dia.

Anexe o .csv para analisarmos...

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCADVPL LUCADVPL em 06/09/2024, 14:21 h
Local: SP  Registro: 05/02/2024  Postagens: 14
Fala FPAZINATO, obrigado pelo retorno, espero que esteja bem também. Show de bola sua dica, me ajudou. O MsExecAuto começou a rodar. Porém estava debugando agora, e la pelo registro 2500 e pouco deu pau dnv, com o mesmo problema. Mas vou continuar testando, obrigado pela ajuda.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCADVPL LUCADVPL em 06/09/2024, 14:24 h
Local: SP  Registro: 05/02/2024  Postagens: 14
Fala ROBERTOMEN, o csv ultrapassa o tamanho permitido de envio aqui no chat

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCADVPL LUCADVPL em 06/09/2024, 14:26 h
Local: SP  Registro: 05/02/2024  Postagens: 14
Segue linhas iniciais do csv:

ID;Código;Descrição;Unidade;NCM;Origem;Preço;Valor IPI fixo;Observações;Situação;Estoque;Preço de custo;Cód no fornecedor;Fornecedor;Localização;Estoque maximo;Estoque minimo;Peso líquido (Kg);Peso bruto (Kg);GTIN/EAN;GTIN/EAN da embalagem;Largura do Produto;Altura do Produto;Profundidade do produto;Data Validade;Descrição do Produto no Fornecedor;Descrição Complementar;Unidade por Caixa;Produto Variação;Tipo Produção;Classe de enquadramento do IPI;Código da lista de serviços;Tipo do item;Grupo de Tags/Tags;Tributos;Código Pai;Código Integração;Grupo de produtos;Marca;CEST;Volumes;Descrição Curta;Cross-Docking;URL Imagens Externas;Link Externo;Meses Garantia no Fornecedor;Clonar dados do pai;Condição do produto;Frete Grátis;Número FCI;Vídeo;Departamento;Unidade de medida;Preço de compra;Valor base ICMS ST para retenção;Valor ICMS ST para retenção;Valor ICMS próprio do substituto;Categoria do produto;Informações Adicionais
6129529196;12416     ;PARAFUSADEIRA1/4ABAT3,6LI - WS2012;PC;8467.29.92;2;163,2860000000;0,00;;Ativo;0,00;81,6430000000;     WS2012;POSITEC IMPORTACAO DE FERRAMENTAS LTDA;A/43;0,00;0,00;0,000;0,000;     6924328310150;     6924328310150;0.00;0.00;0.00;;PARAFUSADEIRA1/4ABAT3,6LI;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado com ST;;08.019.00;0;;0;     https://www.google.com/imgres?imgurl=https://images-americanas.b2w.io/produtos/01/00/oferta/48106/2/48106249_3SZ.jpg&imgrefurl=https://www.americanas.com.br/produto/48106246&docid=zxWYUa5lhnx-XM&tbnid=hpHmphxbTGkxBM:&vet=1&w=1000&h=1000&source=sh/x/im;;0;NÃO;NOVO;NÃO;;;;Centímetro;73,1900000000;0,0000;0,0000;0,0000;;
16198253228;PC6     ;PURGADOR 1/4 MOTOCOMPRESSOR;UN;8414.90.39;2;2,2400000000;0,00;;Ativo;0,00;2,2400000000;     00006167.6;GARTHEN INDUSTRIA E COMERCIO DE MAQUINAS LTDA;;0,00;0,00;0,000;0,000;     ;     ;0.00;0.00;0.00;;PURGADOR 1/4 MOTOCOMPRESSOR;;0,00;;Terceiros;;;Outros insumos;;0,00;     ;0;Importado sem ST;GARTHEN;;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;2,2400000000;0,0000;0,0000;0,0000;;
10883178654;15450     ;( ) MASCARA DESCARTAVEL COMUM - 3 CAMADAS (6,83%);UN;6307.90.10;2;34,0000000000;0,00;;Inativo;0,00;17,0000000000;     0000008;MEDICAL SYSTEM BRASIL IMPORTACAO E COMER;;0,00;0,00;0,000;0,000;     656750365854;     656750365854;0.00;0.00;0.00;;( ) MASCARA DESCARTAVEL COMUM - 3 CAMADAS (6,83%);;0,00;Produto;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;Medical System;;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;17,0000000000;0,0000;0,0000;0,0000;;
15868576478;20643     ;(E) 1653 MOP LAVA E SECA FIT - 972694;UN;9603.90.00;2;80,8920000000;0,00;;Ativo;229,00;40,4460000000;     972694;PERFECT EQUIPAMENTOS DE LIMPEZA LTDA;A19/48,07 A17/05,06;0,00;0,00;0,000;0,000;     7891055797396;     7891055797396;0.00;0.00;0.00;;F*1653 MOP LAVA E SECA FIT 1X1 - MOP LAVA E SECA FIT;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;Condor;;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;40,4500000000;0,0000;0,0000;0,0000;;
16310347034;24154     ;(E) 3501AMAR CAIXA COM 01 RECIPIENTE TERMICO - CAIXA TERMICA 20L AMARELO 2023 - 58372;un;3923.10.90;0;87,4927333334;0,00;;Ativo;700,00;43,7463666667;     58372;TERMOLAR S/A.;X16 A21/01,02,03,04;0,00;0,00;0,000;0,000;     7891023583723;     7891023583723;0.00;0.00;0.00;;(E) 3501AMAR CAIXA COM 01 RECIPIENTE TERMICO - CAIXA TERMICA 20L AMARELO 2023 - Numero da ;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Nacional sem ST;TERMOLAR S/A.;;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;39,8600000000;0,0000;0,0000;0,0000;;
16298559457;24098     ;(E) 3501PRT CAIXA COM 01 RECIPIENTE TERMICO CAIXA TERMICA 20L PRETA AMARELO - 58358;UN;3923.10.90;0;87,4927076924;0,00;;Ativo;4.355,00;43,7463538462;     58358;TERMOLAR S/A.;ATRAS DO A16 D47,355,541 A19/04 A17/10 A23/02,03;0,00;0,00;0,000;0,000;     7891023583587;     7891023571959;0.00;0.00;0.00;;3501PRT CAIXA COM 01 RECIPIENTE TERMICO CAIXA TERMICA 20L PRETA AMARELLO - Numero da FCI: D361A6D7-5764-43A8-98DB-E90FFA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Nacional sem ST;TERMOLAR S/A.;;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;39,8600000000;0,0000;0,0000;0,0000;;
16228500340;23829     ;(E) ADAPTADOR DE LIXADEIRA TRIANGULAR - 7495;UN;8467.99.00;2;60,0000000000;0,00;;Ativo;0,00;30,0000000000;     6918041076956;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A134/Z48;0,00;0,00;0,000;0,000;     6918041074956;     6918041074956;0.00;0.00;0.00;;KIT LIXA PARA ESMERILHADEIRA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado com ST;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;08.019.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;30,0000000000;0,0000;0,0000;0,0000;;
16113573375;22920     ;(E) ADAPTADOR FURADEIRA/PARAFUSADEIRA CORTA CHAPA - 691804105859;UN;8207.90.00;2;70,0000000000;0,00;;Ativo;140,00;35,0000000000;     691804105859;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A135;0,00;0,00;0,000;0,000;     6918041058598;     6918041058598;0.00;0.00;0.00;;ADAPTADOR FURADEIRA/PARAFUSADEIRA CORTA CHAPA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado com ST;FORÇA CHINESA;08.013.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;35,0000000000;0,0000;0,0000;0,0000;;
16168985644;23403     ;(E) ADAPTADOR LIXADEIRA DE CINTA PARA ESMERILHADEIRA - 6918041061635;UN;8467.99.00;2;150,0000000000;0,00;;Ativo;10,00;75,0000000000;     6918041061635;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A264;0,00;0,00;0,000;0,000;     6918041061635;     6918041061635;0.00;0.00;0.00;;ADAPTADOR LIXADEIRA DE CINTA PARA PARAFUSADEIRA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;08.019.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;75,0000000000;0,0000;0,0000;0,0000;;
16194525590;23627     ;(E) ADAPTADOR PARA CHAVE DE IMPACTO - ACI21I;UN;8467.99.00;2;6,4172000000;0,00;;Ativo;0,00;3,2086000000;     ACI21I;THE BLACK PARTICIPACOES LTDA;Z/14;0,00;0,00;0,000;0,000;     ;     ;0.00;0.00;0.00;;ADAPTADOR PARA CHAVE DE IMPACTO - ACI21I;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;THE BLACK PARTICIPACOES LTDA;08.019.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;3,0500000000;0,0000;0,0000;0,0000;;
16168986718;23404     ;(E) ADAPTADOR SERRA PARA FURADEIRA/ PARAFUSADEIRA - 6918041074987;UN;8467.99.00;2;60,0000000000;0,00;;Ativo;249,00;30,0000000000;     6918041074987;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A17/34,25,23 A18/16;0,00;0,00;0,000;0,000;     6918041074987;     6918041074987;0.00;0.00;0.00;;ADAPTADOR SERRA PARA FURADEIRA/ PARAFUSADEIRA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;08.019.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;30,0000000000;0,0000;0,0000;0,0000;;
16100994693;22761     ;(E) ADAPTADOR SOQUETE PARA PARAFUSAFEIRAS, FURADEIRA - 210000208;Un;8207.90.00;2;11,0000000000;0,00;;Ativo;27,00;5,5000000000;     2100002085277;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A20/42;0,00;0,00;0,000;0,000;     6918041057669;     6918041057669;0.00;0.00;0.00;;FERRAMENTAS INTERCAMBIAVEIS PARA FERRAMENTAS MANUAIS, SENDO ADAPTADOR SOQUETE PARA PARAFUSAFEIRAS, FURADEIRA;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado com ST;FORÇA CHINESA6918041057669;08.013.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;5,5000000000;0,0000;0,0000;0,0000;;
16168981877;23402     ;(E) ALICATE 5 EM 1 - 690008029002sj;UN;8203.20.10;2;170,0000000000;0,00;;Ativo;0,00;85,0000000000;     690008029002sj;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;A13/42-CD04/;0,00;0,00;0,000;0,000;     6918041062342;     6918041062342;0.00;0.00;0.00;;ALICATE 5 EM 1;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;FORCA CHINESA COMERCIO DE VARIEDADES EIRELI;08.008.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;85,0000000000;0,0000;0,0000;0,0000;;
16073766825;30350     ;(E) ALICATE BICO MEIA CANA 6 AC - AL8200;UN;8203.20.10;2;11,4878342100;0,00;;Ativo;1,00;5,7439171050;     AL8200;BSD COMERCIO DE ELETRONICOS S.A. SC;A200;0,00;0,00;0,000;0,000;     7898722070387;     7898722070387;0.00;0.00;0.00;;Alicate bico meia cana 6 AC p;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;BSD;08.008.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;6,5000000000;0,0000;0,0000;0,0000;;
16073762858;30348     ;(E) ALICATE CORTE DIAGONAL 6 AL-8100 OZ;UN;8203.20.10;2;11,3400000000;0,00;;Ativo;0,00;5,6702802520;     AL8100;BSD COMERCIO DE ELETRONICOS S.A. SC;A67;0,00;0,00;0,000;0,000;     7898722070370;     7898722070370;0.00;0.00;0.00;;Alicate corte diagonal 6 AC p;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;OZ;08.008.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;6,1800000000;0,0000;0,0000;0,0000;;
16143233456;23180     ;(E) Alicate de pressao 10‘‘ ap100;UN;8203.20.10;2;24,7200000000;0,00;;Ativo;49,00;12,3600000000;     AP100;BSD COMERCIO DE ELETRONICOS S.A. SC;A90;0,00;0,00;0,000;0,000;     7898722071308;     7898722071308;0.00;0.00;0.00;;Alicate de pressao 10‘‘;;0,00;;Terceiros;;;Mercadoria para Revenda;;0,00;     ;0;Importado sem ST;BSD;08.008.00;0;;0;     ;;0;NÃO;NOVO;NÃO;;;;Centímetro;12,3600000000;0,0000;0,0000;0,0000;;

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EOLOSALES EOLOSALES em 06/09/2024, 16:27 h
Local: PB  Registro: 02/08/2024  Postagens: 1
Caro LUCADVPL,

O Protheus tem um acelerador de importação (Mile) em que você não precisa de nenhum código. Basta configurar o LAYOUT de importação com a sequencia dos dados da sua base CSV e o Protheus faz o restante via ExecAuto.
Segue link de um vídeo da TOTVS para lhe orientar melhor: https://www.youtube.com/watch?v=qD346qkdMfQ

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCADVPL LUCADVPL em 12/09/2024, 16:14 h
Local: SP  Registro: 05/02/2024  Postagens: 14
Muito obrigado EOLOSALES!

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal