Aplica-se a
Dynamics NAV 2009

Este artigo se aplica ao Microsoft Dynamics NAV para todas as localidades de idiomas.

Sintomas

No Microsoft Dynamics NAV, quando você usar a planilha de requisição para criar uma ordem de compra ou quando você cria manualmente uma ordem de compra, a remessa e ordens especiais não consideram as informações definidas na ordem de venda relacionada. Portanto, a descrição, descrição 2 e o endereço de entrega do cabeçalho da ordem de venda e linhas não siga através do vinculado adquiriu a ordem.Esse problema ocorre nos seguintes produtos:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

Resolução

Informações sobre o hotfix

Um hotfix suportado está disponível agora na Microsoft. No entanto, apenas destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde o próximo service pack do Microsoft Dynamics NAV 2009 ou a próxima versão do Microsoft Dynamics NAV que contém esse hotfix.Observação: Em alguns casos, as taxas cobradas para suporte a chamadas podem ser canceladas se um profissional de suporte técnico do Microsoft Dynamics e produtos relacionados determina que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados para questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.

Informações sobre a instalação

A Microsoft fornece exemplos de programação somente para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um propósito específico. Este artigo presume que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas usadas para criar e depurar procedimentos. Engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.Observação: Antes de instalar esse hotfix, verifique se todos os usuários de cliente do Microsoft Navision estiver desconectados do sistema. Isso inclui usuários de cliente do Microsoft Navision Application Server (NAS). Você deve ser o único usuário do cliente conectado ao implementar esse hotfix.Para implementar esse hotfix, você deve ter uma licença de desenvolvedor.É recomendável que a conta de usuário na janela de Logins do Windows ou na janela banco de dados seja atribuída a ID de função "SUPER". Se a conta de usuário não pode ser atribuída a ID de função "SUPER", você deverá verificar se a conta de usuário tem as seguintes permissões:

  • A permissão Modificar para o objeto que será alterado.

  • A permissão de execução para o objeto de sistema 5210 de identificação de objeto e do objeto de sistema 9015 de identificação de objeto .

Observação: Você não precisa ter direitos para os armazenamentos de dados, a menos que você precise executar o reparo de dados.

Alterações de código

