Développement de modèle de processus métiers (FAQ)
De Wiki1000
(Différences entre les versions)
(Page créée avec « ===Comment ajouter un modèle de processus métiers=== Un modèle de processus métier est une structure json enregistrée dans la class AutomationManager. La solution p... ») |
|||
(Une révision intermédiaire par un utilisateur est masquée) | |||
Ligne 1 : | Ligne 1 : | ||
+ | __TOC__ | ||
===Comment ajouter un modèle de processus métiers=== | ===Comment ajouter un modèle de processus métiers=== | ||
Ligne 28 : | Ligne 29 : | ||
</source> | </source> | ||
+ | ===Comment ajouter un modèle de mail=== | ||
+ | |||
+ | Les modèles de mail sont liés à une classe métier | ||
+ | |||
+ | Pour ajouter un modèle de mail : | ||
+ | |||
+ | * En tant qu'administrateur, dans le menu Administration | ||
+ | : Menu Personnalisation / Gestion des modèles de mail | ||
+ | |||
+ | ===Comment définir les attributs signifiants d'une classe=== | ||
+ | |||
+ | Les attributs signifiants d'une classe, quand ils sont définis, permettent : | ||
+ | |||
+ | :de définir les attributs contenant les adresses mail des destinataires | ||
+ | :d'alimenter les champs paramètres proposés dans l'éditeur de mail. | ||
+ | |||
+ | Pour définir ces attributs il faut ajouter une méthode de classe GetMailProperties qui retourne une structure json. | ||
+ | |||
+ | Cette méthode peut être ajouter dans une extension de la classe. | ||
+ | |||
+ | Exemple : Voir TRelance | ||
+ | |||
+ | <source lang="delphi"> | ||
+ | //class function GetMailProperties:TJson; | ||
+ | begin | ||
+ | Result := TJson.Create('{emails:[],props:[],templates:[]}'); | ||
+ | // | ||
+ | Result.emails.AddStruct('{title:"Adresse du tiers facturé", name:"emailTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.email"}'); | ||
+ | Result.emails.AddStruct('{title:"Adresse du tiers payeurs", name:"emailTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.email"}'); | ||
+ | // | ||
+ | Result.props.AddStruct('{title:"Raison sociale du tiers facturé", name:"raisonSocialeTiersFacture", value:"roleTiers.tiers.raisonSociale"}'); | ||
+ | Result.props.AddStruct('{title:"Interlocuteur du tiers facturé", name:"interlocuteurTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); | ||
+ | Result.props.AddStruct('{title:"Adresse principale du tiers facturé", name:"adresseTiersFacture", value:"roleTiers.sitePrivilegie.Adresse.adresseNormalisee"}'); | ||
+ | |||
+ | Result.props.AddStruct('{title:"Raison sociale du tiers payeur", name:"raisonSocialeTiersPayeur", value:"roleTiers.roleTiersPayeur.tiers.raisonSociale"}'); | ||
+ | Result.props.AddStruct('{title:"Interlocuteur du tiers payeur", name:"interlocuteurTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); | ||
+ | Result.props.AddStruct('{title:"Adresse principale du tiers payeur", name:"adresseTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.Adresse.adresseNormalisee"}'); | ||
+ | |||
+ | Result.props.AddStruct('{title:"Date de relance", name:"date", value:"dateRelance"}'); | ||
+ | Result.props.AddStruct('{title:"Solde de relance", name:"solde", value:"solde"}'); | ||
+ | Result.props.AddStruct('{title:"Devise de relance", name:"devise", value:"devise.codeISO"}'); | ||
+ | Result.props.AddStruct('{title:"Numéro d''édition", name:"numeroEdition", value:"numeroEdition"}'); | ||
+ | Result.props.AddStruct('{title:"Numéro de relance", name:"numeroRelance", value:"numeroRelance"}'); | ||
+ | Result.props.AddStruct('{title:"Liste des échéances", name:"echeanceList", value:"detailEcheances"}'); | ||
+ | end; | ||
+ | </source> | ||
+ | |||
+ | ===Comment définir un processus métiers=== | ||
+ | |||
+ | Voici les exemples à utiliser : | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !Besoin | ||
+ | !Exemple | ||
+ | !Classe | ||
+ | |- | ||
+ | |Exécution d'un traitement planifié | ||
+ | |[[Génération des commande_d'achat (bp template)|Génération des commandes d'achat]] | ||
+ | | | ||
+ | |- | ||
+ | |Notification lorsque un objet à changé | ||
+ | |[[Alerte sur dépassement de seuil de commande d'achat (bp)|Alerte sur dépassement de seuil de commande d'achat]] | ||
+ | | | ||
+ | |- | ||
+ | |Notification lorsque un objet à changé | ||
+ | |[[Alerte sur modification d'un compte société (bp)|Alerte sur modification d'un compte bancaire société]] | ||
+ | |TCompteBancaire | ||
+ | |- | ||
+ | |Notification lorsque un objet à été créé et si une condition | ||
+ | |[[Alerte sur solde compte bancaire débiteur (bp)|Alerte sur solde compte bancaire débiteur]] | ||
+ | |TSolde | ||
+ | |- | ||
+ | |Notification à partir des résultats d'une vue | ||
+ | |[[Notification de commande d'achat à valider (bp)|Notification de pièce d'achat à valider]] | ||
+ | |TaskPieceTaxableValidatorNotifications | ||
+ | |- | ||
+ | |Notification à partir des résultats d'une vue | ||
+ | |[[Contrôle des soldes de comptes généraux (bp)|Contrôle des soldes de comptes généraux]] | ||
+ | |TaskAccountBalanceAtDate | ||
+ | |- | ||
+ | |Notification à partir des résultats d'une vue | ||
+ | |[[Contrôle des postes budgétaires (bp)|Contrôle des postes budgétaires]] | ||
+ | | | ||
+ | |- | ||
+ | |Envoi d'un mail client | ||
+ | |[[Envoi de relance client (bp)|Envoi de relance client]] | ||
+ | |TRelance | ||
+ | |- | ||
+ | |Exécution lorsqu'une condition se réalise (par planification) | ||
+ | |[[Alerte sur échéance échue (bp)|Alerte sur échéance échue]] | ||
+ | |TEcheance | ||
+ | |} | ||
[[Category:Modèle de processus]] | [[Category:Modèle de processus]] | ||
[[Category:Version11]] | [[Category:Version11]] |
Version actuelle en date du 13 juillet 2023 à 14:43
Sommaire |
Comment ajouter un modèle de processus métiers
Un modèle de processus métier est une structure json enregistrée dans la class AutomationManager.
La solution préconisée pour ajouter un modèle de processus est d'utiliser la méthode Initialize de la classe TRegisterXXX d'un paquet métier.
- Créez un paquet métier
- Ajoutez une classe TRegister<Nom du paquet métier>
- Ajoutez une méthode Initialize
- Dans la méthode Initialize enregistrez le modèle de processus
- Pour la définition du modèle s'inspirez d'un modèle existant.
//procedure TRegisterMyPackage; procedure _RegisterTemplateGenerationMyProcess; begin AutomationManager.RegisterTemplate(RegClass.Domain, '{' structure json définissant le processus '}' ); end; begin _RegisterTemplateMyProcess; end;
Comment ajouter un modèle de mail
Les modèles de mail sont liés à une classe métier
Pour ajouter un modèle de mail :
- En tant qu'administrateur, dans le menu Administration
- Menu Personnalisation / Gestion des modèles de mail
Comment définir les attributs signifiants d'une classe
Les attributs signifiants d'une classe, quand ils sont définis, permettent :
- de définir les attributs contenant les adresses mail des destinataires
- d'alimenter les champs paramètres proposés dans l'éditeur de mail.
Pour définir ces attributs il faut ajouter une méthode de classe GetMailProperties qui retourne une structure json.
Cette méthode peut être ajouter dans une extension de la classe.
Exemple : Voir TRelance
//class function GetMailProperties:TJson; begin Result := TJson.Create('{emails:[],props:[],templates:[]}'); // Result.emails.AddStruct('{title:"Adresse du tiers facturé", name:"emailTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.email"}'); Result.emails.AddStruct('{title:"Adresse du tiers payeurs", name:"emailTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.email"}'); // Result.props.AddStruct('{title:"Raison sociale du tiers facturé", name:"raisonSocialeTiersFacture", value:"roleTiers.tiers.raisonSociale"}'); Result.props.AddStruct('{title:"Interlocuteur du tiers facturé", name:"interlocuteurTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); Result.props.AddStruct('{title:"Adresse principale du tiers facturé", name:"adresseTiersFacture", value:"roleTiers.sitePrivilegie.Adresse.adresseNormalisee"}'); Result.props.AddStruct('{title:"Raison sociale du tiers payeur", name:"raisonSocialeTiersPayeur", value:"roleTiers.roleTiersPayeur.tiers.raisonSociale"}'); Result.props.AddStruct('{title:"Interlocuteur du tiers payeur", name:"interlocuteurTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); Result.props.AddStruct('{title:"Adresse principale du tiers payeur", name:"adresseTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.Adresse.adresseNormalisee"}'); Result.props.AddStruct('{title:"Date de relance", name:"date", value:"dateRelance"}'); Result.props.AddStruct('{title:"Solde de relance", name:"solde", value:"solde"}'); Result.props.AddStruct('{title:"Devise de relance", name:"devise", value:"devise.codeISO"}'); Result.props.AddStruct('{title:"Numéro d''édition", name:"numeroEdition", value:"numeroEdition"}'); Result.props.AddStruct('{title:"Numéro de relance", name:"numeroRelance", value:"numeroRelance"}'); Result.props.AddStruct('{title:"Liste des échéances", name:"echeanceList", value:"detailEcheances"}'); end;
Comment définir un processus métiers
Voici les exemples à utiliser :
Besoin | Exemple | Classe |
---|---|---|
Exécution d'un traitement planifié | Génération des commandes d'achat | |
Notification lorsque un objet à changé | Alerte sur dépassement de seuil de commande d'achat | |
Notification lorsque un objet à changé | Alerte sur modification d'un compte bancaire société | TCompteBancaire |
Notification lorsque un objet à été créé et si une condition | Alerte sur solde compte bancaire débiteur | TSolde |
Notification à partir des résultats d'une vue | Notification de pièce d'achat à valider | TaskPieceTaxableValidatorNotifications |
Notification à partir des résultats d'une vue | Contrôle des soldes de comptes généraux | TaskAccountBalanceAtDate |
Notification à partir des résultats d'une vue | Contrôle des postes budgétaires | |
Envoi d'un mail client | Envoi de relance client | TRelance |
Exécution lorsqu'une condition se réalise (par planification) | Alerte sur échéance échue | TEcheance |