Power Platform - Apps - Automate - SharePoint
Power Platform - Apps - Automate - SharePoint
Principales fonctions

icon picker
Fonction Patch

Gonzague Ducos
Un argument de type Record se présente sous la syntaxe suivante :
{
Champ1: Valeur1,
Champ2: Valeur2
}
Dans les arguments de la fonction Patch, NewRecord et BaseRecord désigne cette syntaxe.
Nous avons une liste SharePoint nommée Produit, avec les champs :
ID : automatiquement créé par SP
Title : le SKU du produit
Nom : nom du produit
PU : prix unitaire
DateDisponiblite: une date
Actif : un champ vrai/faux

Ajoute un enregistrement

L’ajout se fait en précisant Defaults(Datasource) comme BaseRecord (2nd argument).
Patch(Datasource, Defaults(Datasource), NewRecord)

Patch(
Produit;
Defaults(Produit);
{
Nom: "Produit1";
Titre: "a100";
DateDisponiblite: Date(2020;12;31);
PU: 100;
Actif: true
}
)
Noter qu’on doit utiliser le nom de la colonne Titre (ou Title si vous créez la liste en anglais), et non son libellé SKU.

Mettre à jour un enregistrement

On doit se positionner sur l’enregistrement à modifier, on utilise donc une fonction pour ce faire, par exemple LookUp :
Patch(Datasource, LookUp(Datasource, Field), NewRecord)

Met à jour le PU du produit dont le titre/SKU est a100 :
Patch(
Produit;
LookUp(Produit;Titre="a100");
{
PU: 100
}
)

Récupérer le résultat de l’ajout

La fonction Patch retourne les enregistrements impactés par la mise à jour. On peut placer ces enregistrements dans une variable, avec la fonction Set.
Set(VariableName, Patch(Datasource, Defaults(Datasource), BaseRecord, ChangeRecord))

Dans cet exemple, on crée une variable recResult et on y place l’enregistrement de la liste SharePoint Produit modifié par la fonction Patch. La variable est créé au moment de son affectation, avec l’instruction Set, puis exécute la fonction Patch qui ajoute les enregistrements.
Set(
recResult;
Patch(
Produit;
Defaults(Produit);
{
Nom: "Produit1";
Titre: "a100";
DateDisponiblite: Date(
2020;
12;
31
);
PU: 100;
Actif: true
}
)
)

Ajouter plusieurs enregistrements

On place les nouveaux enregistrements dans une variable colNouveauProduit. La fonction Table crée une table en mémoire.
ClearCollect(
colListe;
Table(
{
Nom: "Produit1";
Title: "a101";
PU: 50
};
{
Nom: "Produit2";
Title: "a202";
ID: Blank()
}
)
);;
Patch(
Produit;
colListe
)
Comme le montre l’exemple, on peut mette à jour des champs différents (PU dan le premier et ID dans l’autre). Notez que Defaults(Datasource) n’est pas nécessaire.

Modifier plusieurs enregistrements

Patch(Datasource, BaseRecordsTable, UpdateRecordsTable)

ClearCollect(
colMAJProduit,
Table(
Produit@{
ID: 2,
Nom: "Produit3",
PU: "50"
},
Employees@{
ID: 4,
Active: false
},
Employees@{
ID: 5,
HireDate: Date(2022, 08, 01)
}
)
);
Patch(
Produit,
ShowColumns(
colMAJProduit,
"ID"
),
colMAJProduit
);

Source : DiegoS@sleman3
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.