Požymiai
Yra netinkamas dokumento tipo naudojama, kai importuojate LSV DD (Tiesioginis debetas) failus ir atmesti mokėjimai yra Šveicarijos versiją Microsoft Dynamics NAV 2009. Kai mokėjimas buvo atšauktas, dokumento tipo vis dar yra lygi mokėjimo. Tačiau negalite rašyti šių įrašų dėl neteisingi prisijungimo sumos. Atlikite veiksmus, kodo pasikeitimus skyriuje išspręsti šią problemą. Ši problema iškyla faile šiems produktams:
-
Šveicarijos versiją Microsoft Dynamics NAV 2009 R2
-
Šveicarijos Microsoft Dynamics NAV 2009 SP1 versiją
Sprendimas
Karštųjų pataisų informacija
Palaikomą naujausią pataisą dabar yra Microsoft. Tačiau jos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Taikyti ją tik sistemoms, kuriose kyla ši konkreti problema. Šios karštosios pataisos gali būti papildomai išbandoma. Todėl, jei jums nelabai trukdo Ši problema, rekomenduojame palaukti kito "Microsoft Dynamics NAV 2009" pakeitimų paketo arba kitą versiją Microsoft Dynamics NAV, kuriame bus šios karštosios pataisos.
Pastaba. Konkrečiais atvejais už palaikymo skambučius gali būti atšaukti, jei techninės pagalbos specialistas Microsoft Dynamics ir susijusių produktų taikomi įprasti mokesčiai nustato, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomos palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą.
Diegimo informacija
Microsoft pateikia programavimo pavyzdžius tik, tačiau nesuteikia jokių aiškių arba numanomų garantijų. Tai apima, bet neapsiribojant, numanomas garantijas dėl perkamumo ir tinkamumo konkrečiam tikslui. Šis straipsnis parašytas galvojant, kad esate susipažinę su pateikta programavimo kalba ir įrankiais, kurie yra naudojami procedūroms kurti ir derinti. "Microsoft" palaikymo inžinieriai gali padėti paaiškindami konkrečios procedūros funkcines galimybes. Tačiau jie nekeis šių pavyzdžių, kad numatytų papildomą funkcinę galimybę arba sukurtų konkrečius jūsų reikalavimus atitinkančias procedūras.
Pastaba. Prieš diegdami šias karštąsias pataisas, patikrinkite, kad visi Microsoft Dynamics NAV kliento vartotojai išsiregistravę sistema. Tai apima Microsoft Dynamics NAV programų serverio (NAS) paslaugas. Jums turėtų būti tik kliento vartotojo, kuris yra prisijungęs, kai atliekate šias karštąsias pataisas.
Norint pritaikyti šią karštąją pataisą, turite programų kūrėjo licencijos.
Rekomenduojame, kad vartotojo abonemento Windows registravimosi lange arba duomenų bazės prisijungimų langas priskirti "SUPER" vaidmenį ID. Jei vartotojo abonementas negali būti priskirta "SUPER" ID., turi patikrinti, kad vartotojo abonementas turi šias teises:
-
Keisti teisės objektas, kuris bus pakeisti.
-
Teisės vykdyti sistemos objekto ID 5210 objekto ir sistemos objekto ID 9015
objekto.
Pastaba. Jūs neturite turėti teisių į duomenų parduotuvių, nebent jūs turite atlikti duomenų atkūrimo.
Pastaba.
Pastaba. Visada bandymas kodas nustato kontroliuojamoje aplinkoje prieš taikydami nustato savo gamybos kompiuteriams.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
-
Pakeisti pasaulio kintamuosius LSVMgt Kodinys (3010831) kodą taip:
Esamas kodas...Text11500@1150080 : TextConst 'ENU=Could not find Transaction No. %1 in Debit Direct Order No. %2.';
FileMgt@1150042 : Codeunit 419;
FileSystemObject@1150081 : Automation "{420B2830-E718-11CF-893D-00A0C9054228} 1.0:{0D43FE01-F093-11CF-8940-00A0C9054228}:'Microsoft Scripting Runtime'.FileSystemObject";
PROCEDURE ReleaseCustLedgEntries@1(_GenJnlLine@1150000 : Record 81);
BEGIN
...Pastaba.
...Text11500@1150080 : TextConst 'ENU=Could not find Transaction No. %1 in Debit Direct Order No. %2.';
FileMgt@1150042 : Codeunit 419;
FileSystemObject@1150081 : Automation "{420B2830-E718-11CF-893D-00A0C9054228} 1.0:{0D43FE01-F093-11CF-8940-00A0C9054228}:'Microsoft Scripting Runtime'.FileSystemObject";
// Add the following line.
IsCancellationExist@1150082 : Boolean;
// End of the added line.
PROCEDURE ReleaseCustLedgEntries@1(_GenJnlLine@1150000 : Record 81);
BEGIN
... -
Pakeisti ImportDebitDirectFile funkcija LSVMgt Kodinys (3010831):
Esamas kodas 1...FeeAmount := 0;
TotalRecRecords := 0;
TotalRecRecordsRev := 0;
// Journal name for no serie
GlBatchName.GET(ActGenJnlLine."Journal Template Name",ActGenJnlLine."Journal Batch Name");
...Atsarginis kodas 1
...FeeAmount := 0;
TotalRecRecords := 0;
TotalRecRecordsRev := 0;
// Add the following line.
IsCancellationExist := FALSE;
// End of the added line.
// Journal name for no serie
GlBatchName.GET(ActGenJnlLine."Journal Template Name",ActGenJnlLine."Journal Batch Name");
...Esamas kodas 2
...// Split File line into fields
// Delete the following lines.
FileID := COPYSTR(Line,1,3);
IF FileID <> '036' THEN
ERROR(Text049 + Text011);
TA := COPYSTR(Line,36,2);
IF NOT (TA = '97') THEN BEGIN
TotalRecord := FALSE;
EVALUATE(InvoiceAmt,COPYSTR(Line,54,13));
EVALUATE(yyCR,COPYSTR(Line,4,2));
EVALUATE(mmCR,COPYSTR(Line,6,2));
EVALUATE(ddCR,COPYSTR(Line,8,2));
IF yyCR > 98 THEN
PostDate := DMY2DATE(ddCR,mmCR,1900 + yyCR)
ELSE
PostDate := DMY2DATE(ddCR,mmCR,2000 + yyCR);
DebitDirectOrderNo := COPYSTR(Line,34,2);
EVALUATE(DebitDirectRecordNo,COPYSTR(Line,38,6));
EVALUATE(RejectionCode,COPYSTR(Line,543,2));
Currency := COPYSTR(Line,51,3);
// DEBIT DIRECT
LsvJour.RESET;
LsvJour.SETRANGE("Credit Date",PostDate);
LsvJour.SETRANGE("DebitDirect Orderno.",DebitDirectOrderNo);
IF NOT LsvJour.FIND('+') THEN
ERROR(Text059,DebitDirectOrderNo,PostDate);
LsvJournalLine.RESET;
//CH0001.begin
LsvJournalLine.SETCURRENTKEY("LSV Journal No.","Transaction No.");
LsvJournalLine.SETRANGE("LSV Journal No.",LsvJour."No.");
//LsvJournalLine.SETRANGE("Line No.",DebitDirectRecordNo);
LsvJournalLine.SETRANGE("Transaction No.",DebitDirectRecordNo);
//LsvJournalLine.FIND('-');
IF NOT LsvJournalLine.FINDFIRST THEN BEGIN
d.CLOSE;
ERROR(Text11500, DebitDirectRecordNo, DebitDirectOrderNo);
END;
//CH0001.end
InInvoiceNo := LsvJournalLine."Applies-to Doc. No.";
// END DEBIT DIRECT
// Process transaction of credit record
CASE TA OF
'81': // Credit
BEGIN
Transaction := Transaction::Credit;
LsvJournalLine."LSV Status" := LsvJournalLine."LSV Status"::Open;
LsvJournalLine."DD Rejection Reason" := LsvJournalLine."DD Rejection Reason"::" ";
LsvJournalLine.MODIFY;
IF LSVSetup.READPERMISSION THEN BEGIN
ClosedByESR(InInvoiceNo);
END;
END;
'84': // Cancellation "Storno"
BEGIN
IF RejectionCode <> 2 THEN
Transaction := Transaction::Correction
ELSE
Transaction := Transaction::Cancellation;
LsvJournalLine."LSV Status" := LsvJournalLine."LSV Status"::Rejected;
LsvJournalLine."DD Rejection Reason" := RejectionCode;
LsvJournalLine.MODIFY;
END;
ELSE
ERROR(Text023 + Text011);
END;
END ELSE BEGIN
TotalRecord := TRUE;
EVALUATE(TempAmount,COPYSTR(Line,60,13));
CreditAmount := CreditAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,82,13));
RejectionAmount := RejectionAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,104,13));
ReversalAmount := ReversalAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,120,11));
FeeAmount := FeeAmount + TempAmount / 100;
// Credit Count
EVALUATE(TempAmount,COPYSTR(Line,54,6));
TotalRecRecords := TotalRecRecords + TempAmount;
// Rejection Count
EVALUATE(TempAmount,COPYSTR(Line,76,6));
TotalRecRecordsRev := TotalRecRecordsRev + TempAmount;
// Reversal Count
EVALUATE(TempAmount,COPYSTR(Line,98,6));
TotalRecRecordsRev := TotalRecRecordsRev + TempAmount;
END;
// END OF SPLIT
IF NOT (TotalRecord) AND (Transaction <> Transaction::Correction) THEN BEGIN
// End of the deleted lines.
// Insert GL line
GenJournalLine.INIT;
GenJournalLine."Journal Template Name" := ActGenJnlLine."Journal Template Name";
...Atsarginis kodas 2
...// Split File line into fields
// Add the following lines.
FileID := COPYSTR(Line,1,3);
IF FileID <> '036' THEN
ERROR(Text049 + Text011);
TA := COPYSTR(Line,36,2);
IF NOT (TA = '97') THEN BEGIN
TotalRecord := FALSE;
EVALUATE(InvoiceAmt,COPYSTR(Line,54,13));
EVALUATE(yyCR,COPYSTR(Line,4,2));
EVALUATE(mmCR,COPYSTR(Line,6,2));
EVALUATE(ddCR,COPYSTR(Line,8,2));
IF yyCR > 98 THEN
PostDate := DMY2DATE(ddCR,mmCR,1900 + yyCR)
ELSE
PostDate := DMY2DATE(ddCR,mmCR,2000 + yyCR);
DebitDirectOrderNo := COPYSTR(Line,34,2);
EVALUATE(DebitDirectRecordNo,COPYSTR(Line,38,6));
EVALUATE(RejectionCode,COPYSTR(Line,543,2));
Currency := COPYSTR(Line,51,3);
// DEBIT DIRECT
LsvJour.RESET;
LsvJour.SETRANGE("Credit Date",PostDate);
LsvJour.SETRANGE("DebitDirect Orderno.",DebitDirectOrderNo);
IF NOT LsvJour.FIND('+') THEN
ERROR(Text059,DebitDirectOrderNo,PostDate);
LsvJournalLine.RESET;
//CH0001.begin
LsvJournalLine.SETCURRENTKEY("LSV Journal No.","Transaction No.");
LsvJournalLine.SETRANGE("LSV Journal No.",LsvJour."No.");
//LsvJournalLine.SETRANGE("Line No.",DebitDirectRecordNo);
LsvJournalLine.SETRANGE("Transaction No.",DebitDirectRecordNo);
//LsvJournalLine.FIND('-');
IF NOT LsvJournalLine.FINDFIRST THEN BEGIN
d.CLOSE;
ERROR(Text11500, DebitDirectRecordNo, DebitDirectOrderNo);
END;
//CH0001.end
InInvoiceNo := LsvJournalLine."Applies-to Doc. No.";
// END DEBIT DIRECT
// Process transaction of credit record
CASE TA OF
'81': // Credit
BEGIN
Transaction := Transaction::Credit;
LsvJournalLine."LSV Status" := LsvJournalLine."LSV Status"::Open;
LsvJournalLine."DD Rejection Reason" := LsvJournalLine."DD Rejection Reason"::" ";
LsvJournalLine.MODIFY;
IF LSVSetup.READPERMISSION THEN BEGIN
ClosedByESR(InInvoiceNo);
END;
END;
'84': // Cancellation "Storno"
BEGIN
IF RejectionCode <> 2 THEN
Transaction := Transaction::Correction
ELSE
Transaction := Transaction::Cancellation;
LsvJournalLine."LSV Status" := LsvJournalLine."LSV Status"::Rejected;
LsvJournalLine."DD Rejection Reason" := RejectionCode;
LsvJournalLine.MODIFY;
END;
ELSE
ERROR(Text023 + Text011);
END;
END ELSE BEGIN
TotalRecord := TRUE;
EVALUATE(TempAmount,COPYSTR(Line,60,13));
CreditAmount := CreditAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,82,13));
RejectionAmount := RejectionAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,104,13));
ReversalAmount := ReversalAmount + TempAmount / 100;
EVALUATE(TempAmount,COPYSTR(Line,120,11));
FeeAmount := FeeAmount + TempAmount / 100;
// Credit Count
EVALUATE(TempAmount,COPYSTR(Line,54,6));
TotalRecRecords := TotalRecRecords + TempAmount;
// Rejection Count
EVALUATE(TempAmount,COPYSTR(Line,76,6));
TotalRecRecordsRev := TotalRecRecordsRev + TempAmount;
// Reversal Count
EVALUATE(TempAmount,COPYSTR(Line,98,6));
TotalRecRecordsRev := TotalRecRecordsRev + TempAmount;
END;
// END OF SPLIT
IF NOT (TotalRecord) AND (Transaction <> Transaction::Correction) THEN BEGIN
// End of the added lines.
// Insert GL line
GenJournalLine.INIT;
GenJournalLine."Journal Template Name" := ActGenJnlLine."Journal Template Name";
...Esamas kodas 3
...GenJournalLine.INIT;
GenJournalLine."Journal Template Name" := ActGenJnlLine."Journal Template Name";
GenJournalLine."Journal Batch Name" := ActGenJnlLine."Journal Batch Name";
LastLineNo := LastLineNo + 10000;
GenJournalLine."Line No." := LastLineNo;
GenJournalLine."Document No." := NextDocNo;
...Pakeitimo kodas 3
... GenJournalLine.INIT;
GenJournalLine."Journal Template Name" := ActGenJnlLine."Journal Template Name";
GenJournalLine."Journal Batch Name" := ActGenJnlLine."Journal Batch Name";
// Add the following lines.
GenJournalLine."Posting Date" := PostDate;
GenJournalLine."Account Type" := GenJournalLine."Account Type"::Customer;
IF Transaction = Transaction::Cancellation THEN BEGIN
IsCancellationExist := TRUE;
GenJournalLine."Document Type" := GenJournalLine."Document Type"::Refund;
NextDocNo := NoSeriesMgt.GetNextNo(GlBatchName."No. Series",PostDate,FALSE);
END ELSE
GenJournalLine."Document Type" := GenJournalLine."Document Type"::Payment;
// End of the added lines.
LastLineNo := LastLineNo + 10000;
GenJournalLine."Line No." := LastLineNo;
GenJournalLine."Document No." := NextDocNo;
...Esamas kodas 4
...LastLineNo := LastLineNo + 10000;
GenJournalLine."Line No." := LastLineNo;
GenJournalLine."Document No." := NextDocNo;
// Delete the following lines.
GenJournalLine."Posting Date" := PostDate;
GenJournalLine."Account Type" := GenJournalLine."Account Type"::Customer;
GenJournalLine."Document Type" := GenJournalLine."Document Type"::Payment;
// End of the deleted lines.
GeneralLedgerSetup.GET;
IF GeneralLedgerSetup."LCY Code" <> Currency THEN
...Pakeitimo kodekso 4
... LastLineNo := LastLineNo + 10000;
GenJournalLine."Line No." := LastLineNo;
GenJournalLine."Document No." := NextDocNo;
// Add the following lines.
IF Transaction = Transaction::Cancellation THEN
NextDocNo := NoSeriesMgt.GetNextNo(GlBatchName."No. Series",PostDate,FALSE);
// End of the added lines.
GeneralLedgerSetup.GET;
IF GeneralLedgerSetup."LCY Code" <> Currency THEN
...Esamas kodas 5
... IF CustLedgerEntry.FIND('-') THEN
GenJournalLine.VALIDATE("Account No.",CustLedgerEntry."Customer No.");
// Delete the following lines.
GenJournalLine."Applies-to Doc. Type" := GenJournalLine."Applies-to Doc. Type"::Invoice;
GenJournalLine."Applies-to Doc. No." := InInvoiceNo;
// End of the deleted lines.
IF GenJournalLine."Currency Code" <> CustLedgerEntry."Currency Code" THEN
GenJournalLine.VALIDATE("Currency Code",CustLedgerEntry."Currency Code");
...Pakeitimo kodas 5
... IF CustLedgerEntry.FIND('-') THEN
GenJournalLine.VALIDATE("Account No.",CustLedgerEntry."Customer No.");
// Add the following lines.
IF Transaction <> Transaction::Cancellation THEN BEGIN
GenJournalLine."Applies-to Doc. Type" := GenJournalLine."Applies-to Doc. Type"::Invoice;
GenJournalLine."Applies-to Doc. No." := InInvoiceNo;
END;
// End of the added lines.
IF GenJournalLine."Currency Code" <> CustLedgerEntry."Currency Code" THEN
GenJournalLine.VALIDATE("Currency Code",CustLedgerEntry."Currency Code");
...Esamas kodas 6
...// *** Bal account per line or as combined entry
// Delete the following line.
IF MultiplePostingDates THEN BEGIN
// End of the deleted line.
// Bal Account per line
IF GenJournalLine.FIND('-') THEN
REPEAT
...Pakeitimo kodas 6
...// *** Bal account per line or as combined entry
// Add the following line.
IF MultiplePostingDates OR IsCancellationExist THEN BEGIN
// End of the added line.
// Bal Account per line
IF GenJournalLine.FIND('-') THEN
REPEAT
...
Būtinosios sąlygos
Turi būti viena iš toliau nurodytų produktų, norint taikyti šias karštąsias pataisas:
-
Šveicarijos versiją Microsoft Dynamics NAV 2009 R2
-
Šveicarijos Microsoft Dynamics NAV 2009 SP1 versiją
Pašalinimo informacija
Jūs negalite pašalinti šias karštąsias pataisas.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Pastaba. Tai yra "GREITAI PUBLIKUOJAMAS" straipsnis, sukurtas tiesiogiai Microsoft palaikymo tarnybos. Čia pateikta informacija yra atsakas į kylančius klausimus. Dėl greito publikavimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrima bet kuriuo metu be įspėjimo. Naudojimoieškokite kitų priežasčių.