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 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 interne : DiegoS@sleman3