Inkonsekvens Hvis du ikke har Cartera tillatelse til å bruke veksler i den spanske versjonen av Microsoft Dynamics NAV 2009

Mal: CPR - mal for Navision kode Fiacx

Feil #: 213507 (Innholdsvedlikehold)

Selv når du ikke har tillatelse til å arbeide med Cartera i den spanske versjonen av Microsoft Dynamics NAV 2009, kan du bruke en betaling og en faktura fra kunde-eller leverandørpostene. Problemet er at når du "uten Cartera-tillatelser" bruker disse dokumentene (betaling og faktura) stykklisten skal være "Åpne" i dokumentene Cartera kundereskontro eller leverandørreskontro. Dette forårsaker inkonsekvenser i databasen. Dette problemet oppstår i følgende produkt:

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 R2

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 SP1

Oppløsning

Informasjon om hurtigreparasjon

En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV 2009 eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.

Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.

Hvis denne hurtigreparasjonen ikke er allment tilgjengelig for nedlasting (det vil si at det ikke er oppgitt en offentlig URL-adresse for hurtigreparasjonen i denne artikkelen), krever distribusjon godkjenning fra leder, ansvarlig gruppemedlem eller teknisk leder, og følgende informasjon gjelder:

  • Kunder må ha opplevd feilen som er nevnt i delen "Symptomer", for å få hurtigreparasjonen.

  • Du må holde rede på kundene du sender hurtigreparasjonen til, og skaffe dem neste oppdateringspakke når den blir tilgjengelig (Hvis en oppdateringspakke gis ut).

Denne hurtigreparasjonen vil bli inkludert i en spansk versjon av oppdateringspakken for Microsoft Dynamics NAV 2013.

Installasjonsinformasjon

Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre. De endrer imidlertid ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.

Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukerne i Microsoft Dynamics NAV-klienten er logget av systemet. Dette inkluderer tjenester for Microsoft Dynamics NAV Application Server (NAS). Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.

Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.

Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:

  • Endre-tillatelse for objektet du vil endre.

  • Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015

    -objektet.

Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.

Kodeendringer

Notat alltid teste koden reparasjoner i et kontrollert miljø før du bruker reparasjonene på produksjonsdatamaskinene. Før du bruker endringen, import alle SEPA-oppdateringer.

