Applies ToMicrosoft Dynamics AX 2009 Dynamics AX 2009 Service Pack 1

Este artigo aplica-se ao Microsoft Dynamics AX para todas as regiões.

Sintomas

Quando regista uma encomenda de compra no Microsoft Dynamics AX 2009, recebe a seguinte mensagem de erro:

Não é possível criar um registo no cabeçalho de encomenda de compra - Actualizar tabela (PurchParmSubTable).

Este problema ocorre caso se verifique uma das seguintes condições:

  • Activar a definição de "configuração de pista de auditoria da assinatura electrónica de ciências da vida" para todas as tabelas.

  • Criar um registo para a tabela comuns.

  • Definir a tabela de PurchParmTable no registo de base de dados.

Este problema ocorre quando é registada uma encomenda de compra, uma lista de guias de remessa, remessa e uma factura. Este problema ocorre nos seguintes produtos:

  • Microsoft Dynamics AX 2009 com o Service Pack 1

  • Microsoft Dynamics AX 2009

Resolução

Informações sobre a correcção

Agora tem uma correcção suportada disponível na Microsoft. Contudo, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde o próximo service pack do Microsoft Dynamics AX 2009 ou a próxima versão que contenha esta correcção. Nota Em casos especiais, os custos normalmente inerentes para suporte chamadas poderão ser anuladas se um técnico de suporte técnico do Microsoft Dynamics e produtos relacionados determina que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas e questões de suporte adicionais que não sejam qualificáveis para a atualização específica em questão.

Informações de instalação

Antes de instalar esta correcção, certifique-se de que os utilizadores de cliente do Microsoft Dynamics AX são registados no sistema. Deve ser o único usuário do cliente que tem sessão iniciada quando implementar esta correcção. Para implementar esta correcção, tem de ter uma licença de desenvolvedor.Nota Recomenda-se que a conta de utilizador na janela Logins do Windows ou na janela Logins de base de dados seja membro do grupo de administradores utilizadores no Microsoft Dynamics AX.

Alterações de código

A Microsoft fornece exemplos de programação apenas a título ilustrativo, sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas que são utilizadas para criar e depurar procedimentos. Técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.Sempre o código de ensaio corrige num ambiente controlado antes de aplicar as correcções para os computadores de produção.Para resolver este problema, siga os estes passos:

  1. Substitui o código do método Inserir na tabela PurchParmSubTable do seguinte modo:

    public void insert(){    PurchParmSubTable tempPurchParmSubTable;    ;    select tempPurchParmSubTable where        tempPurchParmSubTable.ParmId == this.ParmId        && tempPurchParmSubTable.TableRefId == this.TableRefId        && tempPurchParmSubTable.OrigPurchId == this.OrigPurchId;    if(tempPurchParmSubTable.RecId == 0)    {        super();    }}
  2. Substitui o código do método de createFromPurchParmTable na tabela PurchParmSubTable do seguinte modo:

    static PurchParmSubTable createFromPurchParmTable(PurchParmTable _purchParmTable, boolean _insert = true){    PurchParmSubTable   purchParmSubTable;    systemSequence systemSequence;    ;    ttsbegin;    purchParmSubTable.clear();    purchParmSubTable.initValue();    purchParmSubTable.initFromPurchParmTable(_purchParmTable);    if (_insert)    {        systemSequence = new systemSequence();        purchParmSubTable.RecId = systemSequence.reserveValues(1, tablenum(PurchParmSubTable));        purchParmSubTable.insert();    }    ttscommit;    return purchParmSubTable;}
  3. Substitui o código do método Inserir na tabela SalesParmSubTable do seguinte modo:

    public void insert(){    SalesParmSubTable tempSalesParmSubTable;    ;    select tempSalesParmSubTable where        tempSalesParmSubTable.ParmId == this.ParmId        && tempSalesParmSubTable.TableRefId == this.TableRefId        && tempSalesParmSubTable.OrigSalesId == this.OrigSalesId        && tempSalesParmSubTable.subId == this.subId;    if(tempSalesParmSubTable.RecId == 0)    {        super();    }}

Nota Tem de intercalar todas as personalizações existentes nestes métodos.

Pré-requisitos

Não existem pré-requisitos.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.