TableOperations Klasa

Przestrzeń nazw dla operacji metadanych na poziomie tabeli.

Dostęp jest uzyskiwany za pośrednictwem client.tables. Udostępnia operacje tworzenia, usuwania, inspekcji i wyświetlania listy tabel usługi Dataverse, a także dodawania i usuwania kolumn.

Example:


   client = DataverseClient(base_url, credential)

   # Create a table
   info = client.tables.create(
       "new_Product",
       {"new_Price": "decimal", "new_InStock": "bool"},
       solution="MySolution",
   )

   # List tables
   tables = client.tables.list()

   # Get table info
   info = client.tables.get("new_Product")

   # Add columns
   client.tables.add_columns("new_Product", {"new_Rating": "int"})

   # Remove columns
   client.tables.remove_columns("new_Product", "new_Rating")

   # Delete a table
   client.tables.delete("new_Product")

Konstruktor

TableOperations(client: DataverseClient)

Parametry

Nazwa Opis
client
Wymagane

Wystąpienie nadrzędne DataverseClient .

Metody

add_columns

Dodaj co najmniej jedną kolumnę do istniejącej tabeli.

Example:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
create

Utwórz tabelę niestandardową z określonymi kolumnami.

create_alternate_key

Utwórz klucz alternatywny w tabeli.

Klucze alternatywne umożliwiają operacjom upsert identyfikowanie rekordów według co najmniej jednej kolumny zamiast podstawowego identyfikatora GUID. Po utworzeniu klucza jest w kolejce do kompilowania indeksów; jego status przejście z "Pending" do "Active" , gdy indeks będzie gotowy.

create_lookup_field

Utwórz prostą relację pola odnośnika.

Jest to metoda wygody, która opakowuje create_one_to_many_relationship typowy przypadek dodawania pola odnośnika do istniejącej tabeli.

create_many_to_many_relationship

Utwórz relację wiele-do-wielu między tabelami.

Ta operacja tworzy relację wiele-do-wielu i tabelę przecinania w celu zarządzania relacją.

create_one_to_many_relationship

Utwórz relację jeden do wielu między tabelami.

Ta operacja tworzy zarówno relację, jak i atrybut odnośnika w tabeli odwołującej się.

delete

Usuń tabelę niestandardową według nazwy schematu.

Warning

Ta operacja jest nieodwracalna i spowoduje usunięcie wszystkich rekordów w obiekcie

tabela wraz z definicją tabeli.

Example:


   client.tables.delete("new_MyTestTable")
delete_alternate_key

Usuń klucz alternatywny według identyfikatora metadanych.

Warning

Usunięcie alternatywnego klucza, który jest używany przez operacje upsert, spowoduje

spowodować niepowodzenie tych operacji. Ta operacja jest nieodwracalna.

Example:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_relationship

Usuń relację według identyfikatora metadanych.

Warning

Usunięcie relacji powoduje również usunięcie skojarzonego atrybutu odnośnika

w przypadku relacji jeden do wielu. Ta operacja jest nieodwracalna.

Example:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
get

Pobierz podstawowe metadane dla tabeli, jeśli istnieje.

Example:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get_alternate_keys

Wyświetl listę wszystkich kluczy alternatywnych zdefiniowanych w tabeli.

get_relationship

Pobieranie metadanych relacji według nazwy schematu.

Example:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
list

Wyświetl listę wszystkich tabel innych niż prywatne w środowisku Dataverse.

Domyślnie zwraca każdą tabelę, w której IsPrivate eq false. Podaj opcjonalne wyrażenie OData $filter , aby dokładniej zawęzić wyniki. Wyrażenie jest łączone z klauzulą domyślną IsPrivate eq false przy użyciu polecenia and.

Example:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list_columns

Wyświetl listę wszystkich definicji atrybutu (kolumny) dla tabeli.

Example:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_relationships

Wyświetl listę wszystkich definicji relacji w środowisku.

Example:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_table_relationships

Wyświetl listę wszystkich relacji dla określonej tabeli.

Łączy relacje jeden-do-wielu, wiele-do-jednego i wiele-do-wielu dla danej tabeli, wykonując EntityDefinitions({id})/OneToManyRelationshipszapytania o wartości , EntityDefinitions({id})/ManyToOneRelationshipsi EntityDefinitions({id})/ManyToManyRelationships.

