Estimeret læsetid: 12 minutter
Hvorfor skal jeg tjekke moms-id'er (VAT-ID)?
Nå... fordi når du læser denne tekst her, sidder du i Tyskland eller Østrig... og der bliver EU-reglerne (delvist også allerede tyske eller østrigske forordninger) taget alvorligt. Heldigvis gør Business Central 365 (BC365 eller også Navision Financials) det - i princippet - ret nemt for dig.
Leverandører af elektroniske tjenester, såsom opdateringer til antivirusprogrammer, er forpligtet til at opkræve moms for denne service. Hvis køberen af disse tjenester er momsregistreret, kan det være kunden og ikke tjenesteudbyderen, der skylder momsen. Derfor kan udbyderen bede om kundens momsregistreringsnummer for at afklare, om de skal opkræve moms, eller om kunden skal indberette momsen. Hvis kunden ikke har et gyldigt momsregistreringsnummer, opkræver tjenesteudbyderen momsen.
Og hos dine leverandører (men fra 2025 nok også for kunder, jeg kunne ikke finde artiklen igen) er du simpelthen forpligtet til at kontrollere din forretningspartners momsregistreringsnummer og også dokumentere denne kontrol! Bureaukrati-reduktion... Ved et ugyldigt momsregistreringsnummer kan (og vil) fradrag for købsmoms på indkøbsfakturaen nægtes dig – dette gælder både for indenlandske og udenlandske leverandører!
Endnu værre: Hvis du fakturerer (varer eller tjenester) til en erhvervskunde med et forkert momsregistreringsnummer, vil skattemyndighederne opkræve momsen hos dig.
Hvis de ikke overholder deres pligt til at kontrollere momsregistreringsnummerets korrekthed, og det viser sig, at det momsregistreringsnummer, som deres kunde har angivet,. var forkert, skal du forvente efterbetaling af skat. For at undgå denne risiko, er det Det anbefales kraftigt at kontrollere modtagerens momsregistreringsnummer.
Årsagen er simpel: Stadig mere svindel med moms, f.eks. det stadig mulige og derfor stadig populære Moms-karussel.
Hvad er VIES?
VIES (System til udveksling af momsoplysninger) er en søgemaskine (ikke en database!) fra Europa-Kommissionen. Når der foretages en søgning via VIES, hentes data fra de nationale databaser for moms. Når du derfor kontrollerer et momsregistreringsnummer i BC365 eller Navision, sendes denne anmodning først fra Navision til VIES, VIES spørger derefter, afhængigt af destinationslandet, det lokale informationssystem og returnerer derefter svaret til dig via REST eller SOAP (som anmodningen). Resultatet er derefter en såkaldt Kvalificeret kontrol af momsregistreringsnummer., da Sie sowohl die Existenz der Ust-IdNr. in Business Central oder Navision geprüft haben und dies auch om protokollen bevises können, men fordi denne metode også registrerer navnet og adressen på ejeren af den verificerede momsregistreringsnummer i Business Central (eller Navision) og dermed kan sammenlignes med dine indtastede data. Dette er især vigtigt, hvis en revisor eller endda en skatterådgiver har tvivl om en af dine debitorer eller kreditorer. På grund af GDPdU anmelder Idea automatisk disse tvivl til revisoren.
Hvad er systemet til informationsudveksling af moms online (MIAS)?
MIAS er et system til elektronisk validering af momsnummeret på erhvervsdrivende, der er registreret i Den Europæiske Union for grænseoverskridende transaktioner af varer eller tjenester.
Når du vil verificere din kundes momsnummer i en anden medlemsstat / Nordirland via MIAS-webapplikationen, sendes denne anmodning fra Business Central 365 (eller Navision) via en sikker forbindelse til den relevante nationale database for at kontrollere, om nummeret er registreret der. Hvis ja, vises status „gyldig“. Hvis nej, vises status „ugyldig“.
Afhængigt af de gældende databeskyttelsesregler oplyser nogle medlemsstater også navn og adresse på indehaverne af momsnumre, der er registreret i de nationale databaser.
Momsnummeret er nødvendigt, hvis man f.eks. som virksomhed foretager EU-dækkende indkøb/salg. For at kontrollere, om køberen er „momsregistreret“, kan nummeret kontrolleres direkte med EU via en API.
Søgeresultatet i VIES viser kun, om momsoplysningerne er tilgængelige!
Mulige årsager til negativ feedback:
Momsregistreringsnummeret eksisterer ikke.
Momsregistreringsnummeret er endnu ikke aktiveret.
Registreringen er endnu ikke afsluttet
Hvad sker der, hvis et momsregistreringsnummer ikke bekræftes?
Hvis kunden angiver at være momsregistreret, men verifikationen via VIES-systemet ikke bekræfter dette, kan kunden anmode om en verificering hos sit lands skatteforvaltning. Derudover kan det være påkrævet at blive registreret for grænseoverskridende transaktioner inden for EU. Proceduren varierer fra land til land og ligger uden for rammerne af denne vejledning.
Disse ændringer vil ikke blive opdateret med det samme i de nationale databaser og dermed heller ikke i VIES. Nummeret kan muligvis verificeres „i morgen“.
Opsætning af momsnummerkontrol (Momsnr. kontrol) i Navision / BC365
Navision Financials 2019R2, 2.01,3.70 osv. Navision 2013R2 osv.
I disse versioner er der endnu ingen automatiseret fakturakontrol. Men denne kontrol kan naturligvis også eftermonteres her. Til RTC-versionerne finder du de nødvendige kodegrupper i slutningen af denne artikel. Til Classic Client-versionerne er SOAP ikke det første valg, især også fordi SOAP allerede er officielt afviklet (men stadig fungerer i begyndelsen af 2026!). Se her.
Tal til mig, hvis du har brug for hjælp her.
Den automatiske validering af momsnummer kan eftermonteres i enhver Navision-version, men så er det lettere via REST API. Hvis du ikke længere har en vedligeholdelseskontrakt (der kræves 2 nye tabeller og 3 codeunits til de originale Navision/BC365-objekter), så kan vi også klare det direkte i Navision-standarden for dig!
Navision 2015, 2016, 2017
Her aktiverer du kontrollen ved at indtaste adressen på VIES (https://ec.europa.eu/taxation_customs/vies/services/checkVatService) i feltet „Moms-nr. kontrol URL“ under Finansiel regnskab > Rapportering > Opsætning.

(Bemærk: Med Navision 2015 er jeg ikke helt sikker, jeg har ikke en database klar til at tjekke lige nu. Hvis denne indstilling mangler i deres Navision 2015, så gælder ovenstående afsnit. En kort tilbagemelding ville være værdsat, så kan jeg om nødvendigt rette dette afsnit.)
Navision 2016, 2017 (og eventuelt 2015?) gemmer kun „Moms-ID findes“ og „Registreret navn“ og „Registreret adresse“ i loggen. Hvis du ønsker de yderligere felter fra de efterfølgende versioner her (bekræftet gade, bekræftet postnummer, bekræftet by og om den bekræftede adresse stemmer overens med den adresse, du har gemt), så tal venligst til mig. Svaret fra VIES er altid det samme, så det handler „kun“ om at gøre dette svar synligt hos jer.
Navision 2018, BC365 (Business Central 365)
Logikken er blevet markant ændret her, der er nu en baggrundstjeneste til kontrol. Vær opmærksom! Skiftet skete delvist først med hotfix 35 i Navision 2018/BC14!
Denne tjeneste aktiveres under „Indstilling for momregistreringsservice“:

For at gøre det hele mere spændende hedder den faktiske opsætningsside så

„Normalt“ behøver du ikke at gøre mere end disse opsætninger, afhængigt af din Navision- eller BC365-version.
Du kan derefter klikke på de tre prikker [...] ved siden af momsregistreringsnummeret hos debitor eller kreditor og få valideringsresultatet tilbage:

Via storskiftbehandling af momsnummer kan du også få hundreder af momsnumre automatisk kontrolleret.
Så vidt, så godt… men hvad nu, hvis det går i stå?
Meget, meget gerne oplever brugere af Navision 2015, 2016 og 2017 versionerne, men også Navision 2018 og BC14, denne fejlmeddelelse
Fjernbetjeningen returnerede en fejl: (400) Ugyldig anmodning.
Forbindelsen til fjernbetjeningstjenesten kunne ikke oprettes. Fjernserveren returnerede en fejl: (400) Ugyldig anmodning. Service-URL: https://ec.europa.eu/taxation_customs/vies/services/checkVatService
Forbindelse til den eksterne tjeneste kunne ikke oprettes. Den eksterne server returnerede en fejl: (400) Bad Request. Tjeneste-URL: https://ec.europa.eu/taxation_customs/vies/services/checkVatService
Eller forespørgslen giver simpelthen slet intet resultat / intet svar. Hvis du bruger mine rettelser/tilpasninger, finder du på Navision-tjenestefolderen under c:\temp de to filer VatIDrequest.txt med SOAP-forespørgslen og VatIDresult.txt med SOAP-svaret, som ofte allerede hjælper.
Hvis du allerede Brug min logbog, så finder du anmodningen og svarene i loggen.
Ved ovenstående fejbesked skal kodearter 248 (Timeout & ContentType), 249 (Type af XML-analyse) som regel opdateres, og underfunktionen SetContentType skal tilføjes i 1290.
Da slutbrugeren typisk ikke har adgang til disse to kodeenheder, har jeg undladt en detaljeret beskrivelse her. Kildekoderne findes længere nede.
Tabel 226 findes ikke, eller „Metadataobjektet Tabel 226 blev ikke fundet“
Helt kuriøst! Der findes en Navision-version, hvor tabellerne 226 og 227 og de tilhørende sider simpelthen ikke eksisterer! Jeg tror, det kun vedrører version 14.0.45012.0, i hvert fald har jeg endnu ikke modtaget denne fejlmeddelelse i andre versioner. Tilsvarende enkel er løsningen: Fra Cu35 (Cumulative Update) af version 11.0.45373 installeres patches for KB375980 – det er tilstrækkeligt, hvis disse objekter indlæses/opdateres:
Kodesystemer 1751 248 249
Menu 1010
Side 246 247 248 249
Tabel 226, 227, 248, 249
Kumulativ opdatering 35 til Microsoft Dynamics NAV 2018 (build 45373) – Microsoft Support

Fejl under kald af System.Xml.XmlDocumentLoad med følgende besked: ‚>‘ er et uventet token

Her skal du bare i CU248
SOAPWebServiceRequestMgt.SetContentType(‚text/xml; charset=utf-8‘);
at indbygge

Tip: Tag det længere timeout med det samme, i ældre versioner er det stadig sat til 5000 (5 sekunder). Se de to følgende fejlmeddelelser.
TIMEOUT
Her bliver forespørgselsfunktionerne for VIES simpelthen overbelastet. Prøv igen senere. Se også „Hvad er VIES“ helt øverst.
MS_MAX_CONCURRENT_REQ
Også her er EU's servere overbelastede. De finder her og her meget udførlige forklaringer, ...hvordan hele det rod overhovedet fungerer... eller, ofte bedre: burde fungere 🙂
I standard Navision får du ingen yderligere information om disse to fejl, du skal bare prøve igen senere. Ofte virker det allerede et par minutter senere. Se ovenfor: Med min ændring finder du i c:\temp\ forespørgslen og svaret i XML-tekstform, det hjælper ofte allerede med at besvare netop dette spørgsmål.
Nattestid mellem 23:00 og 05:00 kan tjenesten være helt utilgængelig, som dokumenteret her:
BZSt – Bekræftelse af udenlandske momsregistreringsnumre
Fejlløsning med kunstig intelligens
Fejl ved nulværdierI ældre versioner (f.eks. NAV 2009/5.0) kan rapport 11007 (Moms-Vies erklæring skat-DE) ikke håndtere null-værdier korrekt. Der kræves en hotfix.
Mhmnjaja… „Tipset“ er rent teknisk korrekt… men desværre har det absolut intet at gøre med moms-ID-verifikation, den nævnte rapport 11007 kan ikke engang sende den oprettede XML-fil via SOAP eller RestAPi 🙂
Du finder hotfixet her:
Rapporten „VAT-Vies Declaration Tax-DE“ (11007) håndterer ikke nul-værdien korrekt i den tyske version af Microsoft Dynamics NAV – Microsoft Support
AutentificeringVed brug af API-nøgler (hvis nødvendigt) skal brugernavn og adgangskode være korrekt registreret i CA (Certificate Authority).
VIES kræver ingen godkendelse.
Selv ellers er svarene fra f.eks. Copilot snarere ... tja. For ikke at bruge ordet „affald“ skriver jeg lige „begrænset nyttigt“ 🙂
Min mening om kunstig intelligens i Navision har jeg jo allerede her kundgjort. Men jeg bruger gerne Copilots billedfunktion! Selv dette indlægsbillede er lavet med Copilot. Ellers er jeg dog i øjeblikket (februar 2026) slet ikke bange for at miste mit job til nogen LLM/enhver KI som ChatGPT eller en anden 🙂
Opdaterede codeunits fra version 2016
Hvis I har adgang til kodestykkerne 248, 249 og 1290, vil jeg liste de korrigerede indhold her, så ved I jo allerede, hvad der skal gøres 🙂
OBJECT Codeunit 248 VAT Lookup Ext. data Hndl
{
OBJEKT-EGENSKABER
{
Dato=09.02.26;
Time=13:19:58;
Modificeret=Ja;
Versionsliste=NAVW19.00;
}
EGENSKABER
{
TableNo=249;
Tilladelser=TableData 249=rimd;
OnRun=BEGIN
VATRegistrationLog := Rec;
LookupVatRegistrationFromWebService(TRUE);
Rec := VATRegistrationLog;
SLUT;
}
CODE
{
VAR
NamespaceTxt@1003 : TextConst '@@@={Locked};DEU=urn:ec.europa.eu:taxud:vies:services:checkVat:types;ENU=urn:ec.europa.eu:taxud:vies:services:checkVat:types';
VATRegistrationLog@1000 : Registrering 249;
VATRegistrationLogMgt@1002 : Kodeenhed 249;
VatRegNrValidationWebServiceURLTxt@1001 : TextConst '@@@={Locked};DEU=http://ec.europa.eu/taxation_customs/vies/services/checkVatService;ENU=http://ec.europa.eu/taxation_customs/vies/services/checkVatService';
MissingWebServiceURLErr@1004 : TextConst 'DEU=URL'en til validering af momsregistreringsnummer er ikke angivet i vinduet til opsætning af finansbogholderi;ENU=URL'en til validering af momsregistreringsnummer er ikke angivet i vinduet til opsætning af hovedbogholderi";
LOCAL PROCEDURE LookupVatRegistrationFromWebService@7(ShowErrors@1000 : Boolean);
VAR
RequestBodyTempBlob@1002 : Record 99008535;
BEGIN
RequestBodyTempBlob.INIT;
SendRequestToVatRegistrationService(RequestBodyTempBlob,ShowErrors);
RequestBodyTempBlob.Blob.EXPORT("c:\temp\VatIDresult.txt');
InsertLogEntry(RequestBodyTempBlob);
COMMIT;
SLUT;
LOCAL PROCEDURE SendRequestToVatRegistrationService@1(VAR BodyTempBlob@1004 : Record 99008535;ShowErrors@1003 : Boolean);
VAR
GeneralLedgerSetup@1005 : Record 98;
SOAPWebServiceRequestMgt@1001 : Kodeenhed 1290;
ResponseInStream@1002 : InStream;
InStream@1006 : InStream;
ResponseOutStream@1008 : OutStream;
BEGIN
PrepareSOAPRequestBody(BodyTempBlob);
BodyTempBlob.Blob.CREATEINSTREAM(InStream);
GeneralLedgerSetup.GET;
IF GeneralLedgerSetup.'VAT Reg. No. Validation URL' = "" THEN
ERROR(MissingWebServiceURLErr);
SOAPWebServiceRequestMgt.SetGlobals(InStream,GeneralLedgerSetup. 'VAT Reg. No. Validation URL',"",'');
SOAPWebServiceRequestMgt.DisableHttpsCheck;
SOAPWebServiceRequestMgt.SetTimeout(60000);
SOAPWebServiceRequestMgt.SetContentType('text/xml; charset=utf-8');
IF SOAPWebServiceRequestMgt.SendRequestToWebService THEN BEGIN
SOAPWebServiceRequestMgt.GetResponseContent(ResponseInStream);
BodyTempBlob.Blob.CREATEOUTSTREAM(ResponseOutStream);
COPYSTREAM(ResponseOutStream,ResponseInStream);
SLUT ELSE
IF ShowErrors THEN
SOAPWebServiceRequestMgt.ProcessFaultResponse('');
SLUT;
LOCAL PROCEDURE PrepareSOAPRequestBody@12(VAR BodyTempBlob@1000 : Record 99008535);
VAR
XMLDOMMgt@1006 : Codeunit 6224;
BodyContentInputStream@1004 : InStream;
BodyContentOutputStream@1005 : OutStream;
BodyContentXmlDoc@1003 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
EnvelopeXmlNode@1012 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
CreatedXmlNode@1001 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
BEGIN
BodyTempBlob.Blob.CREATEINSTREAM(BodyContentInputStream);
BodyContentXmlDoc := BodyContentXmlDoc.XmlDocument;
XMLDOMMgt.AddRootElementWithPrefix(BodyContentXmlDoc,'checkVatApprox",'',NamespaceTxt,EnvelopeXmlNode);
XMLDOMMgt.AddElement(EnvelopeXmlNode,'countryCode',VATRegistrationLog.GetCountryCode,NamespaceTxt,CreatedXmlNode);
XMLDOMMgt.AddElement(EnvelopeXmlNode,'vatNumber',VATRegistrationLog.GetVATRegNo,NamespaceTxt,CreatedXmlNode);
XMLDOMMgt.AddElement(
EnvelopeXmlNode,'requesterCountryCode',VATRegistrationLog.GetCountryCode,NamespaceTxt,CreatedXmlNode);
XMLDOMMgt.AddElement(
EnvelopeXmlNode,'requesterVatNumber',VATRegistrationLog.GetVATRegNo,NamespaceTxt,CreatedXmlNode);
CLEAR(BodyTempBlob.Blob);
BodyTempBlob.Blob.CREATEOUTSTREAM(BodyContentOutputStream);
BodyContentXmlDoc.Save(BodyContentOutputStream);
BodyTempBlob.Blob.EXPORT('c:\temp\VatIDrequest.txt');
SLUT;
LOCAL PROCEDURE InsertLogEntry@4(ResponseBodyTempBlob@1000 : Record 99008535);
VAR
XMLDocOut@1012 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
InStream@1009 : InStream;
BEGIN
ResponseBodyTempBlob.Blob.CREATEINSTREAM(InStream);
XMLDocOut := XMLDocOut.XmlDocument;
XMLDocOut.Load(InStream);
VATRegistrationLogMgt.LogVerification(VATRegistrationLog,XMLDocOut,NamespaceTxt);
SLUT;
PROCEDURE GetVATRegNrValidationWebServiceURL@5() : Text[250];
BEGIN
EXIT(VatRegNrValidationWebServiceURLTxt);
SLUT;
BEGIN
END.
}
}
OBJECT Codeunit 249 VAT Registration Log Mgt.
{
OBJEKT-EGENSKABER
{
Dato=09.02.26;
Time=14:57:32;
Modificeret=Ja;
Versionsliste=NAVW19.00;
}
EGENSKABER
{
Tilladelser=TableData 249=rimd;
OnRun=BEGIN
SLUT;
}
CODE
{
PROCEDURE LogCustomer@1(Customer@1000 : Record 18);
VAR
VATRegistrationLog@1001 : Post 249;
CountryCode@1002 : Kode[10];
BEGIN
CountryCode := GetCountryCode(Customer. 'Country/Region Code");
IF NOT IsEUCountry(CountryCode) THEN
EXIT;
IndsætVATRegistrationLog(
Customer. "Momsregistreringsnummer",CountryCode,VATRegistrationLog. "Kontotype"::Customer,Customer. "Nr.");
SLUT;
PROCEDURE LogVendor@2(Vendor@1002 : Record 23);
VAR
VATRegistrationLog@1001 : Record 249;
CountryCode@1000 : Kode[10];
BEGIN
CountryCode := GetCountryCode(Vendor. "Country/Region Code");
IF NOT IsEUCountry(CountryCode) THEN
EXIT;
IndsætVATRegistrationLog(
Vendor. "Momsregistreringsnr.",CountryCode,VATRegistrationLog. "Kontotype"::Vendor,Vendor. "Nr.");
SLUT;
PROCEDURE LogContact@8(Contact@1000 : Record 5050);
VAR
VATRegistrationLog@1001 : Record 249;
CountryCode@1002 : Kode[10];
BEGIN
CountryCode := GetCountryCode(Contact. "Country/Region Code");
IF NOT IsEUCountry(CountryCode) THEN
EXIT;
IndsætVATRegistrationLog(
Contact. "Momsregistreringsnr.",CountryCode,VATRegistrationLog. "Kontotype"::Contact,Contact. "Nr.");
SLUT;
PROCEDURE LogVerification@3(VAR VATRegistrationLog@1000 : Record 249;XMLDoc@1001 : DotNet ""System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';Namespace@1003 : Text);
VAR
XMLDOMMgt@1002 : Kodeenhed 6224;
FoundXmlNode@1004 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
NamePathTxt@5326066 : TextConst '@@@={Locked};DEU=descendant::vat:traderName;ENU=descendant::vat:traderName";
AddressPathTxt@5326065 : TextConst '@@@={Locked};DEU=descendant::vat:traderAddress;ENU=descendant::vat:traderAddress';
PostcodePathTxt@5326064 : TextConst '@@@={Locked};DEU=descendant::vat:traderPostcode;ENU=descendant::vat:traderPostcode';
StreetPathTxt@5326063 : TextConst '@@@={Locked};DEU=descendant::vat:traderStreet;ENU=descendant::vat:traderStreet';
CityPathTxt@5326062 : TextConst '@@@={Locked};DEU=descendant::vat:traderCity;ENU=descendant::vat:traderCity';
ValidPathTxt@5326070 : TextConst '@@@={Locked};DEU=descendant::vat:valid;ENU=descendant::vat:valid';
RequestIdPathTxt@5326069 : TextConst 'DEU=descendant::vat:requestIdentifier';
BEGIN
IF NOT XMLDOMMgt.FindNodeWithNamespace(XMLDoc.DocumentElement,ValidPathTxt,'vat',Namespace,FoundXmlNode) THEN
EXIT;
CASE LOWERCASE(FoundXmlNode.InnerText) OF
'true':
BEGIN
VATRegistrationLog.'Entry No.' := 0;
VATRegistrationLog.Status := VATRegistrationLog.Status::Valid;
VATRegistrationLog. "Verificeret dato" := CURRENTDATETIME;
VATRegistrationLog."User ID" := USERID;
VATRegistrationLog.dmssysDocumentNo := COPYSTR(ExtractValue(RequestIdPathTxt,XMLDoc,Namespace),1,
MAXSTRLEN(VATRegistrationLog.dmssysDocumentNo));
//XMLDOMMgt.FindNodeWithNamespace(XMLDoc.DocumentElement,NamePathTxt,"vat",Namespace,FoundXmlNode);
VATRegistrationLog.'Verified Name' := ExtractValue(NamePathTxt,XMLDoc,Namespace);
//COPYSTR(FoundXmlNode.InnerText,1,MAXSTRLEN(VATRegistrationLog. "Verified Name"));
//XMLDOMMgt.FindNodeWithNamespace(XMLDoc.DocumentElement,AddressPathTxt,"vat",Namespace,FoundXmlNode);
VATRegistrationLog.'Verified Address' := ExtractValue(AddressPathTxt,XMLDoc,Namespace);
//COPYSTR(FoundXmlNode.InnerText,1,MAXSTRLEN(VATRegistrationLog. "Verified Address"));
VATRegistrationLog.INSERT(TRUE);
SLUT;
"false":
BEGIN
VATRegistrationLog. 'Entry No.' := 0;
VATRegistrationLog."Verificeret dato" := CURRENTDATETIME;
VATRegistrationLog.Status := VATRegistrationLog.Status::Invalid;
VATRegistrationLog. "User ID" := USERID;
VATRegistrationLog. "Verificeret navn" := "";
VATRegistrationLog. 'Verificeret adresse' := "";
VATRegistrationLog.INSERT(TRUE);
END;
END;
END;
LOCAL PROCEDURE LogUnloggedVATRegistrationNumbers@10();
VAR
Kunde@1000 : Post 18;
Vendor@1001 : Post 23;
Contact@1002 : Post 5050;
VATRegistrationLog@1003 : Post 249;
BEGIN
Customer.SETFILTER('Momsregistreringsnummer',"%1",'');
IF Customer.FINDSET THEN
REPEAT
VATRegistrationLog.SETRANGE('Momsregistreringsnr.',Customer. "Momsregistreringsnr.");
IF VATRegistrationLog.ISEMPTY THEN
LogCustomer(Customer);
UNTIL Customer.NEXT = 0;
Vendor.SETFILTER("Momsregistreringsnummer","%1",'');
IF Vendor.FINDSET THEN
REPEAT
VATRegistrationLog.SETRANGE('Momsregistreringsnr.',Vendor. "Momsregistreringsnr.");
IF VATRegistrationLog.ISEMPTY THEN
LogVendor(Vendor);
UNTIL Vendor.NEXT = 0;
Contact.SETFILTER("Momsregistreringsnummer","%1",'');
IF Contact.FINDSET THEN
REPEAT
VATRegistrationLog.SETRANGE('Momsregistreringsnr.',Contact. "Momsregistreringsnr.");
IF VATRegistrationLog.ISEMPTY THEN
LogContact(Contact);
UNTIL Contact.NEXT = 0;
COMMIT;
SLUT;
LOCAL PROCEDURE InsertVATRegistrationLog@16(VATRegNo@1002 : Text[20];CountryCode@1000 : Code[10];AccountType@1001 : Option;AccountNo@1003 : Code[20]);
VAR
VATRegistrationLog@1004 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
INIT;
"VAT Registration No." = VATRegNo;
"Country/Region Code" := CountryCode;
"Kontotype" := AccountType;
"Account No." := AccountNo;
"Bruger-id" := USERID;
INSERT(TRUE);
SLUT;
SLUT;
PROCEDURE DeleteCustomerLog@4(Customer@1000 : Record 18);
VAR
VATRegistrationLog@1001 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
SETRANGE("Kontotype", "Kontotype"::Kunde);
SETRANGE("Kontonr.",Kunde. "Nr.");
DELETEALL;
END;
SLUT;
PROCEDURE DeleteVendorLog@5(Vendor@1000 : Record 23);
VAR
VATRegistrationLog@1001 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
SETRANGE("Account Type", "Account Type"::Vendor);
SETRANGE("Account No.",Vendor. "No.");
DELETEALL;
END;
END;
PROCEDURE DeleteContactLog@9(Contact@1000 : Record 5050);
VAR
VATRegistrationLog@1001 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
SETRANGE("Kontotype", "Kontotype"::Kontakt);
SETRANGE("Kontonr.",Kontakt. "Nr.");
DELETEALL;
END;
SLUT;
PROCEDURE AssistEditCustomerVATReg@7(Customer@1000 : Record 18);
VAR
VATRegistrationLog@1001 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
IF ISEMPTY THEN
LogUnloggedVATRegistrationNumbers;
SETRANGE("Kontotype", "Kontotype"::Kunde);
SETRANGE("Kontonr.",Kunde."Nr.");
PAGE.RUNMODAL(PAGE:: "Momsregistreringslog",VATRegistrationLog);
END;
SLUT;
PROCEDURE AssistEditVendorVATReg@6(Vendor@1001 : Record 23);
VAR
VATRegistrationLog@1000 : Post 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
IF ISEMPTY THEN
LogUnloggedVATRegistrationNumbers;
SETRANGE("Kontotype", "Kontotype"::Leverandør);
SETRANGE("Account No.",Vendor. "No.");
PAGE.RUNMODAL(PAGE:: "Momsregistreringslog",VATRegistrationLog);
END;
SLUT;
PROCEDURE AssistEditContactVATReg@11(Contact@1001 : Record 5050);
VAR
VATRegistrationLog@1000 : Record 249;
BEGIN
WITH VATRegistrationLog DO BEGIN
IF ISEMPTY THEN
LogUnloggedVATRegistrationNumbers;
SETRANGE("Kontotype", "Kontotype"::Kontakt);
SETRANGE("Kontonr.",Kontakt. "Nr.");
PAGE.RUNMODAL(PAGE:: "Momsregistreringslog",VATRegistrationLog);
END;
SLUT;
LOCAL PROCEDURE IsEUCountry@12(CountryCode@1000 : Code[10]) : Boolean;
VAR
CountryRegion@1001 : Record 9;
BEGIN
IF CountryCode "" THEN
IF CountryRegion.GET(CountryCode) THEN
EXIT(CountryRegion. 'EU Country/Region Code' "");
EXIT(FALSE);
SLUT;
LOCAL PROCEDURE GetCountryCode@13(CountryCode@1000 : Code[10]) : Code[10];
VAR
CompanyInformation@1001 : Post 79;
BEGIN
IF CountryCode '' THEN
EXIT(Landekode);
CompanyInformation.GET;
EXIT(CompanyInformation. 'Country/Region Code');
SLUT;
LOCAL PROCEDURE ExtractValue@5326062(Xpath@5326062 : Text;XMLdoc@5326063 : DotNet ""System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';NameSpace@5326064 : Text) : Tekst;
VAR
XMLDOMMgt@5326066 : Codeunit 6224;
FoundXmlNode@5326065 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
BEGIN
IF NOT XMLDOMMgt.FindNodeWithNamespace(XMLdoc.DocumentElement,Xpath,'vat",NameSpace,FoundXmlNode) THEN
EXIT('');
EXIT(FoundXmlNode.InnerText);
SLUT;
BEGIN
END.
}
}
OBJECT Codeunit 1290 SOAP Web Service Request Mgt.
{
OBJEKT-EGENSKABER
{
Dato=09.02.26;
Time=13:09:26;
Modificeret=Ja;
Versionsliste=NAVW19.00;
}
EGENSKABER
{
OnRun=BEGIN
END;
}
CODE
{
VAR
BodyPathTxt@1001 : TextConst '@@@={Locked};DEU=/soap:Envelope/soap:Body;ENU=/soap:Envelope/soap:Body';
ContentTypeTxt@1000 : TextConst '@@@={Locked};DEU='multipart/form-data; charset=utf-8';ENU="multipart/form-data; charset=utf-8"";
NewContentTypeTxt@5326062 : TextConst "@@@={Locked};DEU='text/xml; charset=utf-8';ENU="multipart/form-data; charset=utf-8"";
FaultStringXmlPathTxt@1012 : TextConst "@@@={Locked};DEU=/soap:Envelope/soap:Body/soap:Fault/faultstring;ENU=/soap:Envelope/soap:Body/soap:Fault/faultstring';
NoRequestBodyErr@1015 : TextConst 'DEU=The request body is not set.;ENU=The request body is not set.';
NoServiceAddressErr@1017 : TextConst 'DEU=Webtjenestens URI er ikke indstillet.;ENU=Webtjenestens URI er ikke indstillet';
ExpectedResponseNotReceivedErr@1009 : TextConst 'DEU=De forventede data blev ikke modtaget fra webtjenesten.;ENU=De forventede data blev ikke modtaget fra webtjenesten.';
SchemaNamespaceTxt@1007 : TextConst '@@@={Locked};DEU=http://www.w3.org/2001/XMLSchema;ENU=http://www.w3.org/2001/XMLSchema';
SchemaInstanceNamespaceTxt@1006 : TextConst '@@@={Locked};DEU=http://www.w3.org/2001/XMLSchema-instance;ENU=http://www.w3.org/2001/XMLSchema-instance';
SecurityUtilityNamespaceTxt@1003 : TextConst '@@@={Locked};DEU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd;ENU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';
SecurityExtensionNamespaceTxt@1004 : TextConst '@@@={Locked};DEU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd;ENU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
SoapNamespaceTxt@1002 : TextConst '@@@={Locked};DEU=http://schemas.xmlsoap.org/soap/envelope/;ENU=http://schemas.xmlsoap.org/soap/envelope/';
UsernameTokenNamepsaceTxt@1005 : TextConst '@@@={Locked};DEU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText;ENU=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText';
TempDebugLogTempBlob@1010 : TEMPORARY Record 99008535;
ResponseBodyTempBlob@1020 : Post 99008535;
ResponseInStreamTempBlob@1019 : Post 99008535;
Trace@1016 : Kodeenhed 1292;
GlobalRequestBodyInStream@1022 : InStream;
HttpWebResponse@1021 : DotNet ''System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.HttpWebResponse';
GlobalPassword@1013 : Tekst;
GlobalURL@1014 : Tekst;
GlobalUsername@1008 : Tekst;
TraceLogEnabled@1011 : Boolean;
GlobalTimeout@1024 : Heltal;
InternalErr@1028 : TextConst 'DEU=Fjerntjenesten har returneret følgende fejlmeddelelse:\\;ENU=Fjerntjenesten har returneret følgende fejlmeddelelse:\\";
GlobalSkipCheckHttps@1018 : Boolean;
GlobalProgressDialogEnabled@1023 : Boolean;
GlobalContentType@5326063 : Tekst;
[TryFunction]
PROCEDURE SendRequestToWebService@17();
VAR
WebRequestHelper@1000 : Codeunit 1299;
HttpWebRequest@1007 : DotNet ''System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.HttpWebRequest';
HttpStatusCode@1002 : DotNet '"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.HttpStatusCode';
ResponseHeaders@1001 : DotNet '"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Collections.Specialised.NameValueCollection';
ResponseInStream@1006 : InStream;
BEGIN
CheckGlobals;
BuildWebRequest(GlobalURL,HttpWebRequest);
ResponseInStreamTempBlob.INIT;
ResponseInStreamTempBlob.Blob.CREATEINSTREAM(ResponseInStream);
CreateSoapRequest(HttpWebRequest.GetRequestStream,GlobalRequestBodyInStream,GlobalUsername,GlobalPassword);
WebRequestHelper.GetWebResponse(HttpWebRequest,HttpWebResponse,ResponseInStream,
HttpStatusCode,ResponseHeaders,GlobalProgressDialogEnabled);
ExtractContentFromResponse(ResponseInStream,ResponseBodyTempBlob);
SLUT;
LOCAL PROCEDURE BuildWebRequest@3(ServiceUrl@1000 : Text;VAR HttpWebRequest@1002 : DotNet '"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.HttpWebRequest');
VAR
DecompressionMethods@1003 : DotNet '"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.DecompressionMethods';
BEGIN
HttpWebRequest := HttpWebRequest.Create(ServiceUrl);
HttpWebRequest.Method := 'POST";
HttpWebRequest.KeepAlive := TRUE;
HttpWebRequest.AllowAutoRedirect := SAND;
HttpWebRequest.UseDefaultCredentials := SAND;
IF GlobalContentType = '' THEN
GlobalContentType := ContentTypeTxt;
HttpWebRequest.ContentType := GlobalContentType;
IF GlobalTimeout <= 0 THEN
GlobalTimeout := 600000;
HttpWebRequest.Timeout := GlobalTimeout;
HttpWebRequest.AutomaticDecompression := DecompressionMethods.GZip;
SLUT;
LOCAL PROCEDURE CreateSoapRequest@2(RequestOutStream@1000 : OutStream;BodyContentInStream@1004 : InStream;Username@1003 : Text;Password@1005 : Text);
VAR
XmlDoc@1007 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
BodyXmlNode@1016 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
BEGIN
CreateEnvelope(XmlDoc,BodyXmlNode,Username,Password);
AddBodyToEnvelope(BodyXmlNode,BodyContentInStream);
XmlDoc.Save(RequestOutStream);
TraceLogXmlDocToTempFile(XmlDoc,'FullRequest");
SLUT;
LOCAL PROCEDURE CreateEnvelope@11(VAR XmlDoc@1011 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';VAR BodyXmlNode@1001 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';Username@1009 : Text;Password@1010 : Text);
VAR
XMLDOMMgt@1000 : Kodeenhed 6224;
EnvelopeXmlNode@1007 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
HeaderXmlNode@1006 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
SecurityXmlNode@1005 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
UsernameTokenXmlNode@1004 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
TempXmlNode@1003 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
PasswordXmlNode@1002 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
BEGIN
XmlDoc := XmlDoc.XmlDocument;
WITH XMLDOMMgt DO BEGIN
AddRootElementWithPrefix(XmlDoc,'Envelope",'s',SoapNamespaceTxt,EnvelopeXmlNode);
AddAttribute(EnvelopeXmlNode,'xmlns:u',SecurityUtilityNamespaceTxt);
AddElementWithPrefix(EnvelopeXmlNode,'Header','','s',SoapNamespaceTxt,HeaderXmlNode);
IF (Username '') OR (Password '') THEN BEGIN
AddElementWithPrefix(HeaderXmlNode,'Security','','o',SecurityExtensionNamespaceTxt,SecurityXmlNode);
AddAttributeWithPrefix(SecurityXmlNode,'mustUnderstand','s',SoapNamespaceTxt,'1');
AddElementWithPrefix(SecurityXmlNode,'UsernameToken','','o',SecurityExtensionNamespaceTxt,UsernameTokenXmlNode);
AddAttributeWithPrefix(UsernameTokenXmlNode,'Id','u',SecurityUtilityNamespaceTxt,CreateUUID);
AddElementWithPrefix(UsernameTokenXmlNode,'Username',Username,'o',SecurityExtensionNamespaceTxt,TempXmlNode);
AddElementWithPrefix(UsernameTokenXmlNode,'Password',Password,'o',SecurityExtensionNamespaceTxt,PasswordXmlNode);
AddAttribute(PasswordXmlNode,'Type',UsernameTokenNamepsaceTxt);
SLUT;
AddElementWithPrefix(EnvelopeXmlNode,'Body','','s',SoapNamespaceTxt,BodyXmlNode);
AddAttribute(BodyXmlNode,'xmlns:xsi',SchemaInstanceNamespaceTxt);
AddAttribute(BodyXmlNode,'xmlns:xsd',SchemaNamespaceTxt);
SLUT;
SLUT;
LOCAL PROCEDURE CreateUUID@9() : Text;
BEGIN
EXIT('uuid-' + DELCHR(LOWERCASE(FORMAT(CREATEGUID)),'=','{}'));
SLUT;
LOCAL PROCEDURE AddBodyToEnvelope@12(VAR BodyXmlNode@1005 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';BodyInStream@1000 : InStream);
VAR
BodyContentXmlDoc@1003 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
BEGIN
BodyContentXmlDoc := BodyContentXmlDoc.XmlDocument;
BodyContentXmlDoc.Load(BodyInStream);
TraceLogXmlDocToTempFile(BodyContentXmlDoc,'RequestBodyContent");
BodyXmlNode.AppendChild(BodyXmlNode.OwnerDocument.ImportNode(BodyContentXmlDoc.DocumentElement,TRUE));
SLUT;
LOCAL PROCEDURE ExtractContentFromResponse@4(ResponseInStream@1000 : InStream;VAR BodyTempBlob@1002 : Record 99008535);
VAR
XMLDOMMgt@1005 : Kodeenhed 6224;
ResponseXmlDoc@1003 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
ResponseBodyXMLDoc@1004 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
ResponseBodyXmlNode@1006 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlNode';
BodyOutStream@1007 : OutStream;
Found@1001 : Boolean;
BEGIN
TraceLogStreamToTempFile(ResponseInStream,'FullResponse",TempDebugLogTempBlob);
ResponseXmlDoc := ResponseXmlDoc.XmlDocument;
ResponseXmlDoc.Load(ResponseInStream);
Found := XMLDOMMgt.FindNodeWithNamespace(ResponseXmlDoc.DocumentElement,BodyPathTxt,'soap',SoapNamespaceTxt,ResponseBodyXmlNode);
HVIS IKKE fundet SÅ
ERROR(ExpectedResponseNotReceivedErr);
ResponseBodyXMLDoc := ResponseBodyXMLDoc.XmlDocument;
ResponseBodyXMLDoc.AppendChild(ResponseBodyXMLDoc.ImportNode(ResponseBodyXmlNode.FirstChild,TRUE));
BodyTempBlob.Blob.CREATEOUTSTREAM(BodyOutStream);
ResponseBodyXMLDoc.Save(BodyOutStream);
TraceLogXmlDocToTempFile(ResponseBodyXMLDoc,'ResponseBodyContent');
SLUT;
PROCEDURE GetResponseContent@22(VAR ResponseBodyInStream@1000 : InStream);
BEGIN
ResponseBodyTempBlob.Blob.CREATEINSTREAM(ResponseBodyInStream);
SLUT;
PROCEDURE ProcessFaultResponse@15(SupportInfo@1001 : Text);
VAR
WebRequestHelper@1002 : Codeunit 1299;
XMLDOMMgt@1006 : Kodeenhed 6224;
WebException@1005 : DotNet ''System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Net.WebException';
XmlDoc@1003 : DotNet '"System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';
ResponseInputStream@1000 : InStream;
ErrorText@1009 : Tekst;
ServiceURL@1010 : Tekst;
BEGIN
ErrorText := WebRequestHelper.GetWebResponseError(WebException,ServiceURL);
IF ErrorText '" THEN
ERROR(ErrorText);
ResponseInputStream := WebException.Response.GetResponseStream;
IF TraceLogEnabled THEN
Trace.LogStreamToTempFile(ResponseInputStream,'WebExceptionResponse',TempDebugLogTempBlob);
XmlDoc := XmlDoc.XmlDocument;
XmlDoc.Load(ResponseInputStream);
ErrorText := XMLDOMMgt.FindNodeTextWithNamespace(XmlDoc.DocumentElement,FaultStringXmlPathTxt,'soap',SoapNamespaceTxt);
IF ErrorText = '' THEN
ErrorText := WebException.Message;
ErrorText := InternalErr + ErrorText + ServiceURL;
HVIS SupportInfo '' SÅ
ErrorText += '\\' + SupportInfo;
ERROR(FejlTekst);
SLUT;
PROCEDURE SetGlobals@10(RequestBodyInStream@1000 : InStream;URL@1001 : Text;Username@1002 : Text;Password@1003 : Text);
BEGIN
GlobalRequestBodyInStream := RequestBodyInStream;
GlobalSkipCheckHttps := FALSE;
GlobalURL := URL;
GlobalUsername := Brugernavn;
GlobalPassword := Adgangskode;
GlobalProgressDialogEnabled := SAND;
TraceLogEnabled := FALSE;
SLUT;
PROCEDURE SetTimeout@7(NewTimeout@1000 : Integer);
BEGIN
GlobalTimeout := NewTimeout;
SLUT;
PROCEDURE SetContentType@5326062(NewContentType@5326062 : Text);
BEGIN
GlobalContentType := NyContentType;
SLUT;
LOCAL PROCEDURE CheckGlobals@14();
VAR
WebRequestHelper@1000 : Kodeenhed 1299;
BEGIN
IF GlobalRequestBodyInStream.EOS THEN
ERROR(NoRequestBodyErr);
IF GlobalURL = '' THEN
ERROR(NoServiceAddressErr);
IF GlobalSkipCheckHttps THEN
WebRequestHelper.IsValidUri(GlobalURL)
ELSE
WebRequestHelper.IsSecureHttpUrl(GlobalURL);
SLUT;
LOCAL PROCEDURE TraceLogStreamToTempFile@33(VAR ToLogInStream@1000 : InStream;Name@1005 : Text;VAR TraceLogTempBlob@1001 : Record 99008535);
BEGIN
IF TraceLogEnabled THEN
Trace.LogStreamToTempFile(ToLogInStream,Name,TraceLogTempBlob);
SLUT;
LOCAL PROCEDURE TraceLogXmlDocToTempFile@67(VAR XmlDoc@1004 : DotNet ''System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".System.Xml.XmlDocument';Name@1005 : Text);
BEGIN
IF TraceLogEnabled THEN
Trace.LogXmlDocToTempFile(XmlDoc,Name);
SLUT;
PROCEDURE SetTraceMode@1(NewTraceMode@1000 : Boolean);
BEGIN
TraceLogEnabled := NewTraceMode;
SLUT;
PROCEDURE DisableHttpsCheck@13();
BEGIN
GlobalSkipCheckHttps := TRUE;
SLUT;
PROCEDURE DisableProgressDialog@18();
BEGIN
GlobalProgressDialogEnabled := FALSE;
SLUT;
BEGIN
END.
}
}
