none
Cadastro de itens - importação RRS feed

  • Pergunta

  •  

    Muito bom dia a todos,

     

    Venho pedir o auxilio de meus amigos pois não consigo concluir o processo de importação de itens via assistente do exel para dentro do Dynamics.  Ja criei os grupos obrigatórios inclusive. Os itens são importados porem não aparecem no cadastro de itens, apenas no menu drop down do diario de movimentação de estoque.

     

    Agradeço qq ajuda

     

    Abraço

    quinta-feira, 8 de novembro de 2007 15:32

Todas as Respostas

  •  

    Olá Luiz.

     

    O cadastro de Itens está ok, no entanto, os relacionamentos devem ser respeitados para que o sistema aceite os seus itens

     

    Verifique todas as relações (como por exemplo, os campos Item Group, Inventory Model Group etc.), realize o pré-cadastro dos grupos necessários e verifique.

     

    Espero ter ajudado.

     

    Abraço

    segunda-feira, 26 de novembro de 2007 18:48
  • Bom dia, Luiz.

     

    Estou com o mesmo problema e dando uma olhada no processo percebi que falta importar também as tabelas InventTableModule e InventLocation.

     

    Faça o seguinte:

    Cadastre um item manualmente, preenchendo somente os campos obrigatórios, e veja o que acontece com essas tabelas.

    Você vai ver que teremos 3 registros na InventTableModule para cada item cadastrado.

     

    Espero ter ajudado

     

    César Pileggi.

     

    terça-feira, 4 de dezembro de 2007 10:36
  • César, só complementando sua informação:

     

    Eu criei um procedimento simples para migração, baseado nas dicas de integração postadas pelo Eduardo Miranda.

     

    As classes de nome AxNomeDaTabela possuem lógica de validação dos dados, portanto, é recomendável sua utilização em detrimento dos inserts "secos".

     

    As classes possuem métodos com prefixo "parm" , seguidos do nome do campo na tabela.

     

    Feito o mapeamento, é chamado o método Save() que por sua vez executa todas as operações de validação e insere os registros na tabela.

     

    Exemplo simples:

     

    Considere:

    Uma tabela no SQL chamada TABELA , contendo os campos Nome e Código;

    Uma tabela no Ax chamada MinhaTabela , contendo os mesmos campos;

    Uma classe AxMinhaTabela;

     

     

    Job\Exemplo - Code Block

    static void migracaoMinhaTabela(Args _args)
    {
        System.Data.SqlClient.SqlConnection connection;
        System.Data.SqlClient.SqlCommand    command;
        System.Data.SqlClient.SqlDataReader dr;
        AxMinhaTabela minhaTabela;

        str connectionString;

        ;

     

        connectionString = "Server = meuServidor;Database=MinhaBase;Trusted_Connection=yes;";

     

        connection       = new System.Data.SqlClient.SqlConnection();

     

        connection.set_ConnectionString(connectionString);
        connection.Open();

     

        command = new System.Data.SqlClient.SqlCommand("SELECT Codigo, Nome from Tabela", connection);

     

        dr = command.ExecuteReader();

     

        while (dr.Read())
        {
            minhaTabela = new AxMinhaTabela();

     

            minhaTabela.parmCodigo(dr.get_Item("Codigo"));
            minhaTabela.parmNome(dr.get_Item("Nome"));

     

            minhaTabela.save();

        }


        dr.Close();
    }

     

     

     

     

    terça-feira, 18 de dezembro de 2007 18:13
  • André,

     

    Concordo que um processo de migração feito via código é muito melhor do que importar registros via excel, mas no meu caso, não tinha os registros em um banco de dados e sim na planilha.

     

    Ainda não usei essas classes para migração, mas vale lembrar que o cadastro de produtos tem campos que vem preenchidos automaticamente quando uma nova linha é iniciada, alem de outros campos que tem metodos disparados automaticamente quando são modificados ou inseridos.

     

    Como não usei ainda não sei como a classe se comporta nesses casos de cadastros um pouco mais complexos.

     

    Assim que tiver um uso prático retornarei pra vcs.

     

     

    quarta-feira, 19 de dezembro de 2007 12:39
  • Neste caso, ainda podemos melhorar:

     

    Adaptando o código anterior, o Excel pode ser acessado por Oledb.

    É mais uma das inúmeras opções que o AX oferece.

     

    Code Snippet

     

     

    static void Job5(Args _args)
    {

        System.Data.OleDb.OleDbConnection connection;
        System.Data.OleDb.OleDbCommand command;
        System.Data.OleDb.OleDbDataReader dr;
        str id;
        str nome;
        str c;
        str strSql;

        c = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Dados.xls;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";

        // O parametro HDR determina se a primeira linha contem os nomes de colunas

        // "IMEX=1;" lê os dados como texto.


        connection = new System.Data.OleDb.OleDbConnection();
        connection.set_ConnectionString(c);
        connection.Open();

        strSql = "SELECT * FROM [MinhaTabela$]";

        //MinhaTabela é o nome da Planilha seguido por $ e entre []s.

       

        command = new System.Data.OleDb.OleDbCommand(strSql, connection);
        dr = command.ExecuteReader();


        while (dr.Read())
        {

            id = dr.get_Item(0);
            nome = dr.get_Item(1);
            info(strfmt("%1 - %2",id,nome));
        }
        dr.Close();
    }

     

     

    Em todo caso, quando você tiver o caso prático, será de grande valor pra comunidade!

    Espero ter contribuído!

     

    Abraço

     

    quinta-feira, 20 de dezembro de 2007 14:09
  • Pessoal,

    Mais uma:

    http://axaptabrasil.blogspot.com/2007/12/job-para-migrao-de-produtos-utilizando.html

     

    O Rodrigo Matiazo postou no blog uma forma de migração mais completa.

     

    Vale a pena dar uma olhada.

     

    Abraço.

     

    quinta-feira, 27 de dezembro de 2007 14:13
  •  

    Muito obrigado, realmente falta incluir no grupo de exportacao essa duas tabelas. Agora esta OK.

     

    Vc ja esta imprimindo notas fiscais?

    sexta-feira, 4 de janeiro de 2008 16:29
  • Sim, porém estamos usando um deenvolvimento próprio que imprime diretamente na impressora usando comandos ESC/P

     

    segunda-feira, 14 de janeiro de 2008 16:59