Example:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
remove_columns

Usuń co najmniej jedną kolumnę z tabeli.

Example:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']

add_columns

Dodaj co najmniej jedną kolumnę do istniejącej tabeli.

Example:


   created = client.tables.add_columns(
       "new_MyTestTable",
       {"new_Notes": "string", "new_Active": "bool"},
   )
   print(created)  # ['new_Notes', 'new_Active']
add_columns(table: str, columns: Dict[str, Any]) -> List[str]

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_MyTestTable").

columns
Wymagane

Mapowanie nazw schematów kolumn (z prefiksem dostosowywania) na ich typy. Obsługiwane typy są takie same jak w przypadku createprogramu .

Zwraca

Typ Opis

Nazwy schematów utworzonych kolumn.

Wyjątki

Typ Opis

Jeśli tabela nie istnieje.

create

Utwórz tabelę niestandardową z określonymi kolumnami.

create(table: str, columns: Dict[str, Any], *, solution: str | None = None, primary_column: str | None = None, display_name: str | None = None) -> TableInfo

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli z prefiksem dostosowywania (np. "new_MyTestTable").

columns
Wymagane

Mapowanie nazw schematów kolumn (z prefiksem dostosowywania) na ich typy. Obsługiwane typy obejmują "string" (lub "text"), "memo" (lub "multiline""int" ), (lub "integer""decimal" ), (lub "money"), "float" (lub "double"), "datetime" (lub ), (lub "date"), (lub "boolean") "bool""file"i Enum podklasy (dla lokalnych zestawów opcji).

solution
Wymagane
str

Opcjonalna unikatowa nazwa rozwiązania, która powinna być właścicielem nowej tabeli. Po pominięciu tabeli zostanie utworzona w rozwiązaniu domyślnym.

primary_column
Wymagane
str

Opcjonalna nazwa schematu kolumny nazwy podstawowej z prefiksem dostosowywania (np. "new_ProductName"). Jeśli nie zostanie podana, wartość domyślna to "{prefix}_Name".

display_name
Wymagane
str

Czytelna dla człowieka nazwa wyświetlana tabeli (np. "Product"). Po pominięciu wartość domyślna to nazwa schematu tabeli.

Parametry Tylko słowo kluczowe

Nazwa Opis
solution
Domyślna wartość: None
primary_column
Domyślna wartość: None
display_name
Domyślna wartość: None

Zwraca

Typ Opis

Metadane tabeli z elementami schema_name, , entity_set_namelogical_name, metadata_idi columns_created. Obsługuje dostęp podobny do dyktowania ze starszymi kluczami w celu zapewnienia zgodności z poprzednimi wersjami.

Wyjątki

Typ Opis

Jeśli tworzenie tabeli zakończy się niepowodzeniem lub tabela już istnieje.

Przykłady

Utwórz tabelę z prostymi kolumnami:


   from enum import IntEnum

   class ItemStatus(IntEnum):
       ACTIVE = 1
       INACTIVE = 2

   result = client.tables.create(
       "new_Product",
       {
           "new_Title": "string",
           "new_Price": "decimal",
           "new_Status": ItemStatus,
       },
       solution="MySolution",
       primary_column="new_ProductName",
       display_name="Product",
   )
   print(f"Created: {result['table_schema_name']}")

create_alternate_key

Utwórz klucz alternatywny w tabeli.

Klucze alternatywne umożliwiają operacjom upsert identyfikowanie rekordów według co najmniej jednej kolumny zamiast podstawowego identyfikatora GUID. Po utworzeniu klucza jest w kolejce do kompilowania indeksów; jego status przejście z "Pending" do "Active" , gdy indeks będzie gotowy.

create_alternate_key(table: str, key_name: str, columns: List[str], *, display_name: str | None = None, language_code: int = 1033) -> AlternateKeyInfo

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_Product").

key_name
Wymagane
str

Nazwa schematu nowego klucza alternatywnego (np. "new_product_code_key").

columns
Wymagane

Lista nazw logicznych kolumn, które tworzą klucz (np. ["new_productcode"]).

