Documentation Frappe Framework

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.

3 min de lectureMis à jour le Source : docs.frappe.io

À 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 :

ActionEffet
Server ActionDéclenche une action serveur autorisée (whitelisted)
RouteRedirige 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 :

python
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 :

python
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
transactionsDéfinit toutes les connexions et les groupes dans lesquels les ranger
internal_linksConnexions 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_linksConnexions 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
fieldnameNom de champ par défaut recherché pour trouver les liens externes vers le DocType
non_standard_fieldnamesNoms 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.

Pages liées