Messaggio di errore "Quantity (Base) must be greater than 0 in Bin Content Location Code='[location code]'" quando si pubblica una nota credito di acquisto per un articolo utilizzato in un processo nella versione nordamericana di Microsoft Dynamics NAV 2009

Si applica a
Dynamics NAV 2009

Questo articolo si applica a Microsoft Dynamics NAV per i paesi e le impostazioni locali della lingua seguenti.

  • Inglese (Canada) (en-ca)
  • Inglese (Stati Uniti) (en-us)
  • Spagnolo (Messico) (es-mx)
  • Francese (Canada) (fr-ca)

Sintomi

Si supponga di applicare hotfix 2487667 e hotfix 2578695 nella versione nordamericana di Microsoft Dynamics NAV 2009 Service Pack 1 (SP1). Quando si prova a registrare una nota credito di acquisto per un articolo usato in una commessa in cui è specificato un codice ubicazione obbligatorio per la collocazione, viene visualizzato il messaggio di errore seguente:

Nota

Quantity (Base) deve essere maggiore di 0 in Bin Content Location Code='location code'; Bin Code='codice bin'; Item No.='item'; Variant Code='',Unit of Measure Code='PCS'.

Questo problema si verifica nei prodotti seguenti:

  • Versione nordamericana di Microsoft Dynamics NAV 2009 R2
  • Versione nordamericana di Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

      

Risoluzione

Informazioni sull'aggiornamento rapido

È ora disponibile un hotfix supportato da Microsoft. Tuttavia, è destinato solo a correggere il problema descritto in questo articolo. Applicala solo ai sistemi che stanno riscontrando questo problema specifico. Questo hotfix potrebbe ricevere ulteriori test. Pertanto, se non si è gravemente colpiti da questo problema, è consigliabile attendere il prossimo Service Pack di Microsoft Dynamics NAV o la prossima versione di Microsoft Dynamics NAV che contiene questo hotfix.

Nota In casi speciali, gli addebiti normalmente sostenuti per le chiamate al supporto tecnico possono essere annullati se un professionista del supporto tecnico per Microsoft Dynamics e i prodotti correlati determinano che un aggiornamento specifico risolverà il problema. I soliti costi del supporto verranno applicati a domande e problemi di supporto aggiuntivi che non sono idonei per l'aggiornamento specifico in questione.

            
          

Informazioni sull'installazione

Microsoft fornisce esempi di programmazione a titolo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, a titolo esemplificativo e non esaustivo, le garanzie implicite di commerciabilità o idoneità a uno scopo particolare. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione oggetto della dimostrazione e con gli strumenti utilizzati per la creazione e il debug delle procedure. I tecnici del supporto Tecnico Microsoft possono spiegare le funzionalità di una particolare procedura, ma non modificarli per fornire funzionalità aggiuntive o creare procedure in base a specifici requisiti.

Nota Prima di installare questo hotfix, verificare che tutti gli utenti client di Microsoft Navision siano disconnessi dal sistema. Sono inclusi gli utenti client di Microsoft Navision Application Services (NAS). Dovresti essere l'unico utente client connesso quando implementi questo hotfix.

Per implementare questo hotfix, è necessario disporre di una licenza per sviluppatori.

È consigliabile assegnare l'ID ruolo "SUPER" all'account utente nella finestra Accessi di Windows o nella finestra Accessi database. Se all'account utente non è possibile assegnare l'ID ruolo "SUPER", è necessario verificare che l'account utente disponga delle autorizzazioni seguenti:

  • Autorizzazione modifica per l'oggetto che si desidera modificare.
  • Autorizzazione Execute per l'oggetto System Object ID 5210 e per l'oggetto System Object ID 9015.

                
Nota: non è necessario disporre dei diritti per gli archivi dati a meno che non sia necessario eseguire il ripristino dei dati.

Modifiche al codice

