Frappe Framework
Actions et liens
Les actions ajoutent des boutons à la vue d’un DocType ; les liens (Connections) affichent les documents connectés sur le tableau de bord. Cette page explique leur configuration.
À quoi servent les actions et les liens
> [!NOTE] > Fonctionnalité ajoutée dans la version 12.1.
Les actions (Actions) et les liens (Links, aussi appelés Connections) sont deux moyens d’offrir à l’utilisateur final plus d’interactions avec un document. La documentation officielle les illustre par une capture d’écran de la vue d’un document.
Actions
Un DocType peut posséder des DocType Action, chacune créant un bouton dans la vue du DocType. Les actions prises en charge sont :
| Action | Effet |
|---|---|
| Server Action | Déclenche une action serveur autorisée (whitelisted) |
| Route | Redirige vers une route donnée |
Configuration d’une action
L’action se configure dans le DocType. La documentation officielle illustre cet écran par une capture d’écran.
Configuration d’une action dans une app personnalisée
Pour appeler une action depuis votre propre app, vous avez besoin d’une fonction Python décorée avec frappe.whitelist :
import frappe
@frappe.whitelist()
def execute_function(*args,**kwargs):
"""
This function will be executed when the Execute Action Button will be clicked
"""
print('Hello World')
# The data is transmitted via keyword argument
print(kwargs)Ce code doit se trouver dans votre app, typiquement dans un fichier comme apps/my_app/my_app/api.py.
Configurez ensuite le chemin de l’action correspondant dans le DocType.
Connexions (documents liés)
La section Connections du tableau de bord (dashboard) est une aide à la navigation standard de la vue d’un DocType. Elle permet de voir d’un coup d’œil quels types de documents sont connectés à ce DocType et de créer rapidement de nouveaux documents liés.
Ces liens prennent aussi en charge les liens internes (liens vers un DocType présent dans une table enfant).
Configuration des connexions
Les connexions, y compris les liens internes, se configurent dans le DocType. La documentation officielle illustre cette configuration par des captures d’écran.
Via un script
Pour configurer les connexions d’un DocType dans votre app, créez une fonction get_data() dans un fichier <doctype>_dashboard.py. Voici un exemple tiré du fichier sales_invoice_dashboard.py du DocType Sales Invoice d’ERPNext :
from frappe import _
def get_data():
return {
"fieldname": "sales_invoice",
"non_standard_fieldnames": {
"Delivery Note": "against_sales_invoice",
"Journal Entry": "reference_name",
"Payment Entry": "reference_name",
"Payment Request": "reference_name",
"Sales Invoice": "return_against",
"Auto Repeat": "reference_document",
"Purchase Invoice": "inter_company_invoice_reference",
},
"internal_links": {
"Sales Order": ["items", "sales_order"],
"Timesheet": ["timesheets", "time_sheet"],
},
"internal_and_external_links": {
"Delivery Note": ["items", "delivery_note"],
},
"transactions": [
{
"label": _("Payment"),
"items": [
"Payment Entry",
"Payment Request",
"Journal Entry",
"Invoice Discounting",
"Dunning",
],
},
{"label": _("Reference"), "items": ["Timesheet", "Delivery Note", "Sales Order"]},
{"label": _("Returns"), "items": ["Sales Invoice"]},
{"label": _("Subscription"), "items": ["Auto Repeat"]},
{"label": _("Internal Transfers"), "items": ["Purchase Invoice"]},
],
}| Clé | Rôle |
|---|---|
transactions | Définit toutes les connexions et les groupes dans lesquels les ranger |
internal_links | Connexions où le DocType possède des liens internes. Par exemple, Sales Invoice a des liens internes vers Sales Order via sa table enfant Item |
internal_and_external_links | Connexions où le DocType possède à la fois des liens internes et externes. Par exemple, Sales Invoice a des liens internes vers Delivery Note via sa table enfant Item, et Delivery Note a aussi des liens externes vers Sales Invoice via sa propre table enfant Item |
fieldname | Nom de champ par défaut recherché pour trouver les liens externes vers le DocType |
non_standard_fieldnames | Noms de champs, et DocTypes correspondants, à rechercher pour trouver les liens externes vers le DocType |
La documentation officielle montre par une capture d’écran les connexions obtenues avec cette configuration.
Personnalisation des actions et des liens
Les actions et liens d’un DocType sont extensibles via Customize Form.
