Förstå postreferenser och polymorfa sökningar i arbetsyteappar

När du skrev en forskningsrapport i skolan angav du antagligen en lista med dina referenser i slutet. Du använde inte en kopia av det aktuella bakgrundsmaterialet, utan i stället en webblänk, boktitel och författare, eller annan information som gör att någon kan spåra originalkällan. Du blandade olika typer av källor i en och samma lista, tidningsartiklar bredvid ljudinspelningar, med information om specifika detaljer för ett korrekt citat. Exempelvis innehåller Wikipedia-artiklar ofta en lång lista med referenser.

I arbetsyteappar arbetar du ofta med kopior av poster som hämtats från datakällor. Du använder funktionerna LookUp och Filter och Galleri-kontrollernas egenskap Selected för att identifiera den specifika post du vill ha. Alla poster från Filter eller Vald kommer att vara av samma tabelltyp, så du kan använda fält med en enkel Fält-markering. Kopiorna innehåller ofta referensinformation så att du kan använda funktionen Patch för att uppdatera originalkällan.

Arbetsyteappar stöder även postreferenser. En postreferens refererar till en post utan att ta med en fullständig kopia av en referens till forskningspapper. En sådan referens kan referera till en post i valfri tabell. Precis som med referenserna i forskningstidningar kan du också blanda poster från olika tabeller i en enskild kolumn.

Många åtgärder på postreferenser är identiska för att du ska kunna arbeta med poster. Du kan jämföra postreferenser med varandra och till fullständiga poster. Du kan ange en postreferens värde med Patch funktionen precis som du skulle göra med en sökning med en fullständig post.

Det finns en viktig användningsskillnad: du kan inte direkt komma åt fälten i en postreferens utan att först fastställa vilken tabell den refererar till. Det här beror på att arbetsyteappen kräver att alla typer är kända när du skriver formler. Eftersom du inte känner till typen av postreferens förrän appen körs kan du inte använda den enkla. Fält-format direkt. Du måste först dynamiskt fastställa tabelltypen med funktionen IsType och använd sedan .Fält-markering på resultatet av funktionen AsType.

Tabelltyp refererar till schemat för varje post i en tabell. Varje tabell har en unik uppsättning fält med olika namn och datatyper. Varje post i tabellen ärver den strukturen. två poster har samma tabelltyp om de kommer från samma tabell.

Anteckning

Du kan välja mellan många olika anslutningar och ansluta till olika typer av datakällor för appar. Om du däremot arbetar med arbetsyteappar inne i Power Apps Studio, kolumner i Microsoft Dataverse som hänvisas till fält som liknar alla andra datakällor. Kolumn används endast när en kolumn refereras till i Dataverse. Mer information: Uppdatering av Dataverse-termer

Polymorfa uppslag

Microsoft Dataverse stöder relationer mellan poster. Varje post i tabellen Konton har en uppslagskolumn Primär kontakt till en post i tabellen Kontakter. Uppslaget kan endast referera till en post i Kontakter och kan inte referera till en post i, till exempel tabellen Team. Den sista detaljen är viktig eftersom du alltid vet vilka kolumner som är tillgängliga för uppslagskolumnen.

Dataverse har även stöd för uppslag som refererar till en post från valfri tabell i en uppsättning. Kolumnen Ägare kan till exempel referera till en post i tabellen Användare eller tabellen Team. Samma uppslagskolumn i olika poster kan referera till poster i olika tabeller. I det här fallet vet du inte alltid vilka kolumner som är tillgängliga.

Arbetsytans postreferens har utformats för att arbeta med polymorfa sökningar i Dataverse. Du kan även använda postreferenser utanför detta sammanhang, vilket är hur de två begreppen skiljer sig.

I nästa avsnitt får du utforska de här begreppen genom att arbeta med sökningen ägare.

Visa kolumnerna för en postägare

Varje tabell i Dataverse innehåller en kolumn Ägare. Kolumnen kan inte tas bort, du kan inte lägga till en annan kolumn och det krävs alltid ett värde.

Så här visar du kolumnen i tabellen Konto:

  1. Logga in på Power Apps.

  2. I vänstra panelfältet väljer du Data > Tabeller.

  3. Välj i listan med tabeller Konto.

  4. I det övre högra hörnet (som standard Default som standard) och välj sedan Alla.

  5. Bläddra nedåt tills kolumnen Ägare visas.

    Ägarkolumn på kontotabellen.

