Gilt für
Dynamics NAV 2009

Angenommen Sie, in der niederländischen Version von Microsoft Dynamics NAV 2009 "Steuer Behörden erlassen Digipoort für MwSt. und EU-Verkäufe Liste Microsoft Dynamics NAV SP1 NL" zu implementieren. Bei Verwendung die Digipoort-Schnittstelle wird folgende Überprüfungsfehler:

SBR_DIGIPOORT bd-Alg:ContactPrefix darf nicht leer sein.

ICP-Betrag darf nicht NULL sein.

Dieses Problem tritt in den folgenden Produkten auf:

  • Die niederländische Version von Microsoft Dynamics NAV 2009 R2

  • Die niederländische Version von Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Problemlösung

Hotfix-Informationen

Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV 2009 oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.

Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Allerdings werden sie diese Beispiele nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren erstellen, die Ihren spezifischen Bedürfnisse erfüllen.Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Dynamics NAV-Clientbenutzer vom System abgemeldet werden. Hierzu gehören Dienste Microsoft Dynamics NAV Application Server (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:

  • Änderungsberechtigung für das Objekt, das Sie ändern.

  • Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015Objekt.

Hinweis Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Ändern von Code

Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

  1. Ändern Sie den Code im Bericht Elektr. ICP-Erklärung erstellen (11404) wie folgt:Vorhandener Code 1

    ...ElecTaxDeclarationHeader@1000000 : Record 11409;                           ApplicationManagement@1000001 : Codeunit 1;                           UseVATRegNo@1000010 : Text[20];                         BEGIN                           IF Status > Status::Created THEN                             ERROR(StatusErr);...

    Neuer Code 1

    ...ElecTaxDeclarationHeader@1000000 : Record 11409;                           ApplicationManagement@1000001 : Codeunit 1;                           UseVATRegNo@1000010 : Text[20];                           StreetName@1000002 : Text[50];                           HouseNo@1000003 : Text[50];                           AdditionHouseNo@1000004 : Text[50];                           ContactPrefix@1000011 : Text[35];                         BEGIN                           IF Status > Status::Created THEN                             ERROR(StatusErr);...

    Vorhandener Code 2

    ...// zbrli:xbrl->bd-ob:VATIdentificationNumberNLFiscalEntityDivision                           IF ElecTaxDeclarationSetup."Part of Fiscal Entity" THEN BEGIN                             IF COPYSTR(                                  UPPERCASE(CompanyInfo."VAT Registration No."),                                  1,STRLEN(CompanyInfo."Country/Region Code")) = CompanyInfo."Country/Region Code"                             THEN                               CompanyInfo."VAT Registration No." := DELSTR(CompanyInfo."VAT Registration No.",1,STRLEN(CompanyInfo."Country/Region Code"));                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-ob:VATIdentificationNumberNLFiscalEntityDivision',                               CompanyInfo."VAT Registration No.",'','Msg','');                           END;                           // zbrli:xbrl->bd-alg:Contact*...

    Neuer Code 2

    ...// zbrli:xbrl->bd-ob:VATIdentificationNumberNLFiscalEntityDivision                           IF ElecTaxDeclarationSetup."Part of Fiscal Entity" THEN BEGIN                             IF COPYSTR(                                  UPPERCASE(CompanyInfo."Fiscal Entity No."),                                  1,STRLEN(CompanyInfo."Country/Region Code")) = CompanyInfo."Country/Region Code"                             THEN                               CompanyInfo."Fiscal Entity No." := DELSTR(CompanyInfo."Fiscal Entity No.",1,STRLEN(CompanyInfo."Country/Region Code"));                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-ob:VATIdentificationNumberNLFiscalEntityDivision',                               CompanyInfo."Fiscal Entity No.",'','Msg','');                           END;                           // zbrli:xbrl->bd-alg:Contact*...

    Vorhandenen Code 3

    ...IF ElecTaxDeclarationSetup."ICP Contact Type" = ElecTaxDeclarationSetup."ICP Contact Type"::"Tax Payer" THEN BEGIN                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials',                               ExtractInitials(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',                               ExtractNamePrefix(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname',                               ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...

    Neuer Code 3

    ...IF ElecTaxDeclarationSetup."ICP Contact Type" = ElecTaxDeclarationSetup."ICP Contact Type"::"Tax Payer" THEN BEGIN                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials',                               ExtractInitials(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             ContactPrefix := ExtractNamePrefix(ElecTaxDeclarationSetup."Tax Payer Contact Name");                             IF ContactPrefix <> '' THEN                               InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',ContactPrefix,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname',                               ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...

    Vorhandenen Code 4

    ...ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',                               ElecTaxDeclarationSetup."Tax Payer Contact Phone No.",'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',                               ExtractStreetName(CompanyInfo.Address),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',                               ExtractStreetNo(CompanyInfo.Address),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL',                               DELCHR(CompanyInfo."Post Code",'=',' '),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...

    Neuer Code 4

    ...ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',                               ElecTaxDeclarationSetup."Tax Payer Contact Phone No.",'','Msg','');                             PostCodeMgt.ParseAddressAdditionHouseNo(StreetName,HouseNo,AdditionHouseNo,CompanyInfo.Address);                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',StreetName,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',HouseNo,'','Msg','');                             IF AdditionHouseNo <> '' THEN                               InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberAddition',AdditionHouseNo,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL',                               DELCHR(CompanyInfo."Post Code",'=',' '),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...

    Vorhandenen Code 5

    ...END ELSE BEGIN                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials',                               ExtractInitials(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',                               ExtractNamePrefix(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname',                               ExtractSurname(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...

    Neuer Code 5

    ...END ELSE BEGIN                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials',                               ExtractInitials(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg','');                             ContactPrefix := ExtractNamePrefix(ElecTaxDeclarationSetup."Agent Contact Name");                             IF ContactPrefix <> '' THEN                               InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',ContactPrefix,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname',                               ExtractSurname(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...

    Vorhandenen Code 6

    ...ElecTaxDeclarationSetup."Agent Contact Phone No.",'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:TaxConsultantNumber',                               ElecTaxDeclarationSetup."Agent Contact ID",'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',                               ExtractStreetName(ElecTaxDeclarationSetup."Agent Contact Address"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',                               ExtractStreetNo(ElecTaxDeclarationSetup."Agent Contact Address"),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL',                               DELCHR(ElecTaxDeclarationSetup."Agent Contact Post Code",'=',' '),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...

    Ersetzungscode 6

    ...ElecTaxDeclarationSetup."Agent Contact Phone No.",'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:TaxConsultantNumber',                               ElecTaxDeclarationSetup."Agent Contact ID",'','Msg','');                             PostCodeMgt.ParseAddressAdditionHouseNo(                               StreetName,HouseNo,AdditionHouseNo,ElecTaxDeclarationSetup."Agent Contact Address");                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',StreetName,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',HouseNo,'','Msg','');                             IF AdditionHouseNo <> '' THEN                               InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberAddition',AdditionHouseNo,'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL',                               DELCHR(ElecTaxDeclarationSetup."Agent Contact Post Code",'=',' '),'','Msg','');                             InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...

    Vorhandenen Code 7

    ...SETRANGE("VAT Registration No.", "VAT Registration No.");                           CALCSUMS(Base);                           "Elec. Tax Declaration Header".InsertLine(0,1,CurrentType,'');                           InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:CountryCodeISO-EC',                             COPYSTR("Country/Region Code",1,2),'','Msg','');                           IF COPYSTR(UPPERCASE("VAT Registration No."),1,STRLEN("Country/Region Code")) = "Country/Region Code" THEN                             "VAT Registration No." := DELSTR("VAT Registration No.",1,STRLEN("Country/Region Code"));                           InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:SuppliesAmount',                             FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR');                           InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:VATIdentificationNumberNational',                             "VAT Registration No.",'','Msg','');                           FIND('+');                           SETRANGE("Country/Region Code");...

    Neuer Code 7

    ...SETRANGE("VAT Registration No.", "VAT Registration No.");                           CALCSUMS(Base);                           IF ABS(Base) >= 1 THEN BEGIN                             "Elec. Tax Declaration Header".InsertLine(0,1,CurrentType,'');                             InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:CountryCodeISO-EC',                               COPYSTR("Country/Region Code",1,2),'','Msg','');                             IF COPYSTR(UPPERCASE("VAT Registration No."),1,STRLEN("Country/Region Code")) = "Country/Region Code" THEN                               "VAT Registration No." := DELSTR("VAT Registration No.",1,STRLEN("Country/Region Code"));                             CASE Integer.Number OF                               0,2:                                 InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:SuppliesAmount',                                   FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR');                               1:                                 InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:ServicesAmount',                                   FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR');                             END;                             InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:VATIdentificationNumberNational',                               "VAT Registration No.",'','Msg','');                           END;                           FIND('+');                           SETRANGE("Country/Region Code");...
  2. Ändern Sie den Code in globalen Variablen im Bericht Elektr. ICP-Erklärung erstellen (11404) wie folgt:Vorhandener code

    ...CompanyInfo@1000003 : Record 79;      ElecTaxDeclarationSetup@1000001 : Record 11408;      StatusErr@1000005 : TextConst 'ENU=The report status need to have value " " or Created to create the report content.';      CurrentType@1000000 : Text[60];    LOCAL PROCEDURE GetStrippedAppVersion@1101100000(AppVersion@1101100001 : Text[250]) Res : Text[250];...

    Neuer code

    ...CompanyInfo@1000003 : Record 79;      ElecTaxDeclarationSetup@1000001 : Record 11408;      StatusErr@1000005 : TextConst 'ENU=The report status need to have value " " or Created to create the report content.';      PostCodeMgt@1000002 : Codeunit 11401;      CurrentType@1000000 : Text[60];    LOCAL PROCEDURE GetStrippedAppVersion@1101100000(AppVersion@1101100001 : Text[250]) Res : Text[250];...
  3. Ändern Sie den Code in der Funktion ExtractStreetName in den Bericht Elektr. ICP-Erklärung erstellen (11404) wie folgt:Vorhandener code

    ...ElecTaxDeclHeader.InsertLine(1,Indentation + 1,'unitRef',unitRef);    END;    LOCAL PROCEDURE ExtractStreetName@1000013(Address@1000000 : Text[50]) : Text[50];    BEGIN      IF IndexOfFirstNumber(Address) > 1 THEN        EXIT(COPYSTR(Address,1,IndexOfFirstNumber(Address) - 2));      EXIT(Address);    END;    LOCAL PROCEDURE ExtractStreetNo@1000012(Address@1000000 : Text[50]) : Text[50];    BEGIN      IF IndexOfFirstNumber(Address) > 0 THEN        EXIT(COPYSTR(Address,IndexOfFirstNumber(Address)));      EXIT('');    END;    LOCAL PROCEDURE ExtractInitials@1000014(FullName@1000000 : Text[35]) Initials : Text[30];    VAR      Pos@1000001 : Integer;...

    Neuer code

    ...ElecTaxDeclHeader.InsertLine(1,Indentation + 1,'unitRef',unitRef);    END;    LOCAL PROCEDURE ExtractInitials@1000014(FullName@1000000 : Text[35]) Initials : Text[30];    VAR      Pos@1000001 : Integer;...
  4. Ändern Sie den Code in der Funktion IndexOfFirstNumber in den Bericht Elektr. ICP-Erklärung erstellen (11404) wie folgt:Vorhandener code

    ...Surname := COPYSTR(FullName,STRPOS(FullName,' ') + 1);    END;    LOCAL PROCEDURE IndexOfFirstNumber@1000017(Str@1000000 : Text[50]) : Integer;    VAR      Index@1000001 : Integer;    BEGIN      FOR Index := 1 TO STRLEN(Str) DO BEGIN        IF Str[Index] IN ['0'..'9'] THEN          EXIT(Index);      END;      EXIT(0);    END;    BEGIN    END.  }...

    Neuer code

    ...Surname := COPYSTR(FullName,STRPOS(FullName,' ') + 1);    END;    BEGIN    END.  }...
  5. Ändern Sie den Code in der Funktion ParseAddressAdditionHouseNo Post-Verwaltung Codeunit (11401) wie folgt:Vorhandener code

    ...EXIT(TRUE);    END;    BEGIN    {      <changelog>...

    Neuer code

    ...EXIT(TRUE);    END;    PROCEDURE ParseAddressAdditionHouseNo@1000003(VAR StreetName@1000001 : Text[50];VAR HouseNo@1000002 : Text[50];VAR AdditionHouseNo@1000003 : Text[50];Address@1000000 : Text[50]);    VAR      HouseString@1000004 : Text[50];    BEGIN      StreetName := '';      HouseNo := '';      AdditionHouseNo := '';      IF Address = '' THEN        EXIT;      // Suppose that house string is a last word in the Address      HouseString := GetHouseString(Address);      IF HouseString = '' THEN BEGIN        StreetName := Address;        EXIT;      END;      // The last word is a House string with possible AdditionHouseNo information. All before last word is a StreetName.      StreetName := COPYSTR(Address,1,STRLEN(Address) - STRLEN(HouseString) - 1);      HouseNo := GetHouseNoFromHouseString(HouseString);      AdditionHouseNo := HouseString;    END;    LOCAL PROCEDURE GetHouseString@1000002(Address@1000000 : Text[50]) : Text[50];    VAR      i@1000003 : Integer;    BEGIN      // If there's only one word then return empty HouseString      IF STRPOS(Address,' ') = 0 THEN        EXIT('');      //Lookup from end of string first space after a number      // Find the last word: revert address string, cut first word, revert result      RevertString(Address);      // Delete Spaces at beginning      Address := DELCHR(Address,'<');      i := 1;      // Find first number i ==> position of first number      WHILE  (NOT (Address[i] IN ['0'..'9']) AND (i < STRLEN(Address))) DO        i += 1;      IF ((i = STRLEN(Address)) AND NOT (Address[i] IN ['0'..'9'])) THEN //No number found      EXIT('');      // look further until number stops      WHILE ((Address[i] IN ['0'..'9']) AND (i < STRLEN(Address))) DO        i+= 1;      Address := DELCHR(COPYSTR(Address,1, i-1), '<=>'); // remove all spaces      RevertString(Address);      EXIT(Address);    END;    LOCAL PROCEDURE GetHouseNoFromHouseString@1000000(VAR HouseString@1000000 : Text[50]) HouseNo : Text[50];    VAR      Pos@1000002 : Integer;    BEGIN      Pos := 1;      WHILE HouseString[Pos] IN ['0'..'9'] DO        Pos += 1;      HouseNo := COPYSTR(HouseString,1,Pos - 1);      // remove HouseNo from the HouseString including special separating char if such exist      IF HouseString[Pos] IN ['/','\','-'] THEN        Pos += 1;      HouseString := COPYSTR(HouseString,Pos);    END;    LOCAL PROCEDURE RevertString@1170000000(VAR String@1170000000 : Text[50]);    VAR      StringCopy@1170000001 : Text[50];      i@1170000002 : Integer;      Length@1170000003 : Integer;    BEGIN      StringCopy := String;      Length := STRLEN(String);      FOR i := 1 TO Length DO        String[i] := StringCopy[Length - i + 1];    END;    BEGIN    {      <changelog>...

Voraussetzungen

Sie müssen eines der folgenden Produkte verfügen, um diesen Hotfix installieren:

  • Die niederländische Version von Microsoft Dynamics NAV 2009 R2

  • Die niederländische Version von Microsoft Dynamics NAV 2009 SP1

Darüber hinaus müssen Sie implementieren die "Steuer Behörden übernehmen Digipoort für MwSt. und EU-Verkäufe Liste Vorlage für Microsoft Dynamics NAV SP1 NL."

Informationen zur Deinstallation

Dieser Hotfix kann nicht entfernt werden.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Weitere Hinweise finden Sie unter Geschäftsbedingungen.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.