Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Honako hauei aplikatzen zaie: Mihise-aplikazioak
Copilot Studio
Mahaigaineko fluxuak
Ereduetan oinarritutako aplikazioak
Power Platform CLI
Dataverse funtzioak
Erregistro bat edo gehiago aldatzen edo sortzen du datu-iturburu batean edo erregistroak konbinatzen ditu datu-iturburu batetik kanpo.
Erabili funtzioa Patch egoera konplexuetan erregistroak aldatzeko, adibidez, erabiltzailearen interakziorik behar ez duten eguneratzeak egiten dituzunean edo pantaila anitz dituzten inprimakiak erabiltzen dituzunean.
Datu-iturburu baten erregistroak eguneratzeko aldaketa errazak eguneratzeko, erabili Edit form kontrola ordez. Gehitzen duzunean Edit form kontrola, erabiltzaileei bete beharreko inprimakia eskaintzen diezu eta ondoren datu-iturburu batean gordetako aldaketak gordetzen dituzu. Informazio gehiago lortzeko, ikus Ezagutu datu-inprimakiak.
Ikusi bideo hau funtzioa nola Patch erabili jakiteko:
Informazio orokorra
Erabili funtzioa Patch datu-iturburu bateko erregistro bat edo gehiago aldatzeko. Berariazko balioak eremuak aldatzen dira beste propietateei eragin gabe. Adibidez, formula honek Contoso izeneko bezeroarentzako telefono zenbakia aldatzen du:
Patch( Customers, LookUp( Customers, Name = "Contoso" ), { Phone: "1-212-555-1234" } )
Erabili PatchLehenetsiak funtzioarekin erregistroak sortzeko. Erabili portaera hau pantaila bakarra bat sortzeko erregistroak sortu eta editatzeko. Adibidez, formula honek Contoso izeneko bezeroarentzako erregistro bat sortzen du:
Patch( Customers, Defaults( Customers ), { Name: "Contoso" } )
Oharra
Bilduma bati adabakiak jartzen dizkiozunean, balio lehenetsiak dituen datu-iturburu bateko erregistro bat erabiliz, adabaki-eragiketak bilduma eguneratzen du zehaztutako adabaki-balioekin eta datu-iturburuko balio lehenetsiekin. Adabaki-instrukzioaren DataSource eta Defaults funtzioaren DataSource bat etorri behar dute erregistro berri bat sortzeko.
Datu-iturri batekin lan egiten ez baduzu ere, bi erregistro edo gehiago bateratzeko erabil Patch dezakezu. Adibidez, formula honek bi erregistro batzen ditu bai telefono zenbakia eta bai Contoso-ren kokapena identifikatzen dituen batean:
Patch( { Name: "Contoso", Phone: "1-212-555-1234" }, { Name: "Contoso", Location: "Midtown" } )
Deskribapenak
Aldatu edo sortu erregistro bat datu-iturburu batean
Funtzio hau datu-iturburuarekin erabiltzeko, zehaztu datu-iturburua eta, ondoren, zehaztu oinarri erregistroa:
- Erregistro bat aldatzeko, oinarrizko erregistroa datu-iturburu batetik etorri behar zen. Oinarrizko erregistroa galeria baten Items propietatearen bidez etorri daiteke, testuinguru-aldagai batean kokatu da edo beste bide batetik etorri daiteke. Hala ere, oinarrizko erregistroa datu-iturburura itzuli dezakezu. Hau garrantzitsua da, erregistroak informazio gehigarria baitu erregistroa berriro aurkitzen laguntzeko.
- Erregistro bat sortzeko, erabili Defaults funtzioa oinarri-erregistroa sortzeko balio lehenetsiekin.
Ondoren, zehaztu aldaketa erregistro bat edo gehiago, eta bakoitzak erregistroan propietateen balioa baliogabetzen duten propietate-balio berriak ditu. Aldaketa-erregistroak argumentu-zerrendaren hasieratik amaierara prozesatzen dira, geroago propietate-balioak lehenagokoak dira.
Itzulitako Patch balioa aldatu edo sortu duzun erregistroa da. Erregistro bat sortu baduzu, itzulitako balioak datu-iturburuak automatikoki sortutako propietateak izan ditzake. Hala ere, itzultzeko balioak ez du erlazionatutako taulako eremuen balioa ematen.
Adibidez, Set(MyAccount, Patch(Accounts, First(Account), 'Account Name': "Example name")); erabiltzen duzu eta gero MyAccount.'Primary Contact'.'Full Name'. Ezin duzu izen osoa eman kasu honetan. Horren ordez, erlazionatutako taulako eremuetara sartzeko, erabili bilaketa bereizi bat, hala nola:
LookUp(Accounts, Account = MyAccount.Account).'Primary Contact'.'Full Name'
Datu-iturri bat eguneratzen duzunean, arazo bat edo gehiago sor daitezke. Erabili IfError eta IsError itzulitako balioarekin, erroreak Patch detektatzeko eta horiei erantzuteko, Erroreen kudeaketak deskribatzen duen bezala. Halaber, Errors funtzioa erabil dezakezu, gaiak identifikatu eta aztertzeko Datu-iturburuekin lan egitea deskribatzen du.
Lotutako funtzioak, Update funtzioa dute erregistro osoa ordezkatzeko funtzioa eta Collect funtzioa erregistro bat sortzeko. Erabili UpdateIf funtzioa baldintza batean oinarritutako erregistro anitzen propietate espezifikoak aldatzeko.
Aldatu edo sortu erregistro multzo bat datu-iturburu batean
Patch Dei bakar batekin hainbat erregistro sortzeko edo aldatzeko ere erabil daiteke.
Oinarri erregistro bakarra pasatu beharrean, oinarrizko erregistroen taula eman daiteke bigarren argumentuan. Aldaketen erregistroak taulan ematen dira, banan-banan dagozkienak. Aldaketa-taula bakoitzeko erregistroen kopurua oinarrizko taulan egindako erregistroen berdina izan behar da.
Modu honetan erabiltzean Patch , itzulitako balioa taula bat da, erregistro bakoitza oinarrizko eta aldaketa erregistroekin banan-banan dagoena.
Konbinatu erregistroak datu-iturburutik kanpo
Zehaztu bateratu nahi dituzun bi erregistro edo gehiago. Erregistroak argumentu-zerrendaren hasieratik amaierara prozesatzen dira, geroago propietate-balioak lehenagokoak dira.
Patch Bateratutako erregistroa itzultzen du, eta ez ditu bere argumentuak edo erregistroak aldatzen datu-iturburuetan.
Sintaxia
Aldatu edo sortu erregistro bat datu-iturburu batean
Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, ... ])
- DataSource – Beharrezkoa. Aldatu nahi duzun erregistroa edo sortu nahi duzun erregistroa edukiko duen datu-iturburu dauka.
- BaseRecord – Beharrezkoa. Aldatu edo sortuko den erregistroa. Erregistroa datu-iturburu batetik badator, erregistroa aurkitu eta aldatu egiten da. Defaults funtzioaren emaitza erabiltzen bada, erregistro bat sortzen da. Adabaki-instrukzioaren DataSource eta Defaults funtzioaren DataSource bat etorri behar dute erregistro berri bat sortzeko.
- ChangeRecords – Beharrezkoa. Aldatu beharreko propietateak dituzten erregistro bat edo gehiago BaseRecord. Aldaketa-erregistroak argumentu-zerrendaren hasieratik amaierara prozesatzen dira, geroago propietate-balioak lehenagokoak dira.
Aldatu edo sortu erregistro multzo bat datu-iturburu batean
Patch( DataSource, BaseRecordsTable, ChangeRecordTable1 [, ChangeRecordTable2, ... ] )
- DataSource – Beharrezkoa. Aldatu nahi dituzun erregistroak edo sortu nahi duzun erregistroak edukiko dituen datu-iturburu dauka.
- BaseRecordTable – Beharrezkoa. Aldatu edo sortzeko erregistro taula. Erregistroa datu-iturburu batetik badator, erregistroa aurkitu eta aldatu egiten da. Defaults funtzioaren emaitza erabiltzen bada, erregistro bat sortzen da. Adabaki-instrukzioaren DataSource eta Defaults funtzioaren DataSource bat etorri behar dute erregistro berri bat sortzeko.
- ChangeRecordTables – Beharrezkoa. Erregistro bakoitzeko aldatzeko propietateak dituzten erregistro taula bat edo gehiago BaseRecordTable. Aldaketa-erregistroak argumentu-zerrendaren hasieratik amaierara prozesatzen dira, geroago propietate-balioak lehenagokoak dira.
Erregistroak konbinatu
Patch( Record1, Record2 [, ...] )
- Erregistroak - Beharrezkoa. Gutxienez, bi erregistro konbinatzeko. Erregistroak argumentu-zerrendaren hasieratik amaierara prozesatzen dira, geroago propietate-balioak lehenagokoak dira.
Adibideak
Aldatu edo sortu erregistro bat (datu-iturburu batean)
Adibide hauetan, erregistro bat aldatu edo sortuko duzu datu-iturburu batean, izena duena IceCream, honek dituen datuak biltzen ditu taula eta automatikoki sortzen ditu balioak IDazutabea:
| Formula | Deskribapenak | Result |
|---|---|---|
|
Patch( Izozkia, LookUp( Izozkia, Zaporea = "Txokolatea" ), { Kantitatea: 400 } ) |
Erregistro bat aldatzen du IceCream datu-iturburuan:
|
{ ID: 1, Zaporea: "Txokolatea", Kantitatea: 400 } Txokolatea sarrera - IceCream datu-iturburua aldatu da. |
| Patch( IceCream, Defaults ( IceCream ), { Flavor: "Strawberry" } ) | Erregistro bat sortzen du IceCream datu-iturburuan:
|
{ ID: 3, Flavor: "Marrubia", Quantity: 0 } Marrubia sarrera IceCream datu-iturburuan sortu da. |
Aurreko formulak ebaluatu ondoren, datu-iturburu balio hauekin amaitzen da:
Konbinatu erregistroak (datu-iturburutik kanpo)
| Formula | Deskribapenak | Result |
|---|---|---|
| Patch( { Izena: "James", Puntuazioa: 90 }, { Izena: "Jim", Gainditua: egia } ) | Bi erregistro konbinatzen ditu datu-iturburutik kanpo:
|
{ Name: "Jim", Score: 90, Passed: true } |
Erabilera Gisa edo Grabaketa hau
Erabiliz Gisa edo Grabaketa hau formulako gako-hitzak ebaluazio testuinguru anbiguoa ekiditen du.
Beheko adibidean, kontuan hartu lehen bilaketa If adierazpena.
(OrderID = A[@OrderID]) espero da OrderId bilaketa-esparruko OrderId bilduma AForAll esparrukoarekin alderatzea. Kasu honetan, ziurrenik nahi duzu A[@OrderId] parametro lokal gisa ebazteko. Baina anbiguoa da.
Power Apps gaur egun ezkerreko biak interpretatzen ditu OrderId eta eskuinaldea A[@OrderId] bilaketa eremuko eremu gisa. Hori dela eta, bilaketak lehenengo lerroan beti aurkituko du [dbo].[Orders1] baldintza beti egia delako (hau da, edozein ilara OrderId berdina da.)
ClearCollect(
A,
Filter(
'[dbo].[Orders1]',
OrderId = 8888888
)
);
ForAll(
A,
If(
LookUp(
'[dbo].[Orders1]',
OrderId = A[@OrderId],
"OK"
) = "OK",
Patch(
'[dbo].[Orders1]',
LookUp(
'[dbo].[Orders1]',
OrderId = A[@OrderId]
),
{
OrderName: "val1"
}
),
Patch(
'[dbo].[Orders1]',
Defaults('[dbo].[Orders1]'),
{
OrderName: "val2"
}
)
)
)
Erabilera Gisa edo Grabaketa hau
Ahal den guztietan erabili Gisa operadorea edo Grabaketa hau ezkerreko aldea desanbiguatzeko. As Gomendagarria da goiko eszenatokirako.
Zure formulak hainbat esparrurekin erabiltzen duenean ForAll, Filter, eta Lookup datu-iturburu edo taula berean, baliteke esparruaren parametroek beste leku batzuetan eremu berarekin talka egitea. Hori dela eta, gomendagarria da Gisa operadorea edo Grabaketa hau eremuaren izena konpontzeko eta anbiguotasuna ekiditeko.
Adibidez, Gisa operadorea beheko adibidean desanbiguatzeko.
ClearCollect(
A,
Filter(
'[dbo].[Orders1]',
OrderId = 8888888
)
);
ForAll(
A,
If(
LookUp(
'[dbo].[Orders1]' As B,
B.OrderId = A[@OrderId],
"OK"
) = "OK",
Patch(
'[dbo].[Orders1]',
LookUp(
'[dbo].[Orders1]' As C,
C.OrderId = A[@OrderId]
),
{
OrderName: "val1"
}
),
Patch(
'[dbo].[Orders1]',
Defaults('[dbo].[Orders1]'),
{
OrderName: "val2"
}
)
)
)
Bestela, erabil dezakezu Grabaketa hau helburu berarekin.
ClearCollect(
A,
Filter(
'[dbo].[Orders1]',
OrderId = 8888888
)
);
ForAll(
A,
If(
LookUp(
'[dbo].[Orders1]',
ThisRecord.OrderId = A[@OrderId],
"OK"
) = "OK",
Patch(
'[dbo].[Orders1]',
LookUp(
'[dbo].[Orders1]',
ThisRecord.OrderId = A[@OrderId]
),
{
OrderName: "val1"
}
),
Patch(
'[dbo].[Orders1]',
Defaults('[dbo].[Orders1]'),
{
OrderName: "val2"
}
)
)
)
Erabilera buruz gehiago jakiteko Gisa operadorea eta Grabaketa hau ikusi Operadoreak Artikulu.