Denna uppslagskolumn kan hänvisa antingen till tabellen Team eller Användare. Alla poster i de här tabellerna har inte behörighet att vara ägare. Kontrollera vilka roller som stöds om du får problem.

Den här bilden visar ett enkelt galleri med Konton, där tabellen Konton har lagts till i appen som en datakälla:

Konton som visas i en Galleri-kontroll.

Viktigt

Under den här ämne visar grafiken några namn och andra värden som inte ingår i de exempeldata som ingår i Dataverse. Stegen visar noggrant hur du konfigurerar kontroller för ett visst resultat, men din upplevelse varierar beroende på vilka data som finns för organisationen.

Om du vill visa ägaren för varje konto i galleriet kanske du frestas att använda formeln ThisItem.Owner.Name. Namnfältet i tabellen Team är Team Name och namnfältet i tabellen Användare är Fullständigt namn. Appen kan inte veta vilken typ av uppslag du arbetar med förrän du kör appen och den kan variera mellan posterna i tabellen Konton.

Du behöver en formel som kan anpassas efter avvikelsen. Du måste också lägga till datakällor för de tabelltyper som Ägare kan vara (i det här fallet Användare och Team). Lägg till följande tre datakällor i appen:

Konton, team och användare tabeller i datafönstret.

Med dessa datakällor på plats kan du använda den här formeln för att visa antingen namnet på en användare eller ett team:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Konton som visas i en Galleri-kontroll med Ägarfältet visas.

I den här formeln testar funktionen IsType fältet Ägare mot tabellen Team. Om det är av den tabelltypen används funktionen AsType för att skapa en team-post. Nu kan du komma åt alla fält i tabellen Team inklusive Teamnamn med hjälp av .Field-formatet. Om IsType avgör att Ägare inte är en post i tabellen Team måste det fältet vara en post i tabellen Användare eftersom fältet Ägare är obligatoriskt (kan inte vara tomt).

Om du vill använda fält i en postreferens måste du först använda AsType-funktionen för att skapa den i en särskild tabelltyp. Du kan inte komma åt fält direkt från fältet Ägare eftersom systemet inte vet vilken tabelltyp du vill använda.

AsType-funktionen returnerar ett fel om fältet Ägare inte matchar den tabelltyp som efterfrågas, så du kan förenkla formeln med hjälp av funktionen IfError. Aktivera först den experimentella funktionen Felhantering på formelnivå:

Experimentell omkopplare för att aktivera felhantering på formelnivå.

Ersätt sedan den tidigare formeln med den här:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Filter utifrån en ägare

Grattis – du har avslutat det svåraste med att arbeta med en postreferens. Andra användningsfall är lättare att använda eftersom de inte använder postens fält. Som ett exempel på detta kan du ta filter som du utforskar i det här avsnittet.

Lägg till en kontroll för Kombinationsruta ovanför galleriet och ange följande egenskaper för den nya kontrollen:

  • Items: Users
  • SelectMultiple: false

Lagt till kombinationsruta över galleriet med Items-egenskapen inställd på användare.

Om du vill filtrera galleriet efter en viss användare som väljs från den här kombinationsrutan anger du galleriets Items-egenskap till följande formel:

Filter( Accounts, Owner = ComboBox1.Selected )

Filtrerat galleri baserat på värdet i kombinationsrutan.

Viktigt

Anvisningarna i det här ämnet är korrekta om du följer stegen exakt. Däremot misslyckas alla formler som refererar till en kontroll efter namnet om kontrollen har ett annat namn. Om du tar bort och lägger till en kontroll av samma typ ändras numret i slutet av kontrollens namn. Om du vill visa en formel som visar ett fel bekräftar du att den innehåller rätt namn för alla kontroller.

Du behöver inte använda IsType eller AsType eftersom du jämför postreferenser med andra postreferenser eller till fullständiga poster. Appen känner till tabelltypen ComboBox1.Selected eftersom den härleds från tabellen Användare. Konton som ägaren är ett team för överensstämmer inte med filtervillkoren.