Hvis du vil løse dette problemet, gjør du følgende:

  1. Endre koden i den globale Variablesin Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode

    ...Text1100010@1100016 : TextConst 'ENU=Remove it from its payment order and try again.;ESP=B¢rrelo de la orden de pago e int‚ntelo de nuevo.';
    Text1100011@1100021 : TextConst 'ENU=Document Type is " " in Line %1. This posting will not realize the VAT, do you want to proceed?;ESP=El tipo de documento es " " en la l¡nea %1. Esta contabilizaci¢n no tendr en cuenta el IVA, ¨desea continuar?';
    Text1100012@1100022 : TextConst 'ENU=The posting process has been cancelled by the user.;ESP=El proceso de registro ha sido cancelado por el usuario.';
    AppliedAmountLCY2@1100053 : Decimal;
    AppliesToDocType@1100023 : Integer;

    PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45);
    BEGIN
    NewGLReg := GLReg;
    END;
    ...

    Ny kode

    ...Text1100010@1100016 : TextConst 'ENU=Remove it from its payment order and try again.;ESP=B¢rrelo de la orden de pago e int‚ntelo de nuevo.';
    Text1100011@1100021 : TextConst 'ENU=Document Type is " " in Line %1. This posting will not realize the VAT, do you want to proceed?;ESP=El tipo de documento es " " en la l¡nea %1. Esta contabilizaci¢n no tendr en cuenta el IVA, ¨desea continuar?';
    Text1100012@1100022 : TextConst 'ENU=The posting process has been cancelled by the user.;ESP=El proceso de registro ha sido cancelado por el usuario.';
    AppliedAmountLCY2@1100053 : Decimal;
    AppliesToDocType@1100023 : Integer;

    // Add the following line.
    Text1100013@1100026 : TextConst 'ENU=You do not have permissions to apply or unapply documents in the Cartera Module.';
    // End of the added line.


    PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45);
    BEGIN
    NewGLReg := GLReg;
    END;
    ...
  2. Endre koden i ApplyCustLedgEntryfunksjon i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode 1

    ...OldCustLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
    OldCustLedgEntry.SETRANGE("Customer No.",NewCVLedgEntryBuf."CV No.");
    OldCustLedgEntry.SETRANGE(Open,TRUE);

    OldCustLedgEntry.FINDFIRST;
    OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive);
    IF AppManagement.AccessToCartera THEN
    DocPost.CheckAppliedReceivableDoc(
    OldCustLedgEntry,GenJnlLine."System-Created Entry");
    ...

    Ny kode 1

    ...OldCustLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
    OldCustLedgEntry.SETRANGE("Customer No.",NewCVLedgEntryBuf."CV No.");
    OldCustLedgEntry.SETRANGE(Open,TRUE);

    OldCustLedgEntry.FINDFIRST;

    // Add the following line.
    CheckCarteraAccessPermissions(OldCustLedgEntry."Document Situation");
    // End of the added line.

    OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive);
    IF AppManagement.AccessToCartera THEN
    DocPost.CheckAppliedReceivableDoc(
    OldCustLedgEntry,GenJnlLine."System-Created Entry");
    ...

    Eksisterende kode 2

    ...// Check Cust Ledger Entry and add to Temp.
    IF SalesSetup."Appln. between Currencies" = SalesSetup."Appln. between Currencies"::None THEN
    OldCustLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldCustLedgEntry.FINDSET(FALSE,FALSE) THEN

    // Delete the following lines.
    REPEAT
    IF GenJnlApply.CheckAgainstApplnCurrency(
    NewCVLedgEntryBuf."Currency Code",
    OldCustLedgEntry."Currency Code",
    GenJnlLine."Account Type"::Customer,
    FALSE)
    THEN BEGIN
    IF (OldCustLedgEntry."Posting Date" > ApplyingDate) AND (OldCustLedgEntry."Applies-to ID" <> '') THEN
    ApplyingDate := OldCustLedgEntry."Posting Date";
    TempOldCustLedgEntry := OldCustLedgEntry;
    TempOldCustLedgEntry.INSERT;
    END;
    UNTIL OldCustLedgEntry.NEXT=0;
    // End of the deleted lines.


    TempOldCustLedgEntry.SETRANGE(Positive,NewCVLedgEntryBuf."Remaining Amount" > 0);

    IF TempOldCustLedgEntry.FIND('-') THEN BEGIN
    ...

    Ny kode 2

    ...// Check Cust Ledger Entry and add to Temp.
    IF SalesSetup."Appln. between Currencies" = SalesSetup."Appln. between Currencies"::None THEN
    OldCustLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldCustLedgEntry.FINDSET(FALSE,FALSE) THEN

    // Add the following lines.
    REPEAT
    CheckCarteraAccessPermissions(OldCustLedgEntry."Document Situation");
    IF GenJnlApply.CheckAgainstApplnCurrency(
    NewCVLedgEntryBuf."Currency Code",
    OldCustLedgEntry."Currency Code",
    GenJnlLine."Account Type"::Customer,
    FALSE)
    THEN BEGIN
    IF (OldCustLedgEntry."Posting Date" > ApplyingDate) AND (OldCustLedgEntry."Applies-to ID" <> '') THEN
    ApplyingDate := OldCustLedgEntry."Posting Date";
    TempOldCustLedgEntry := OldCustLedgEntry;
    TempOldCustLedgEntry.INSERT;
    END;
    UNTIL OldCustLedgEntry.NEXT=0;
    // End of the added lines.


    TempOldCustLedgEntry.SETRANGE(Positive,NewCVLedgEntryBuf."Remaining Amount" > 0);

    IF TempOldCustLedgEntry.FIND('-') THEN BEGIN...
  3. Endre koden i UnapplyCustLedgEntry -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode

    ...DtldCustLedgEntry2.SETRANGE("Customer No.",DtldCustLedgEntry."Customer No.");
    DtldCustLedgEntry2.SETFILTER("Entry Type",'>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry");
    UnapplyVATEntries := FALSE;
    DtldCustLedgEntry2.FINDSET;
    REPEAT
    DtldCustLedgEntry2.TESTFIELD(Unapplied,FALSE);
    IF (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR
    (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR
    (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)")
    THEN
    ...

    Ny kode

    ...DtldCustLedgEntry2.SETRANGE("Customer No.",DtldCustLedgEntry."Customer No.");
    DtldCustLedgEntry2.SETFILTER("Entry Type",'>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry");
    UnapplyVATEntries := FALSE;
    DtldCustLedgEntry2.FINDSET;
    REPEAT

    // Add the following line.
    CheckCarteraAccessPermissions(DtldCustLedgEntry2."Document Situation");
    // End of the added line.

    DtldCustLedgEntry2.TESTFIELD(Unapplied,FALSE);
    IF (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR
    (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR
    (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)")
    THEN
    ...
  4. Endre koden i ApplyVendLedgEntry -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode 1

    ...OldVendLedgEntry.SETRANGE("Document Type",GenJnlLine."Applies-to Doc. Type");
    OldVendLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
    OldVendLedgEntry.SETRANGE("Vendor No.",NewCVLedgEntryBuf."CV No.");
    OldVendLedgEntry.SETRANGE(Open,TRUE);
    OldVendLedgEntry.FINDFIRST;
    OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive);
    IF AppManagement.AccessToCartera THEN
    DocPost.CheckAppliedPayableDoc(
    OldVendLedgEntry,GenJnlLine."System-Created Entry");
    ...

    Ny kode 1

    ...OldVendLedgEntry.SETRANGE("Document Type",GenJnlLine."Applies-to Doc. Type");
    OldVendLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
    OldVendLedgEntry.SETRANGE("Vendor No.",NewCVLedgEntryBuf."CV No.");
    OldVendLedgEntry.SETRANGE(Open,TRUE);
    OldVendLedgEntry.FINDFIRST;

    // Add the following line.
    CheckCarteraAccessPermissions(OldVendLedgEntry."Document Situation");
    // End of the added line.

    OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive);
    IF AppManagement.AccessToCartera THEN
    DocPost.CheckAppliedPayableDoc(
    OldVendLedgEntry,GenJnlLine."System-Created Entry");
    ...

    Eksisterende kode 2

    ...//Check and Move Ledger Entries to Temp
    IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN
    OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN
    REPEAT
    IF GenJnlApply.CheckAgainstApplnCurrency(
    NewCVLedgEntryBuf."Currency Code",
    OldVendLedgEntry."Currency Code",
    GenJnlLine."Account Type"::Vendor,
    FALSE)
    ...

    Ny kode 2

    ...//Check and Move Ledger Entries to Temp
    IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN
    OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN
    REPEAT

    // Add the following line.
    CheckCarteraAccessPermissions(OldVendLedgEntry."Document Situation");
    // End of the added line.

    IF GenJnlApply.CheckAgainstApplnCurrency(
    NewCVLedgEntryBuf."Currency Code",
    OldVendLedgEntry."Currency Code",
    GenJnlLine."Account Type"::Vendor,
    FALSE)
    ...
  5. Endre koden i UnapplyVendLedgEntry -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode

    ...DtldVendLedgEntry2.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
    DtldVendLedgEntry2.SETRANGE("Transaction No.",DtldVendLedgEntry."Transaction No.");
    DtldVendLedgEntry2.SETRANGE("Vendor No.",DtldVendLedgEntry."Vendor No.");
    DtldVendLedgEntry2.SETFILTER("Entry Type",'>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry");
    DtldVendLedgEntry2.FINDSET;
    UnapplyVATEntries := FALSE;
    REPEAT
    IF (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR
    (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR
    (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)")
    ...

    Ny kode

    ...DtldVendLedgEntry2.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
    DtldVendLedgEntry2.SETRANGE("Transaction No.",DtldVendLedgEntry."Transaction No.");
    DtldVendLedgEntry2.SETRANGE("Vendor No.",DtldVendLedgEntry."Vendor No.");
    DtldVendLedgEntry2.SETFILTER("Entry Type",'>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry");
    DtldVendLedgEntry2.FINDSET;

    // Add the following line.
    CheckCarteraAccessPermissions(DtldVendLedgEntry2."Document Situation");
    // End of the added line.

    UnapplyVATEntries := FALSE;
    REPEAT
    IF (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR
    (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR
    (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)")
    ...
  6. Endre koden i CheckCarteraAccessPermissions -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode

    ...CLEAR(GenJnlLine2);

    EXIT(IsOK);
    END;

    BEGIN
    END.
    }
    }
    ...

    Ny kode

    ...CLEAR(GenJnlLine2);

    EXIT(IsOK);
    END;

    // Add the following lines.
    LOCAL PROCEDURE CheckCarteraAccessPermissions@1100024(DocumentSituation@1170001 : ' ,Posted BG/PO,Closed BG/PO,BG/PO,Cartera,Closed Documents');
    BEGIN
    IF (DocumentSituation <> DocumentSituation::" ") AND (NOT AppManagement.AccessToCartera) THEN
    ERROR(Text1100013);
    END;

    // End of the added lines.

    BEGIN
    END.
    }
    }
    ...

Forutsetninger

Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 R2

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 SP1

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Referanser

VSFT DynamicsNAVSE: 354515

Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Brukfor andre hensyn.

Author: Vanessa.Garcia
Writer: v-luzo
Teknisk redaktør: Vanessa.Garcia
Editor:

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×