Funkcja eksportowania nie eksportuje ograniczeń tabeli modelu

Ten artykuł zawiera rozwiązanie problemu polegającego na tym, że funkcja eksportu w usłudze Microsoft Dynamics AX 2009 nie eksportuje ograniczeń tabeli modelu.

Dotyczy: Microsoft Dynamics AX 2009
Oryginalny numer KB: 2464353

Symptomy

Usługa Microsoft Dynamics AX 2009 umożliwia użytkownikom eksportowanie modeli produktów i importowanie ich do nowych modeli produktów w tej samej firmie lub w nowych firmach. Jednak podczas eksportowania modeli produktów ograniczenia tabeli nie są uwzględniane. Podczas importowania modeli użytkownicy muszą ręcznie dodać ograniczenia tabeli.

Poniżej możliwego scenariusza, w którym ograniczenia tabeli nie są eksportowane.

  1. Otwórz ścieżkę menu Konstruktor produktu/Konfiguracja/Ograniczenia tabeli.

  2. Utwórz nowy rekord z następującymi wartościami:

    Identyfikator ograniczenia tabeli: InventTable
    Nazwa tabeli ograniczenia tabeli: InventTable

  3. Utwórz nowy rekord w dolnej siatce z następującymi wartościami:

    Nazwa pola: ItemGroupId
    Zmienna: ItemGroupId

  4. Utwórz nowy rekord w dolnej siatce z następującymi wartościami:

    Nazwa pola: ItemId
    Zmienna: ItemId

  5. Zapisz rekordy i zamknij formularz.

  6. Otwórz ścieżkę menu Konstruktor produktu/Typowe formularze/Szczegóły modelu produktu.

  7. Utwórz nowy model produktu, wybierając klawisze Ctrl+N na klawiaturze i zakończ pracę kreatora, wybierając przycisk Zakończ .

  8. Otwórz model produktu, wybierając przycisk Model produktu.

  9. Na stronie Model produktu wybierz kartę Ograniczenia tabeli , utwórz nowy rekord z identyfikatorem tabeli Ograniczenia: InventTable i zapisz rekord.

  10. W oknie dialogowym Wybieranie grupy zmiennych wprowadź wartość Podstawowa na liście rozwijanej Grupa i wybierz przycisk OK.

  11. Zamknij formularz, aby wrócić do początkowego formularza Modele produktów.

  12. Wybierz przycisk Functions /Eksportuj model produktu i określa ścieżkę i nazwę pliku na lokalnym dysku twardym.

  13. Wybierz przycisk OK.

  14. Wybierz przycisk Functions /Importuj model produktu i wybierz plik utworzony powyżej podczas eksportowania.

  15. Wybierz przycisk OK.

  16. W kroku Usuń następujące tabele okno dialogowe, wybierz przycisk Nie dla wszystkich , a następnie wybierz przycisk OK.

  17. Może zostać zwrócone ostrzeżenie z informacją, że grupa Podstawowa i zmienna ItemGroupId i ItemId już istnieją. Jest to oczekiwane.

  18. Wybierz nowo zaimportowany model produktu i wybierz przycisk Model produktu .

  19. Na karcie Ograniczenia tabeli użytkownik zauważa, że ograniczenia tabeli nie są importowane.

Przyczyna

Ograniczenia tabeli nie są uwzględniane w logice eksportowania modeli produktów. Ograniczenia tabeli nie są uwzględniane w wyeksportowanych danych. Jest to spowodowane możliwymi problemami, gdy zmienne modelowania istnieją o tej samej nazwie zmiennej.

Rozwiązanie

Zmiana kodu umożliwi uwzględnienie ograniczeń tabeli podczas eksportowania modelu.

Metoda PBAExport.newPBAExportklasy :

Dodaj kod, który sprawia, że ostatnie wiersze wyglądają następująco:

---------------------------------------------------------------------------------------------
export.addTmpExpImpTable(tablenum(PBARuleTableConstraintRef),false);

return Export;
---------------------------------------------------------------------------------------------

Obejmuje to ograniczenia tabeli wiersza połączone z modelem produktu w eksporcie i umożliwia importowanie ograniczeń tabeli.

Więcej informacji

To obejście wymaga, aby ograniczenia tabeli istniały w ograniczeniach Konstruktor produktu/Konfiguracja/Tabela. Jest to ważne, jeśli modele tabel są importowane w innych firmach lub w innych bazach danych. Nie zezwala na eksportowanie ograniczeń tabeli (PBARuleTableConstraint) i pól ograniczeń tabeli (PBARuleTableConstraintColumn). Wynika to z ograniczeń walidacji podczas importowania istniejących zmiennych o podobnych nazwach zmiennych. W razie potrzeby można ręcznie wyeksportować i zaimportować te dwie tabele przy użyciu funkcji eksportowania/importowania danych w module Administracja.