display_name
Wymagane
str

Nazwa wyświetlana klucza. Wartość domyślna to key_name jeśli nie zostanie podana.

language_code
Wymagane
int

Kod języka etykiet. Wartość domyślna to 1033 (angielski).

Parametry Tylko słowo kluczowe

Nazwa Opis
display_name
Domyślna wartość: None
language_code
Domyślna wartość: 1033

Zwraca

Typ Opis

Metadane nowo utworzonego klucza alternatywnego.

Wyjątki

Typ Opis

Jeśli tabela nie istnieje.

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

Przykłady

Utwórz klucz alternatywny z jedną kolumną dla operacji upsert:


   key = client.tables.create_alternate_key(
       "new_Product",
       "new_product_code_key",
       ["new_productcode"],
       display_name="Product Code",
   )
   print(f"Key ID: {key.metadata_id}")
   print(f"Columns: {key.key_attributes}")

create_lookup_field

Utwórz prostą relację pola odnośnika.

Jest to metoda wygody, która opakowuje create_one_to_many_relationship typowy przypadek dodawania pola odnośnika do istniejącej tabeli.

create_lookup_field(referencing_table: str, lookup_field_name: str, referenced_table: str, *, display_name: str | None = None, description: str | None = None, required: bool = False, cascade_delete: str = 'RemoveLink', solution: str | None = None, language_code: int = 1033) -> RelationshipInfo

Parametry

Nazwa Opis
referencing_table
Wymagane
str

Logiczna nazwa tabeli, która będzie zawierać pole odnośnika (tabela podrzędna).

lookup_field_name
Wymagane
str

Nazwa schematu pola odnośnika (np. "new_AccountId").

referenced_table
Wymagane
str

Logiczna nazwa przywoływanej tabeli (tabela nadrzędna).

display_name
Wymagane
str

Nazwa wyświetlana pola odnośnika. Domyślnie jest to nazwa tabeli, do których odwołuje się odwołanie.

description
Wymagane
str

Opcjonalny opis pola odnośnika.

required
Wymagane

Czy wyszukiwanie jest wymagane. Wartość domyślna to False.

cascade_delete
Wymagane
str

Zachowanie usuwania ("RemoveLink", "Cascade", "Restrict"). Wartość domyślna to "RemoveLink".

solution
Wymagane
str

Opcjonalna unikatowa nazwa rozwiązania w celu dodania relacji do.

language_code
Wymagane
int

Kod języka etykiet. Wartość domyślna to 1033 (angielski).

Parametry Tylko słowo kluczowe

Nazwa Opis
display_name
Domyślna wartość: None
description
Domyślna wartość: None
required
Domyślna wartość: False
cascade_delete
Domyślna wartość: RemoveLink
solution
Domyślna wartość: None
language_code
Domyślna wartość: 1033

Zwraca

Typ Opis

Metadane relacji z relationship_id, , relationship_schema_name, relationship_typelookup_schema_name, referenced_entityi referencing_entity.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

Przykłady

Utwórz proste pole odnośnika:


   result = client.tables.create_lookup_field(
       referencing_table="new_order",
       lookup_field_name="new_AccountId",
       referenced_table="account",
       display_name="Account",
       required=True,
       cascade_delete=CASCADE_BEHAVIOR_REMOVE_LINK,
   )
   print(f"Created lookup: {result.lookup_schema_name}")

create_many_to_many_relationship

Utwórz relację wiele-do-wielu między tabelami.

Ta operacja tworzy relację wiele-do-wielu i tabelę przecinania w celu zarządzania relacją.