Det kan bli lite snyggare genom att stödja filtrering av antingen en användare eller ett team.

  1. Frigör utrymme nästan högst upp på skärmen genom att ändra storlek på galleriet och att flytta kombinationsrutan, infoga en Radio-kontroll ovanför galleriet och ange sedan egenskaperna för den nya kontrollen:

    • Items: [ "All", "Users", "Teams" ]
    • Layout: Layout.Horizontal
  2. För kontrollen Kombinationsruta ange denna egenskap (om kombinationsrutan försvinner markerar du Users i kontrollen radio):

    • Synlig: Radio1.Selected.Value = "Users"
  3. Kopiera och klistra in kontrollen Kombinationsruta, flytta kopian över originalet och ange sedan de här egenskaperna för kopian:

    • Items: Teams
    • Synlig: Radio1.Selected.Value = "Teams"

    I appen visas endast en kombinationsruta i taget, beroende på radiokontrollens tillstånd. Eftersom de är direkt ovanför varandra verkar de vara samma kontroll som ändringar i innehållet.

  4. Ange slutligen egenskapen Items för Galleri-kontrollen till den här formeln:

    Filter( Accounts,
        Radio1.Selected.Value = "All"
        Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
        Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
    )
    

    Filtrerat galleri som visar alla poster eller en specifik användare eller ett team.

Med de här ändringarna kan du visa alla poster eller filtrera dem utifrån antingen en användare eller ett team:

Animering som visar olika filtrerade resultat baserat på radiostyrning och kombinationsrutor.

Formeln är helt delegerbar. Den del som jämför värden för alternativknappar är en konstant i alla poster och utvärderas innan resten av filtret skickas till Dataverse.

Om du vill filtrera efter typen av ägare kan du använda IsType-funktionen, men det är ännu inte delegerbar.

Filtrera efter ägartyp med IsType.

Uppdatera ägaren med hjälp av Patch

Du kan uppdatera fältet Ägare på samma sätt som med andra sökningar. Så här anger du det för närvarande valda kontotsägare till det första teamet:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Den här metoden skiljer sig inte från en normal sökning, eftersom appen vet vilken typ av First( Teams ). Om du vill att den första användaren ska vara i stället ersätter du den delen med First( Users ). Funktionen Korrigering vet att fältet Ägare kan anges till någon av dessa två tabelltyper.

Så här lägger du till den här funktionen i appen:

  1. I rutan Trädvy väljer du vilken Radio-kontroll och vilka två Kombinationsruta-kontroller ska finnas på samma gång.

  2. Välj på ellipsmenyn Kopiera dessa objekt.

    Kopia av flera kontroller med trädvyn.

  3. Välj på samma meny Klistra in.

    Klistra in flera kontroller med trädvyn.

  4. Flytta de kopierade kontrollerna till höger om galleriet.

    Flyttade kopierade kontroller till höger om galleriet.

  5. Välj den kopierade Radio kontrollen och ändra egenskaper:

    • Items: [ "Users", "Teams" ]
    • Standard: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Ta bort allt val från radiokontrollen.

  6. I kontrollen Radio Användare så att den Kombinationsruta-kontroll som visar användarna visas.

  7. Markera den synliga Kombinationsruta-kontrollen och ange sedan egenskapen DefaultSelectedItems till följande formel:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Standardegenskap inställd för kombinationsrutan Användare.

  8. I kontrollen Radio Teams så att den Kombinationsruta-kontroll som visar team visas.

  9. Markera den Radio-kontroll som du vill ta bort från den nu osynliga Kombinationsruta-kontrollen för användare.

  10. Markera den synliga Kombinationsruta-kontrollen för team och ange sedan egenskapen DefaultSelectedItems till följande formel:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Standardegenskap inställd för kombinationsrutan Teams.

  11. Infoga en Knapp-kontroll, flytta den under Kombinationsruta-kontrollen och ställ in knappens Text-egenskap till "Patch Owner".

  12. Ange egenskapen OnSelect för knappen enligt den här formeln:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Formel inställd på Knapp-kontroll.

De kopierade kontrollerna Radio och Kombinationsruta visar ägaren för det valda kontot i galleriet. Med samma kontroller kan du ange kontots ägare till ett team eller en användare genom att välja knappen:

Animering som visar patch av ägaren med antingen en användare eller ett team.

Visa ägaren med hjälp av ett formulär