Observação: Sempre teste código correções em um ambiente controlado antes de aplicar as correções para os computadores de produção.Para resolver esse problema, execute as seguintes etapas:Observação: Leia ao acessar codeunit (333), pois ele é diferente de versão W1 na América do Norte. Ambos estão aqui com marcas de início e parada de cada versão.

  1. Altere o código na tabela de Cabeçalho da compra (38) da seguinte forma:

    1. Adicione a seguinte constante de texto global:Text051@1091: TextConst ' ENU = %1 campo na ordem de compra %2 deve ser o mesmo em vendas ordem de 3%.';

    2. Adicione as seguintes variáveis globais:

      • Nome: NameAddressDetails; Tipo de dados: Texto 512;

      • Nome: NameAddressDetails2; Tipo de dados: Texto 512;

    3. Adicione a seguinte função:CheckAndAddShipToAdd@46 (SalesHeader@1000: registrar 36; ShowError@1001: Boolean): Boolean;VAR PurchLine2@1002: Registro 39;Adicione o seguinte código para a função:

      IF ShowError THEN BEGIN  PurchLine2.RESET;  PurchLine2.SETRANGE("Document Type","Document Type"::Order);  PurchLine2.SETRANGE("Document No.","No.");  IF NOT PurchLine2.ISEMPTY THEN BEGIN    IF "Ship-to Name" <>SalesHeader."Ship-to Name" THEN      ERROR(Text051,FIELDCAPTION("Ship-to Name"),"No.",SalesHeader."No.");    IF "Ship-to Name 2" <>SalesHeader."Ship-to Name 2" THEN      ERROR(Text051,FIELDCAPTION("Ship-to Name 2"),"No.",SalesHeader."No.");    IF ("Ship-to Address" <>SalesHeader."Ship-to Address") THEN      ERROR(Text051,FIELDCAPTION("Ship-to Address"),"No.",SalesHeader."No.");    IF ("Ship-to Address 2" <> SalesHeader."Ship-to Address 2") THEN      ERROR(Text051,FIELDCAPTION("Ship-to Address 2"),"No.",SalesHeader."No.");    IF ("Ship-to Post Code" <>SalesHeader."Ship-to Post Code") THEN      ERROR(Text051,FIELDCAPTION("Ship-to Post Code"),"No.",SalesHeader."No.");    IF ("Ship-to City" <>SalesHeader."Ship-to City") THEN      ERROR(Text051,FIELDCAPTION("Ship-to City"),"No.",SalesHeader."No.");    IF ("Ship-to Contact" <>SalesHeader."Ship-to Contact") THEN      ERROR(Text051,FIELDCAPTION("Ship-to Contact"),"No.",SalesHeader."No.");  END ELSE BEGIN    // no purchase line exists    "Ship-to Name" := SalesHeader."Ship-to Name";    "Ship-to Name 2" := SalesHeader."Ship-to Name 2";    "Ship-to Address" := SalesHeader."Ship-to Address";    "Ship-to Address 2" := SalesHeader."Ship-to Address 2";    "Ship-to Post Code" := SalesHeader."Ship-to Post Code";    "Ship-to City" := SalesHeader."Ship-to City";    "Ship-to Contact" := SalesHeader."Ship-to Contact";  END;END ELSE BEGIN  NameAddressDetails :=    SalesHeader."Ship-to Name" + SalesHeader."Ship-to Name 2" +    SalesHeader."Ship-to Address" + SalesHeader."Ship-to Address 2" +    SalesHeader."Ship-to Post Code" + SalesHeader."Ship-to City" +    SalesHeader."Ship-to Contact";  IF NameAddressDetails2 = '' THEN    NameAddressDetails2 := NameAddressDetails;  EXIT(NameAddressDetails2 = NameAddressDetails);END;
    4. Adicione a seguinte função:DropShptSplOrderExists@48 (SalesHeader@1000: registrar 36): Boolean;VAR SalesLine2@1001: Registro 37;Adicione o seguinte código para a função:

      // returns TRUE if sales is either Drop Shipment of Special OrderSalesLine2.RESET;SalesLine2.SETRANGE("Document Type",SalesLine2."Document Type"::Order);SalesLine2.SETRANGE("Document No.",SalesHeader."No.");SalesLine2.SETRANGE("Drop Shipment",TRUE);IF NOT SalesLine2.ISEMPTY THEN  EXIT(TRUE);SalesLine2.SETRANGE("Drop Shipment");SalesLine2.SETRANGE("Special Order",TRUE);EXIT(NOT SalesLine2.ISEMPTY);
  2. Altere o código na função InsertReqWkshLine no relatório de Ordens de venda obter (698) da seguinte forma:Código existente

    ...    Quantity,    ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));  "Sales Order No." := SalesLine."Document No.";  "Sales Order Line No." := SalesLine."Line No.";  "Sell-to Customer No." := SalesLine."Sell-to Customer No.";  SalesHeader.GET(1,SalesLine."Document No.");  IF SpecOrder <>1 THEN    "Ship-to Code" := SalesHeader."Ship-to Code";  "Item Category Code" := SalesLine."Item Category Code";  Nonstock := SalesLine.Nonstock;  ...

    Código de substituição

    ...        Quantity,    ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));  "Sales Order No." := SalesLine."Document No.";  "Sales Order Line No." := SalesLine."Line No.";  "Sell-to Customer No." := SalesLine."Sell-to Customer No.";// Add the following lines.  Description := SalesLine.Description;  "Description 2" := SalesLine."Description 2";// End of the added lines.  SalesHeader.GET(1,SalesLine."Document No.");  IF SpecOrder <>1 THEN    "Ship-to Code" := SalesHeader."Ship-to Code";  "Item Category Code" := SalesLine."Item Category Code";  Nonstock := SalesLine.Nonstock;  ...
  3. Altere o código na função código a compra.-obter soltar Shpt. codeunit (76) da seguinte maneira:Código existente

    ...      IF RECORDLEVELLOCKING THEN    LOCKTABLE;  SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);  TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");  TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");  PurchLine.LOCKTABLE;  IF NOT RECORDLEVELLOCKING THEN    LOCKTABLE(TRUE,TRUE); // Only version check  SalesLine.LOCKTABLE;...      PurchLine."Document Type" := PurchLine."Document Type"::Order;      PurchLine."Document No." := "No.";      PurchLine."Line No." := NextLineNo;      CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);      PurchLine.Description := SalesLine.Description;      PurchLine."Sales Order No." := SalesLine."Document No.";      PurchLine."Sales Order Line No." := SalesLine."Line No.";      PurchLine."Drop Shipment" := TRUE;      EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');      PurchLine.VALIDATE("Inbound Whse. Handling Time");    ...

    Código de substituição

    ...   IF RECORDLEVELLOCKING THEN    LOCKTABLE;  SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);  TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");  TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");// Add the following lines.  IF DropShptSplOrderExists(SalesHeader) THEN    CheckAndAddShipToAdd(SalesHeader,TRUE);// End of the added lines.  PurchLine.LOCKTABLE;  IF NOT RECORDLEVELLOCKING THEN    LOCKTABLE(TRUE,TRUE); // Only version check  SalesLine.LOCKTABLE;...      PurchLine."Document Type" := PurchLine."Document Type"::Order;      PurchLine."Document No." := "No.";      PurchLine."Line No." := NextLineNo;      CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);      PurchLine.Description := SalesLine.Description;// Add the following line.      PurchLine."Description 2" := SalesLine."Description 2";// End of the added line.      PurchLine."Sales Order No." := SalesLine."Document No.";      PurchLine."Sales Order Line No." := SalesLine."Line No.";      PurchLine."Drop Shipment" := TRUE;      EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');      PurchLine.VALIDATE("Inbound Whse. Handling Time");          ...
  4. Altere o código na função GetDescriptionAndRcptName na codeunit ReqJnlManagement (330) da seguinte forma:Código existente

    ...       ReqLine.Type::"G/L Account":        IF GLAcc.GET(ReqLine."No.") THEN          Description := GLAcc.Name        ELSE          Description := '';// Delete the following lines.      ReqLine.Type::Item:        IF Item.GET(ReqLine."No.") THEN          Description := Item.Description        ELSE          Description := '';// End of the deleted lines.    END;  END;IF ReqLine."Vendor No." = '' THEN  BuyFromVendorName := ''        ...

    Código de substituição

    ...         ReqLine.Type::"G/L Account":        IF GLAcc.GET(ReqLine."No.") THEN          Description := GLAcc.Name        ELSE          Description := '';    END;  END;IF ReqLine."Vendor No." = '' THEN  BuyFromVendorName := ''    ...
  5. Observação: Codeunit (333) possui código diferente na versão norte-americana do vs versão em todo o mundo. Use a seção correta para a sua instalação.Para começar a versão na América do Norte codeunit (333), altere o código no neces. Wksh.-fazer pedidos da seguinte forma:

    1. Adicione a seguinte variável global:

      • Nome: DropShptSpecialOrderExists;

      • Tipo de dados: Boolean;

    2. Adicione as seguintes variáveis locais na função InsertPurchOrderLine:

      • Nome: SalesHeader; Tipo de dados: Registro (36);

      • Nome: DropShptSplOrderDiffAddress; Tipo de dados: Boolean;

      • Nome: CreateNewRecord; Tipo de dados: Boolean;

    3. Altere o código na função InsertPurchOrderLineda seguinte forma:Código existente

      ...// Delete the following lines.WITH ReqLine2 DO BEGIN  IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN    EXIT;  IF NOT PurchasingCode.GET("Purchasing Code") THEN    PurchasingCode."Special Order" := FALSE;  IF (PurchasingCode."Special Order" AND      (PurchSetup."Combine Special Orders Default" =       PurchSetup."Combine Special Orders Default"::"Always Combine") AND      ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR       (PurchOrderHeader."Location Code" <> "Location Code") OR       (PurchOrderHeader."Currency Code" <>"Currency Code") OR       (PrevPurchCode <>"Purchasing Code"))) OR     (NOT PurchasingCode."Special Order" AND       ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR       (PurchOrderHeader."Location Code" <>"Location Code") OR       (PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR       (PrevShipToCode <>"Ship-to Code") OR       (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR       (PurchOrderHeader."Currency Code" <> "Currency Code") OR       (PrevPurchCode <>"Purchasing Code")))  THEN BEGIN    InsertHeader(ReqLine2);    LineCount := 0;    NextLineNo := 0;    PrevPurchCode := "Purchasing Code";    PrevShipToCode := "Ship-to Code";  END;  IF (PurchasingCode."Special Order") AND      (PurchSetup."Combine Special Orders Default" =      PurchSetup."Combine Special Orders Default"::"Never Combine") AND      ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR       (PurchOrderHeader."Location Code" <> "Location Code") OR       (PurchOrderHeader."Currency Code" <>"Currency Code") OR       (PrevPurchCode <> "Purchasing Code")) THEN BEGIN    InsertHeader(ReqLine2);  END;// End of the deleted lines.  LineCount := LineCount + 1;  IF NOT PlanningResiliency THEN    Window.UPDATE(4,LineCount);       ...

      Código de substituição

      ...// Add the following lines.WITH ReqLine2 DO BEGIN  IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN    EXIT;  DropShptSpecialOrderExists := FALSE;  IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN    DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);    IF DropShptSpecialOrderExists THEN      DropShptSplOrderDiffAddress :=        NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);  END;  IF NOT PurchasingCode.GET("Purchasing Code") THEN    PurchasingCode."Special Order" := FALSE;  CreateNewRecord :=    (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR    (PurchOrderHeader."Location Code" <> "Location Code") OR    (PurchOrderHeader."Currency Code" <> "Currency Code") OR    (PrevPurchCode <>"Purchasing Code") OR    DropShptSplOrderDiffAddress;  IF PurchasingCode."Special Order" AND CreateNewRecord THEN BEGIN    InsertHeader(ReqLine2);    IF PurchSetup."Combine Special Orders Default" =       PurchSetup."Combine Special Orders Default"::"Always Combine"    THEN BEGIN      LineCount := 0;      NextLineNo := 0;      PrevPurchCode := "Purchasing Code";      PrevShipToCode := "Ship-to Code";    END;  END;  IF NOT PurchasingCode."Special Order" AND     (CreateNewRecord OR     (PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR     (PrevShipToCode <>"Ship-to Code") OR     (PurchOrderHeader."Order Address Code" <>"Order Address Code"))  THEN BEGIN    InsertHeader(ReqLine2);    LineCount := 0;    NextLineNo := 0;    PrevPurchCode := "Purchasing Code";    PrevShipToCode := "Ship-to Code";  END;// End of the added lines.  LineCount := LineCount + 1;  IF NOT PlanningResiliency THEN    Window.UPDATE(4,LineCount);       ...
    4. Altere o código na função InsertHeader da seguinte forma:Adicione a seguinte variável local:

      • Nome: SalesHeader;

      • Tipo de dados: Registro (36);

      Código existente

      ...   WITH ReqLine2 DO BEGIN  OrderCounter := OrderCounter + 1;  IF NOT PlanningResiliency THEN    Window.UPDATE(3,OrderCounter);  PurchSetup.GET;  PurchSetup.TESTFIELD("Order Nos.");// Delete the following line.  CLEAR(PurchOrderHeader);// End of the deleted line.  PurchOrderHeader.INIT;  PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;  PurchOrderHeader."No." := '';...      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");  END ELSE BEGIN    PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");    PurchOrderHeader.SetShipToForSpecOrder;  END;  PurchOrderHeader.MODIFY;  COMMIT;  IF RECORDLEVELLOCKING THEN    LOCKTABLE;  PurchOrderHeader.MARK(TRUE);END;      ...

      Código de substituição

      ...WITH ReqLine2 DO BEGIN  OrderCounter := OrderCounter + 1;  IF NOT PlanningResiliency THEN    Window.UPDATE(3,OrderCounter);  PurchSetup.GET;  PurchSetup.TESTFIELD("Order Nos.");  PurchOrderHeader.INIT;  PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;  PurchOrderHeader."No." := '';...      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");  END ELSE BEGIN    PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");    PurchOrderHeader.SetShipToForSpecOrder;  END;// Add the following lines.  IF DropShptSpecialOrderExists THEN BEGIN    SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.");    PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";    PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";    PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";    PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";    PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";    PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";    PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";  END;// End of the added lines.  PurchOrderHeader.MODIFY;  COMMIT;  IF RECORDLEVELLOCKING THEN    LOCKTABLE;  PurchOrderHeader.MARK(TRUE);END;       ...

    Para iniciar a versão W1 codeunit (333), altere o código no neces. Wksh.-ordem de fazer da seguinte forma:

    1. Adicione a seguinte variável global:

      • Nome: DropShptSpecialOrderExists;

      • Tipo de dados: Boolean;

    2. Adicione as seguintes variáveis locais na função InsertPurchOrderLine:

      • Nome: SalesHeader; Tipo de dados: Registro (36);

      • Nome: DropShptSplOrderDiffAddress; Tipo de dados: Boolean;

    3. Altere o código na função InsertPurchOrderLineda seguinte forma:Código existente

      ...   WITH ReqLine2 DO BEGIN  IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN    EXIT;  IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR     (PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR     (PrevShipToCode <> "Ship-to Code") OR     (PurchOrderHeader."Order Address Code" <>"Order Address Code") OR     (PurchOrderHeader."Currency Code" <>"Currency Code") OR// Delete the following line.     (PrevPurchCode <>"Purchasing Code")// End of the deleted line.  THEN BEGIN    InsertHeader(ReqLine2);    LineCount := 0;    NextLineNo := 0;    PrevPurchCode := "Purchasing Code";    PrevShipToCode := "Ship-to Code";  END; ...

      Código de substituição

      ...  WITH ReqLine2 DO BEGIN  IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN    EXIT;// Add the following lines.  DropShptSpecialOrderExists := FALSE;  IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN    DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);    IF DropShptSpecialOrderExists THEN      DropShptSplOrderDiffAddress :=        NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);  END;// End of the added lines.   IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR     (PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR     (PrevShipToCode <> "Ship-to Code") OR     (PurchOrderHeader."Order Address Code" <>"Order Address Code") OR     (PurchOrderHeader."Currency Code" <>"Currency Code") OR// Add the following lines.     (PrevPurchCode <> "Purchasing Code") OR     (DropShptSplOrderDiffAddress)// End of the added lines.  THEN BEGIN    InsertHeader(ReqLine2);    LineCount := 0;    NextLineNo := 0;    PrevPurchCode := "Purchasing Code";    PrevShipToCode := "Ship-to Code";  END; ...
    4. Altere o código na função InsertHeader da seguinte forma:Adicione a seguinte variável local:

      • Nome: SalesHeader;

      • Tipo de dados: Registro (36);

      Código existente

      ...    END ELSE BEGIN    PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");    PurchOrderHeader.SetShipToForSpecOrder;  END;  PurchOrderHeader.MODIFY;  COMMIT;  IF RECORDLEVELLOCKING THEN    LOCKTABLE;  PurchOrderHeader.MARK(TRUE);END;      ...

      Código de substituição

      ... END ELSE BEGIN    PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");    PurchOrderHeader.SetShipToForSpecOrder;  END;// Add the following lines.  IF DropShptSpecialOrderExists THEN BEGIN    IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN    PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";    PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";    PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";    PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";    PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";    PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";    PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";  END;// End of the added lines.  PurchOrderHeader.MODIFY;  COMMIT;  IF RECORDLEVELLOCKING THEN    LOCKTABLE;  PurchOrderHeader.MARK(TRUE);END;...
  6. Altere o código na função EnterPurchaseItemCrossRef na codeunit Integração de Dist. (5702) da seguinte forma:Código existente

    ...   IF Found THEN BEGIN      "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";      "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";      "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";// Delete the following lines.      IF ItemCrossReference.Description <>'' THEN BEGIN        Description := ItemCrossReference.Description;        "Description 2" := '';      END;    END ELSE BEGIN      "Cross-Reference No." := '';      "Cross-Reference Type" := "Cross-Reference Type"::" ";      "Cross-Reference Type No." := '';      IF "Variant Code" <>'' THEN BEGIN        ItemVariant.GET("No.","Variant Code");        Description := ItemVariant.Description;        "Description 2" := ItemVariant."Description 2";      END ELSE BEGIN        Item.GET("No.");        Description := Item.Description;        "Description 2" := Item."Description 2";      END;// End of the deleted lines.      GetItemTranslation;    END;  END;         ...

    Código de substituição

    ...       IF Found THEN BEGIN      "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";      "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";      "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";// Add the following lines.      "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";    END ELSE BEGIN      "Cross-Reference No." := '';      "Cross-Reference Type" := "Cross-Reference Type"::" ";      "Cross-Reference Type No." := '';// End of the added lines.      GetItemTranslation;    END;  END;    ...
  7. Altere o código na função GetSpecialOrders na codeunit Integração de Dist. (5702) da seguinte forma:Código existente

    ...    IF RECORDLEVELLOCKING THEN    LOCKTABLE;  SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);  TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");  TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");// Delete the following line.  PurchHeader.SetShipToForSpecOrder;// End of the deleted line.  PurchLine.LOCKTABLE;  IF NOT RECORDLEVELLOCKING THEN    LOCKTABLE(TRUE,TRUE); // Only version check  SalesLine.LOCKTABLE;       ...

    Código de substituição

    ...    IF RECORDLEVELLOCKING THEN    LOCKTABLE;  SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);  TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");  TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");// Add the following lines.  IF DropShptSplOrderExists(SalesHeader) THEN    CheckAndAddShipToAdd(SalesHeader,TRUE);// End of the added lines.  PurchLine.LOCKTABLE;  IF NOT RECORDLEVELLOCKING THEN    LOCKTABLE(TRUE,TRUE); // Only version check  SalesLine.LOCKTABLE;    ...
  8. Altere o código na função TransfldsFromSalesToPurchLine o código de Gerenciamento de documentos de cópia (6620) da seguinte forma:Código existente

    ...  "Expected Receipt Date" := FromSalesLine."Shipment Date";  "Bin Code" := FromSalesLine."Bin Code";  VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");  VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");  VALIDATE("Direct Unit Cost");END;     ...

    Código de substituição

    ...  "Expected Receipt Date" := FromSalesLine."Shipment Date";  "Bin Code" := FromSalesLine."Bin Code";  VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");  VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");  VALIDATE("Direct Unit Cost");// Add the following lines.  Description := FromSalesLine.Description;  "Description 2" := FromSalesLine."Description 2";// End of the added lines.END;       ...

Pré-requisitos:

Você deve ter um dos seguintes produtos instalados para aplicar esse hotfix:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

Informações sobre remoção

Você não pode remover esse hotfix.

Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Referências

VSTF DynamicsNAV SE: 238210

Observação: Este é um artigo de "PUBLICAÇÃO RÁPIDA" criado diretamente de dentro da organização de suporte da Microsoft. As informações contidas neste documento são fornecidas desta maneira, em resposta a problemas emergentes. Como um dos resultados da velocidade da publicação, os materiais podem incluir erros tipográficos e podem ser revisados a qualquer momento sem aviso prévio. Consulte os Termos de uso para outras considerações.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.