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.
-
Altere o código na tabela de Cabeçalho da compra (38) da seguinte forma:
-
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%.';
-
Adicione as seguintes variáveis globais:
-
Nome: NameAddressDetails; Tipo de dados: Texto 512;
-
Nome: NameAddressDetails2; Tipo de dados: Texto 512;
-
-
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;
-
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);
-
-
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; ...
-
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"); ...
-
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 := '' ...
-
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:
-
Adicione a seguinte variável global:
-
Nome: DropShptSpecialOrderExists;
-
Tipo de dados: Boolean;
-
-
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;
-
-
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); ...
-
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:
-
Adicione a seguinte variável global:
-
Nome: DropShptSpecialOrderExists;
-
Tipo de dados: Boolean;
-
-
Adicione as seguintes variáveis locais na função InsertPurchOrderLine:
-
Nome: SalesHeader; Tipo de dados: Registro (36);
-
Nome: DropShptSplOrderDiffAddress; Tipo de dados: Boolean;
-
-
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; ...
-
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;...
-
-
-
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; ...
-
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; ...
-
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.