Nota Verifica sempre le correzioni del codice in un ambiente controllato prima di applicare le correzioni ai computer di produzione.
Per risolvere il problema, attenersi alla procedura seguente:

  1. Modificare il codice nelle variabili globali nella codeunit Purch.-Post (90) come segue:
    Codice esistente

    ...
    TotalChargeAmtLCY@1185 : Decimal;
    TotalChargeAmt2@1186 : Decimal;
    TotalChargeAmtLCY2@1187 : Decimal;
    Text059@1102601000 : TextConst 'ENU=You must assign item charge %1 if you want to invoice it.';
    Text060@1102601001 : TextConst 'ENU=You can not invoice item charge %1 because there is no item ledger entry to assign it to.';
    

    Codice di replacment

    ...
    TotalChargeAmtLCY@1185 : Decimal;
    TotalChargeAmt2@1186 : Decimal;
    TotalChargeAmtLCY2@1187 : Decimal;
    Text059@1102601000 : TextConst 'ENU=You must assign item charge %1 if you want to invoice it.';
    Text060@1102601001 : TextConst 'ENU=You can not invoice item charge %1 because there is no item ledger entry to assign it to.';
    
    // Add the following line.
    PositiveWhseEntrycreated@1188 : Boolean;
    
  2. Modificare il codice nella funzione PostItemJnlLine nella codeunit Purch.-Post (90) come segue:
    Codice esistente

    ...
    IF PostWhseJnlLine THEN BEGIN
    ItemTrackingMgt.SplitWhseJnlLine(TempWhseJnlLine,TempWhseJnlLine2,TempWhseTrackingSpecification,FALSE);
    IF TempWhseJnlLine2.FIND('-') THEN
    REPEAT
    WhseJnlPostLine.RUN(TempWhseJnlLine2);
    IF RevertWarehouseEntry(TempWhseJnlLine2,"Job No.",PostJobConsumptionBeforePurch) THEN
    WhseJnlPostLine.RUN(TempWhseJnlLine2);
    UNTIL TempWhseJnlLine2.NEXT = 0;
    TempWhseTrackingSpecification.DELETEALL;
    ...
    

    Codice sostitutivo

    ... 
    IF PostWhseJnlLine THEN BEGIN
    ItemTrackingMgt.SplitWhseJnlLine(TempWhseJnlLine,TempWhseJnlLine2,TempWhseTrackingSpecification,FALSE);
    IF TempWhseJnlLine2.FIND('-') THEN
    REPEAT
    
    // Add the following lines.
    IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN
    CreatePositiveEntry(TempWhseJnlLine2,"Job No.",PostJobConsumptionBeforePurch);
    // End of the lines.
    
    WhseJnlPostLine.RUN(TempWhseJnlLine2);
    IF RevertWarehouseEntry(TempWhseJnlLine2,"Job No.",PostJobConsumptionBeforePurch) THEN
    WhseJnlPostLine.RUN(TempWhseJnlLine2);
    UNTIL TempWhseJnlLine2.NEXT = 0;
    TempWhseTrackingSpecification.DELETEALL;
    ...
    
  3. Modificare il codice nella funzione RevertWarehouseEntry nella codeunit Purch.-Post (90) come segue:
    Codice esistente

    ...
    // Delete the following line.
    IF PostJobConsumptionBeforePurch OR (JobNo = '') THEN
    
    EXIT(FALSE);
    WITH TempWhseJnlLine DO BEGIN
    "Entry Type" := "Entry Type"::"Negative Adjmt.";
    Quantity := -Quantity;
    "Qty. (Base)" := -"Qty. (Base)";
    "From Bin Code" := "To Bin Code";
    "To Bin Code" := '';
    END;
    EXIT(TRUE);
    ...
    

    Codice sostitutivo

    ...
    // Add the following line.
    IF PostJobConsumptionBeforePurch OR (JobNo = '') OR PositiveWhseEntrycreated THEN
    
    EXIT(FALSE);
    WITH TempWhseJnlLine DO BEGIN
    "Entry Type" := "Entry Type"::"Negative Adjmt.";
    Quantity := -Quantity;
    "Qty. (Base)" := -"Qty. (Base)";
    "From Bin Code" := "To Bin Code";
    "To Bin Code" := '';
    END;
    EXIT(TRUE);
    ...
    
  4. Creare una nuova funzione CreatePositiveEntry nel modo seguente:

    PROCEDURE CreatePositiveEntry@93(TempWhsJnlLine@1000 : Record 7311;JobNo@1001 : Code[20];PostJobConsumptionBeforePurch@1002 : Boolean);
    
  5. Aggiungere il codice seguente nella funzione CreatePositiveEntry:

    IF PostJobConsumptionBeforePurch OR (JobNo <> '') THEN BEGIN
      WITH TempWhsJnlLine DO BEGIN
        Quantity := -Quantity;
        "Qty. (Base)" := -"Qty. (Base)";
        "Qty. (Absolute)" := -"Qty. (Absolute)";
        "To Bin Code" := "From Bin Code";
        "From Bin Code" := '';
      END;
      WhseJnlPostLine.RUN(TempWhsJnlLine);
      PositiveWhseEntrycreated := TRUE;
    END;
    
    

Prerequisiti

Per applicare questo hotfix, è necessario che sia installato uno dei prodotti seguenti:

  • Versione nordamericana di Microsoft Dynamics NAV 2009 R2
  • Versione nordamericana di Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Per applicare questo hotfix, sono richiesti gli aggiornamenti rapidi seguenti:

  • Hotfix 2487667
      Per altre informazioni sui 2487667 di aggiornamento rapido, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
    2487667 i movimenti Warehouse non vengono aggiornati con tutte le righe di tracciabilità articolo in un giornale di registrazione commessa quando si registra un articolo nel giornale di registrazione commessa in una collocazione in Microsoft Dynamics NAV 2009
  • Hotfix 2578695
      Per altre informazioni sui 2578695 di aggiornamento rapido, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
    2578695 messaggio di errore "È necessario specificare codice collocazione nel modello di giornale di registrazione righe registrazioni commessa" quando si fattura (o si riceve e quindi si fattura) un ordine di acquisto per un articolo assegnato a un processo e si trova in una posizione obbligatoria di Collocazione in Microsoft Dynamics NAV

Informazioni sulla rimozione

Non è possibile rimuovere questo hotfix.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Nota Questo è un articolo "FAST PUBLISH" creato direttamente dall'organizzazione di supporto Microsoft. Le informazioni contenute nel presente documento vengono fornite così come sono in risposta ai problemi emergenti. A causa della velocità di reso disponibile, i materiali possono includere errori tipografici e possono essere modificati in qualsiasi momento senza preavviso. Per altre considerazioni, vedere Condizioni per l'utilizzo .