Du kan visa fältet Ägare i ett formulär genom att lägga till ett anpassat kort. När du skriver kan du inte ändra värdet i fältet med en Form-kontrollen.

  1. Infoga kontrollen Redigera formulär och ändra sedan storleken och flytta den till det nedre högra hörnet.

  2. På fliken egenskaper nära bildskärmens högra sida, välj listan Datakälla och välj sedan konton.

    Form-kontroll som visar ytterligare fält med tomma värden.

  3. Ange formulärets egenskap Item till Gallery1.Selected.

    Form-kontroll som visar ytterligare fält fyllt i från det valda objektet i galleriet.

  4. På fliken Egenskaper nära bildskärmens högra sida, välj Redigera fält.

  5. I fönstret Fält välj ellipsen och välj sedan Lägg till ett anpassat kort.

    Kommando för att lägga till ett anpassat kort.

    Det nya kortet visas längst ned i Form-kontrollen.

  6. Ändra storlek på kontrollen så att all text visas.

    Inlagt anpassat kort, tomt.

  7. Infoga en Etikett-kontroll på det anpassade kortet och ange sedan etikettens Text-egenskap till formeln som du använde i galleriet:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Anpassat kort som visar fältet Ägare i en Etikett-kontroll.

För varje val i galleriet visas fler fält för kontot, inklusive postens ägare, i formuläret. Om du ändrar ägaren med hjälp av knappen Patch visas även ändringen i Form-kontrollen.

Animering som visar Form-kontrollen som svarar på förändringar i galleriet.

Visa kolumnerna för en kund

I Dataverse, är uppslagskolumnen Kund ett annat polymorfiskt uppslag som liknar Ägare.

Ägare är begränsad till en per tabell, men tabellerna kan innehålla kolumnerna noll, en eller flera uppslagskolumnen Kund. Systemet Kontakter inkluderar Företagsnamn som är en uppslagskolumn Kund.

Kontakttabell som visar kolumnen Företagsnamn som en kunddatatyp som inte krävs.

Du kan lägga till fler uppslagskolumner för kund i en tabell genom att välja datatypen Kund för en ny kolumn.

Kunddatatyp från listan med datatyper när du skapar en kolumn.

Ett uppslagsfält Kund kan hänvisa till en post antingen från tabellen Konton eller tabellen Kontakter. Du använder funktionerna IsType och AsType med dessa tabeller, så det är nu bra att lägga till dem som datakällor (du kan lämna Team och Användare på plats).

Konton, team, användare och kontakter i datafönstret.

Behandlingen av fälten Kund och Ägare påminner ungefär om att du kan kopiera appen (Fil > Spara som och sedan ange ett annat namn) och göra dessa enkla ersättningar:

Plats Ägar-exempel Kund-exempel
Genom Ägare 'Kundens namn'
Genom Användare Konton
Genom Team Kontakter
Egenskapen Items i galleriet Konton Kontakter
Egenskapen Items i formuläret Konton Kontakter
Första argumentet för Patch
i knappens OnSelect-egenskap
Konton Kontakter
Filtrera radions Items-egenskap [ "All", "Users", "Teams" ] [ "All", "Accounts", "Contacts" ]
Korrigera radions Items-egenskap [ "Users", "Teams" ] [ "Accounts", "Contacts" ]
Kombinationsrutans egenskap Visible "Användare" och "Grupper" "Konton" och "Kontakter"

T.ex. bör egenskapen för det nya galleriet innehålla följande Items-egenskap:

