Ändrar eller skapar en eller flera poster i en datakälla, eller sammanfogar poster utanför en datakälla.

Översikt

Använd funktionen Patch för att ändra en eller flera poster i en datakälla. Värdena för specifika egenskaper ändras utan att påverka andra egenskaper.

Använd Patch med funktionen Defaults för att skapa poster. Du kan använda den här metoden för att skapa en enda skärm som både skapar och redigerar poster.

Även om du inte arbetar med en datakälla kan du använda Patch till att sammanfoga två eller flera poster.

Beskrivning

Ändra eller skapa en post i en datakälla

Använd den här funktionen med en datakälla, ange datakällan och sedan en baspost:

  • Om du vill ändra en post måste basposten komma från en datakälla. Basposten har kanske kommit via galleriegenskapen Items, har placerats i en sammanhangsvariabel, eller kommit via någon annan sökväg. Men du bör kunna spåra basposten tillbaka till datakällan. Detta är viktigt eftersom posten innehåller ytterligare information för att kunna hitta posten igen vid ändringar.

  • Skapa en post genom att använda funktionen Defaults för att skapa en baspost med standardvärden.

Ange sedan en eller flera ändringsposter, där var och en innehåller nya egenskapsvärden som åsidosätter egenskapsvärden i basposten. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.

Returvärdet för Patch är den post som du har ändrat eller skapat. Om du har skapat en post kan returvärdet innehålla egenskaper som datakällan genererat automatiskt.

Ett eller flera problem kan uppstå när du uppdaterar en datakälla. Använd funktionen Errors för att identifiera och undersöka problem, enligt beskrivningen i Arbeta med datakällor.

Relaterade funktioner innefattar funktionen Update som du kan använda för att ersätta en hel post, och funktionen Collect som du kan använda för att skapa en post. Du kan använda funktionen UpdateIf till att ändra egenskaper för flera poster baserat på ett villkor.

Ändra eller skapa en uppsättning poster i en datakälla

Patch kan också användas för att skapa eller ändra flera poster med ett enda anrop.

I stället för att överföra en enda baspost kan en tabell med basposter anges i det andra argumentet. Ändringsposter finns även i en tabell, motsvarande ett-till-ett med basposterna. Antalet poster i varje ändringstabell måste vara samma som antalet poster i bastabellen.

När du använder Patch på detta sätt är returvärdet också en tabell där varje post motsvarar ett-till-ett med bas- och ändringsposterna.

Sammanslagning av poster utanför en datakälla

Ange två eller flera poster som du vill sammanfoga. Poster bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.

Patch returnerar den sammanslagna posten och ändrar inte dess argument eller poster i några datakällor.

Syntax

Ändra eller skapa en post i en datakälla

Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])

  • DataSource – Krävs. Datakällan som innehåller den post som du vill ändra, eller som kommer att innehålla den post som du vill skapa.

  • BaseRecord – Krävs. Posten som ska ändras eller skapas. Om posten kom från en datakälla hittas posten och ändras. Om resultatet av Defaults används, skapas en post.

  • ChangeRecord(s) – Krävs. En eller flera poster som innehåller egenskaper som ska ändras i BaseRecord. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.

Ändra eller skapa en uppsättning poster i en datakälla

Patch( DataSource, BaseRecordsTable, ChageRecordTable1, [, ChangeRecordTable2, … ] )

  • DataSource – Krävs. Datakällan som innehåller de poster som du vill ändra, eller som kommer att innehålla de poster som du vill skapa.

  • BaseRecordTable – Krävs. En tabell med poster som ska ändras eller skapas. Om posten kom från en datakälla hittas posten och ändras. Om resultatet av Defaults används, skapas en post.

  • ChangeRecordTable(s) – Krävs. En eller flera tabeller med poster som innehåller egenskaper som ska ändras för varje post i BaseRecordTable. Ändringsposter bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.

Sammanslagning av poster

Patch( Record1, Record2 [, …] )

  • Record(s) – Krävs. Minst två poster som du vill sammanfoga. Poster bearbetas i ordning från argumentlistans början till slutet, där senare egenskapsvärden åsidosätter tidigare värden.

Exempel

Ändra eller skapa en post (i en datakälla)

I det här exemplet ändrar eller skapar du en post i en datakälla med namnet IceCream, som innehåller data i den här tabellen och som automatiskt genererar värdena i ID-kolumnen:

Formel Beskrivning Resultat
Patch( IceCream,
First( Filter( IceCream, Flavor = "Chocolate" ) ), { Quantity: 400 } )
Ändrar en post i datakällan IceCream:
  • ID-kolumnen i posten som ska ändras innehåller värdet 1. (Posten Chocolate har detta ID.)
  • Värdet i kolumnen Quantity ändras till 400.
{ ID: 1, Flavor: "Chocolate", Quantity: 400 }

Posten Chocolate i datakällan IceCream har ändrats.
Patch( IceCream, Defaults( IceCream ), { Flavor: “Strawberry” } ) Skapar en post i datakällan IceCream:
  • ID-kolumnen innehåller värdet 3, vilket datakällan genererar automatiskt.
  • Kolumnen Quantity innehåller 0, vilket är standardvärdet för kolumnen i datakällan IceCream som funktionen Defaults anger.
  • Kolumnen Flavor innehåller värdet Strawberry.
{ ID: 3, Flavor: “Strawberry”, Quantity: 0 }

Posten Strawberry i datakällan IceCream har skapats.

När tidigare formler har utvärderats avslutas datakällan med följande värden:

Sammanslagning av poster (utanför en datakälla)

Formel Beskrivning Resultat
Patch( { Name: "James", Score: 90 }, { Name: "Jim", Passed: true } ) Sammanfogar två poster utanför en datakälla:
  • Värdena i kolumnen Name för varje post matchar inte. Resultatet innehåller värdet (Jim) i posten vilket är närmare slutet av argumentlistan, i stället för värdet (James) i posten som är närmare början.
  • Den första posten innehåller en kolumn (Score) som inte finns i den andra posten. Resultatet innehåller kolumnen med värdet (90).
  • Den andra posten innehåller en kolumn (Passed) som inte finns i den första posten. Resultatet innehåller kolumnen med värdet (true).
{ Name: "Jim", Score: 90, Passed: true }