create_many_to_many_relationship(relationship: ManyToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parametry

Nazwa Opis
relationship
Wymagane

Metadane definiujące relację wiele-do-wielu.

solution
Wymagane
str

Opcjonalna unikatowa nazwa rozwiązania do dodawania relacji.

Parametry Tylko słowo kluczowe

Nazwa Opis
solution
Domyślna wartość: None

Zwraca

Typ Opis

Metadane relacji z relationship_id, , relationship_schema_name, relationship_typeentity1_logical_namei entity2_logical_name.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

Przykłady

Utwórz relację wiele-do-wielu: Employee <—> Project:


   from PowerPlatform.Dataverse.models import (
       ManyToManyRelationshipMetadata,
   )

   relationship = ManyToManyRelationshipMetadata(
       schema_name="new_employee_project",
       entity1_logical_name="new_employee",
       entity2_logical_name="new_project",
   )

   result = client.tables.create_many_to_many_relationship(relationship)
   print(f"Created: {result.relationship_schema_name}")

create_one_to_many_relationship

Utwórz relację jeden do wielu między tabelami.

Ta operacja tworzy zarówno relację, jak i atrybut odnośnika w tabeli odwołującej się.

create_one_to_many_relationship(lookup: LookupAttributeMetadata, relationship: OneToManyRelationshipMetadata, *, solution: str | None = None) -> RelationshipInfo

Parametry

Nazwa Opis
lookup
Wymagane

Metadane definiujące atrybut wyszukiwania.

relationship
Wymagane

Metadane definiujące relację.

solution
Wymagane
str

Opcjonalna unikatowa nazwa rozwiązania do dodawania relacji.

Parametry Tylko słowo kluczowe

Nazwa Opis
solution
Domyślna wartość: None

Zwraca

Typ Opis

Metadane relacji z relationship_id, , relationship_schema_name, relationship_typelookup_schema_name, referenced_entityi referencing_entity.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

Przykłady

Utwórz relację jeden do wielu: Dział (1) —> Pracownik (N):


   from PowerPlatform.Dataverse.models import (
       LookupAttributeMetadata,
       OneToManyRelationshipMetadata,
       Label,
       LocalizedLabel,
       CascadeConfiguration,
   )
   from PowerPlatform.Dataverse.common.constants import (
       CASCADE_BEHAVIOR_REMOVE_LINK,
   )

   lookup = LookupAttributeMetadata(
       schema_name="new_DepartmentId",
       display_name=Label(
           localized_labels=[
               LocalizedLabel(label="Department", language_code=1033)
           ]
       ),
   )

   relationship = OneToManyRelationshipMetadata(
       schema_name="new_Department_Employee",
       referenced_entity="new_department",
       referencing_entity="new_employee",
       referenced_attribute="new_departmentid",
       cascade_configuration=CascadeConfiguration(
           delete=CASCADE_BEHAVIOR_REMOVE_LINK,
       ),
   )

   result = client.tables.create_one_to_many_relationship(lookup, relationship)
   print(f"Created lookup field: {result.lookup_schema_name}")

delete

Usuń tabelę niestandardową według nazwy schematu.

Warning

Ta operacja jest nieodwracalna i spowoduje usunięcie wszystkich rekordów w obiekcie

tabela wraz z definicją tabeli.

Example:


   client.tables.delete("new_MyTestTable")
delete(table: str) -> None

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_MyTestTable").

Wyjątki

Typ Opis

Jeśli tabela nie istnieje lub usunięcie nie powiedzie się.

delete_alternate_key

Usuń klucz alternatywny według identyfikatora metadanych.

Warning

Usunięcie alternatywnego klucza, który jest używany przez operacje upsert, spowoduje

spowodować niepowodzenie tych operacji. Ta operacja jest nieodwracalna.

Example:


   client.tables.delete_alternate_key(
       "new_Product",
       "12345678-1234-1234-1234-123456789abc",
   )
delete_alternate_key(table: str, key_id: str) -> None

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_Product").

key_id
Wymagane
str

Identyfikator GUID metadanych klucza alternatywnego do usunięcia.

Wyjątki

Typ Opis

Jeśli tabela nie istnieje.

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

delete_relationship

Usuń relację według identyfikatora metadanych.

Warning

Usunięcie relacji powoduje również usunięcie skojarzonego atrybutu odnośnika

w przypadku relacji jeden do wielu. Ta operacja jest nieodwracalna.

Example:


   client.tables.delete_relationship(
       "12345678-1234-1234-1234-123456789abc"
   )
delete_relationship(relationship_id: str) -> None

Parametry

Nazwa Opis
relationship_id
Wymagane
str

Identyfikator GUID metadanych relacji.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

get

Pobierz podstawowe metadane dla tabeli, jeśli istnieje.

Example:


   info = client.tables.get("new_MyTestTable")
   if info:
       print(f"Logical name: {info['table_logical_name']}")
       print(f"Entity set: {info['entity_set_name']}")
get(table: str) -> TableInfo | None

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_MyTestTable" lub "account").

Zwraca

Typ Opis

Metadane tabeli lub None jeśli tabela nie zostanie znaleziona. Obsługuje dostęp podobny do dyktowania ze starszymi kluczami w celu zapewnienia zgodności z poprzednimi wersjami.

get_alternate_keys

Wyświetl listę wszystkich kluczy alternatywnych zdefiniowanych w tabeli.

get_alternate_keys(table: str) -> List[AlternateKeyInfo]

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_Product").

Zwraca

Typ Opis

Lista obiektów metadanych klucza alternatywnego. Może być pusty, jeśli nie zdefiniowano żadnych kluczy alternatywnych.

Wyjątki

Typ Opis

Jeśli tabela nie istnieje.

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

Przykłady

Wyświetl listę alternatywnych kluczy i wyświetl ich stan:


   keys = client.tables.get_alternate_keys("new_Product")
   for key in keys:
       print(f"{key.schema_name}: {key.status}")

get_relationship

Pobieranie metadanych relacji według nazwy schematu.

Example:


   rel = client.tables.get_relationship("new_Department_Employee")
   if rel:
       print(f"Found: {rel.relationship_schema_name}")
get_relationship(schema_name: str) -> RelationshipInfo | None

Parametry

Nazwa Opis
schema_name
Wymagane
str

Nazwa schematu relacji.

Zwraca

Typ Opis

Metadane relacji lub None jeśli nie znaleziono.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

list

Wyświetl listę wszystkich tabel innych niż prywatne w środowisku Dataverse.

Domyślnie zwraca każdą tabelę, w której IsPrivate eq false. Podaj opcjonalne wyrażenie OData $filter , aby dokładniej zawęzić wyniki. Wyrażenie jest łączone z klauzulą domyślną IsPrivate eq false przy użyciu polecenia and.

Example:


   # List all non-private tables
   tables = client.tables.list()
   for table in tables:
       print(table["LogicalName"])

   # List only tables whose schema name starts with "new_"
   custom_tables = client.tables.list(
       filter="startswith(SchemaName, 'new_')"
   )

   # List tables with only specific properties
   tables = client.tables.list(
       select=["LogicalName", "SchemaName", "EntitySetName"]
   )
list(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametry

Nazwa Opis
filter
Wymagane
str

Opcjonalne wyrażenie OData $filter w celu dalszego zawężenia listy zwracanych tabel (np. "SchemaName eq 'Account'"). Nazwy kolumn w wyrażeniach filtru muszą używać dokładnych nazw właściwości z EntityDefinitions metadanych (zazwyczaj PascalCase).

select
Wymagane
list[str] lub None

Opcjonalna lista nazw właściwości do uwzględnienia w odpowiedzi (przewidywane za pośrednictwem opcji zapytania OData $select ). Nazwy właściwości muszą używać dokładnych nazw PascalCase z EntityDefinitions metadanych (np. ["LogicalName", "SchemaName", "DisplayName"]). Gdy None (wartość domyślna) lub pusta lista, zwracane są wszystkie właściwości.

Parametry Tylko słowo kluczowe

Nazwa Opis
filter
Domyślna wartość: None
select
Domyślna wartość: None

Zwraca

Typ Opis

Lista słowników metadanych EntityDefinition.

list_columns

Wyświetl listę wszystkich definicji atrybutu (kolumny) dla tabeli.

Example:


   # List all columns on the account table
   columns = client.tables.list_columns("account")
   for col in columns:
       print(f"{col['LogicalName']} ({col.get('AttributeType')})")

   # List only specific properties
   columns = client.tables.list_columns(
       "account",
       select=["LogicalName", "SchemaName", "AttributeType"],
   )

   # Filter to only string attributes
   columns = client.tables.list_columns(
       "account",
       filter="AttributeType eq 'String'",
   )
list_columns(table: str, *, select: List[str] | None = None, filter: str | None = None) -> List[Dict[str, Any]]

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "account" lub "new_Product").

select
Wymagane
list[str] lub None

Opcjonalna lista nazw właściwości do projektu za pomocą polecenia $select. Wartości są przekazywane as-is (PascalCase).

filter
Wymagane
str

Opcjonalne wyrażenie OData $filter . Na przykład "AttributeType eq 'String'" zwraca tylko kolumny ciągów.

Parametry Tylko słowo kluczowe

Nazwa Opis
select
Domyślna wartość: None
filter
Domyślna wartość: None

Zwraca

Typ Opis

Lista słowników metadanych atrybutów pierwotnych.

Wyjątki

Typ Opis

Jeśli tabela nie zostanie znaleziona.

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

list_relationships

Wyświetl listę wszystkich definicji relacji w środowisku.

Example:


   # List all relationships
   rels = client.tables.list_relationships()
   for rel in rels:
       print(f"{rel['SchemaName']} ({rel.get('@odata.type')})")

   # Filter by type
   one_to_many = client.tables.list_relationships(
       filter="RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'"
   )

   # Select specific properties
   rels = client.tables.list_relationships(
       select=["SchemaName", "ReferencedEntity", "ReferencingEntity"]
   )
list_relationships(*, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametry

Nazwa Opis
filter
Wymagane
str

Opcjonalne wyrażenie OData $filter . Na przykład "RelationshipType eq Microsoft.Dynamics.CRM.RelationshipType'OneToManyRelationship'" zwraca tylko relacje jeden do wielu.

select
Wymagane
list[str] lub None

Opcjonalna lista nazw właściwości do projektu za pomocą polecenia $select. Wartości są przekazywane as-is (PascalCase).

Parametry Tylko słowo kluczowe

Nazwa Opis
filter
Domyślna wartość: None
select
Domyślna wartość: None

Zwraca

Typ Opis

Lista słowników metadanych nieprzetworzonych relacji.

Wyjątki

Typ Opis

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

list_table_relationships

Wyświetl listę wszystkich relacji dla określonej tabeli.

Łączy relacje jeden-do-wielu, wiele-do-jednego i wiele-do-wielu dla danej tabeli, wykonując EntityDefinitions({id})/OneToManyRelationshipszapytania o wartości , EntityDefinitions({id})/ManyToOneRelationshipsi EntityDefinitions({id})/ManyToManyRelationships.

Example:


   # List all relationships for the account table
   rels = client.tables.list_table_relationships("account")
   for rel in rels:
       print(f"{rel['SchemaName']} -> {rel.get('@odata.type')}")
list_table_relationships(table: str, *, filter: str | None = None, select: List[str] | None = None) -> List[Dict[str, Any]]

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "account").

filter
Wymagane
str

Opcjonalne wyrażenie OData $filter zastosowane do każdego żądania podrzędnego.

select
Wymagane
list[str] lub None

Opcjonalna lista nazw właściwości do projektu za pomocą polecenia $select. Wartości są przekazywane as-is (PascalCase).

Parametry Tylko słowo kluczowe

Nazwa Opis
filter
Domyślna wartość: None
select
Domyślna wartość: None

Zwraca

Typ Opis

Połączona lista słowników metadanych relacji "jeden do wielu", "wiele do jednego" i "wiele do wielu".

Wyjątki

Typ Opis

Jeśli tabela nie zostanie znaleziona.

Jeśli żądanie internetowego interfejsu API zakończy się niepowodzeniem.

remove_columns

Usuń co najmniej jedną kolumnę z tabeli.

Example:


   removed = client.tables.remove_columns(
       "new_MyTestTable",
       ["new_Notes", "new_Active"],
   )
   print(removed)  # ['new_Notes', 'new_Active']
remove_columns(table: str, columns: str | List[str]) -> List[str]

Parametry

Nazwa Opis
table
Wymagane
str

Nazwa schematu tabeli (np. "new_MyTestTable").

columns
Wymagane
str lub list[str]

Nazwa schematu kolumny lub lista nazw schematów kolumn do usunięcia. Musi zawierać prefiks dostosowywania (np. "new_TestColumn").

Zwraca

Typ Opis

Nazwy schematów usuniętych kolumn.

Wyjątki

Typ Opis

Jeśli tabela lub określona kolumna nie istnieje.