Filter( Contacts,
    Radio1.Selected.Value = "All"
    Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
    Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

Kundapp härledd från ägarappen med enkla ändringar tillämpade

Två viktiga skillnader mellan kunden och ägaren kräver att du uppdaterar formlerna i galleriet och i formuläret:

  1. En till många-relationer mellan Konton och Kontakter har prioritet när du refererar till dessa tabelltyper efter namn. Instead of Konton kan du använda [@konton]; i stället för kontakter, använda [@kontakter]. Genom att använda operatorn global disambiguering, ser du till att du hänvisar till tabelltypen i IsType och AsType. Det här problemet förekommer endast i postkontexten för Galleri och form-kontrollen.

  2. Fältet ägare måste ha ett värde, men fälten kund kan vara tomma. Om du vill visa rätt resultat utan ett typnamn testar du för det här ärendet med funktionen IsBlank och visar en tom textsträng i stället.

Båda ändringarna finns i samma formel, som visas på det anpassade kortet i formuläret och i egenskapen Text i galleriets Etikett-kontroll:

If( IsBlank( ThisItem.'Company Name' ), "",
    IsType( ThisItem.'Company Name', Accounts ),
        "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Uppdatera till Text-egenskapen för textningskontroll för undertexter i galleriet.

Med de här ändringarna kan du visa och ändra fältet Företagsnamn i tabellen Kontakter.

Animering som visar hur du väljer en kontakt ändrar de andra kontrollerna och formuläret.

Så här ser uppslagskolumnerna

Uppslagskolumnen Ämne skiljer sig lite från den som du redan har arbetat med i detta ämne. Du börjar med att tillämpa de mönster som det här ämnet beskrivit tidigare och sedan får du lära dig några andra trick.

Du kan börja med tabellen Fax. Den här tabellen innehåller en polymorfisk uppslagskolumn för Ämne som kan hänvisa till Konton, Kontakter och andra tabeller. Du kan ta appen för kunder och ändra den för fax.

Plats Kund-exempel Fax-exempel
Genom 'Kundens namn' Ämne
Egenskapen Items i galleriet Kontakter Fax
Egenskapen Items i formuläret Kontakter Fax
Första argumentet för Patch
i knappens OnSelect-egenskap
Kontakter Fax

Du måste lägga till en datakälla: den här tiden för fax. På fliken Visa väljer du Datakällor:

Datafönster som visar tabeller Konton, Team, Användare, Kontakter och Fax.

En viktig skillnad gäller Ämne att inte begränsas till konton och kontakter. Listan med tabeller kan utökas med anpassade tabeller. De flesta appar kan hantera den här punkten utan att ändra, men du måste uppdatera formeln för etiketten i galleriet och i formuläret:

If( IsBlank( ThisItem.Regarding ), "",
    IsType( ThisItem.Regarding, Accounts ),
        "Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
    IsType( ThisItem.Regarding, Contacts ),
        "Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
    ""
)

Uppdaterad textegenskap för undertextekontroll för Angående sökningar.

När du har gjort ändringarna arbetar du med sökfunktionen Ämne på samma sätt som du gjorde för sökningar av ägare och kund .

Animering som visar hur man väljer ett objekt i galleriet ändrar de andra kontrollerna och formen.

Förstå ämnesrelationer

Ämne skiljer sig från Ägare och Kund eftersom den tidigare involverar en många till en-relation. Genom att definiera en omvänd, en till många-relation kan du skriva First( Accounts ).Faxes.

Backa upp och titta på tabelldefinitionerna. I Dataverse anges tabeller som Fax, Uppgifter, E-postmeddelanden, Anteckningar, Telefonsamtal, Brev och Chattar som aktiviteter. Du kan också skapa egna anpassade aktivitetstabeller. När du visar eller skapar en aktivitetstabell visas inställningarna under Fler inställningar.

Aktivitetstabellinställning när du skapar en tabell.

Andra tabeller kan relateras till en aktivitetstabell om de är aktiverade som en aktivitetsuppgift i tabellens inställningar. Konton, Kontakter och många andra standardtabeller är angivna (återigen under Fler inställningar).

Aktivitetsinställning när du skapar en tabell.

Alla aktivitetstabeller och aktivitetsuppgiftstabeller har en underförstådd relation. Om du ändrar filtret till Alla högst upp på skärmen markerar du tabellen Fax och markerar fliken Relationer, så visas alla tabeller som kan vara mål för ett Ämne-uppslag.

Förhållanden mellan faxtabellen som visar Angående många-till-en-förhållanden.

Om du visar relationer för tabellen Konton visas alla tabeller som kan vara källan till uppslagsfältet Ämne.

Förhållanden i kontotabellen som visar en-till-många-relationer.

Vad betyder det?

  • När du skriver formeln måste du tänka på att listan med aktivitetstabeller inte är fast och att du kan skapa en egen. Formeln måste hantera en aktivitetstabell på ett lämpligt sätt som du inte förväntat dig.
  • Aktivitetsuppgifter och aktiviteter har en till många-relation. Du kan enkelt begära alla fax som relaterar till ett konto.

Så här utforskar du detta i appen:

  1. Lägg till en annan skärm.

    Sätt in en tom skärm.

  2. Infoga en gallerikontroll, ändra storlek på den och flytta den till den vänstra delen av fönstret.

  3. På fliken Egenskaper nära bildskärmens högra sida anger du galleriets Objekt till konton.

    Ställ in objekt till konton i fastighetsfönstret.

  4. Ange ett rubriknamn för galleriets layout till Titel och ange sedan konto namn i fältet Kontonamn.

    Ställ in Layout på Titel för gallerikontroll i egenskapsfönstret.

  5. Lägg till ett andra galleri, ändra storlek på den och flytta den till den högra delen av fönstret.

  6. Ställ in ny galleriets Items-egenskap till Gallery2.Selected.Faxes.

    I det här steget returneras den filtrerade listan över fax för ett givet konto.

    Ställ in Items-egenskapen i galleriet som visar fax.

  7. Ange galleriets layout till Rubrik och underrubrik och ange sedan att rubrik fältet ska visa fält Ämne (vilket kan vara ett gement ämne).

    Ställ in rubriken till ämnesfält.

När du markerar ett objekt i kontolistan visar faxlistan fax för det kontot.

Animering som visar urval i kontogalleriet som driver listan över fax.

Aktivitetstabell

Som du kan se i föregående avsnitt kan du visa alla fax för ett konto. Men du kan också visa alla aktiviteter för ett konto, t.ex. fax, e-postmeddelanden, telefonsamtal och andra interaktioner.

I det senare scenariot använder du tabellen Aktivitet. Du kan visa tabellen genom att aktivera Alla längst upp till höger om du vill ta bort filtret från listan med tabeller.

Lista över tabeller som visar aktivitetstabellen.

Tabellen Aktivitet är speciell. När du lägger till en post i tabellen Fax skapas också en post i tabellen Aktivitet med kolumnerna som är vanliga i alla aktivitetstabeller. Av dessa kolumner är Ämne ett av de mest intressanta.

Du kan visa alla aktiviteter genom att bara ändra en rad i föregående exempel. Ersätt Gallery2.Selected.Faxes med Gallery2.Selected.Activities

Ändring av Items-egenskap för det andra galleriet, byter från fax till aktiviteter.

Poster kommer från tabellen Aktivitet, men du kan ändå använda IsType-funktionen för att identifiera vilken typ av aktivitet de är. Innan du använder IsType med en tabelltyp måste du lägga till datakälla.

Datafönster som visar alla tabeller som krävs för IsType-funktionen.

Med hjälp av den här formeln kan du visa posttyp i en Etikett-kontroll i galleriet:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Ställ in textegenskap till formel för att visa information för fax, telefonsamtal och andra aktiviteter.

Du kan även använda AsType för att komma åt fälten av en viss typ. Den här formeln bestämmer till exempel typen av varje aktivitet och för telefonsamtal visar den telefonnummer och samtalsriktning från tabellen Telefonnummer:

If( IsType( ThisItem, Faxes ), "Fax",
    IsType( ThisItem, 'Phone Calls' ),
       "Phone Call: " &
       AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
       " (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Utökad textegenskap med mer information för ett telefonsamtal.

Därför visar appen en fullständig lista över aktiviteter. Fältet Ämne visas för alla typer av aktiviteter, oavsett om formeln tar emot dem eller inte. För typer av aktiviteter som du känner till kan du visa deras typnamn och ange specifik information för varje aktivitet.

Slutförd skärm som visar information för olika typer av aktiviteter.

Anteckningstabell

Hittills har alla exempel på Ämne baserats på aktiviteter, men tabellen Anteckningar representerar ett annat ärende.

När du skapar en tabell kan du aktivera bifogade filer.

Aktivera bilagor och anteckningar när du skapar en tabell.

Om du markerar kryssrutan för att aktivera bifogade filer skapar du en Angående-relation med tabellen Anteckningar, vilket den här bilden visar i tabellen Konton:

Kontotabell som visar förhållandet till anteckningar genom en en-till-många-relation.

Förutom den här skillnaden använder du uppslaget Ämne på samma sätt som du använder aktiviteter. Tabeller som är aktiverade för bifogade filer har en till många-relation till Anteckningar, som i det här exemplet:

First( Accounts ).Notes

Anteckning

När detta har skrivits är inte uppslaget Ämne tillgänglig i tabellen Anteckningar. Du kan inte läsa eller filtrera baserat på kolumnen Ämne och du kan inte ange kolumnen med hjälp av Korrigering.

Den omvända en till många-relationen Anteckningar är tillgänglig så att du kan filtrera en lista med anteckningar för en post som har aktiverats för bifogade filer. Du kan även använda funktionen Relate för att lägga till en anteckning i en posts tabell för anteckningar, men anteckningen måste skapas först, som i det här exemplet:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Aktivitetsparter

När detta skrivs stöder inte arbetsyteappar aktivitetsparter.

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).