Mise en production

Après de nombreuses années de workflow, mon premier workflow sur le CRM a été mis en production lundi dernier.

Ma principale fierté, il a été mis en production sans aucune intervention de ma part ou de celle de mes collègues.

Avec nos instructions, suivi par le client, la mise en production il y a une semaine n’a pas posé de problème.

Le workflow porte sur le premier rendez vous avec un prospect pour valider le « compte rendu ».

Le flux est dans le CRM traité de façon non standard, le workflow n’est donc pas standard non plus.

Ce workflow est déclenché par des événements sur les statuts, il comporte un workflow local et du BRF+ pour la gestion des règles clients.

Deux BOR auront été étendus :

  •  BUS1006005  représentant le Business Partner et dans notre cas plus particulièrement l’utilisateur responsable
  • BUS2000126 représentant le contact.

 

Ce workflow va permettre une plus grande fluidité et un meilleur contrôle des données.

Si cela vous donne des idées de workflow contactez moi !

 

 

 

Les Agents Potentiels

Possible_agents

Les agents potentiels sont définis au niveau de la tâche de dialogue.

Une tâche de dialogue ne fonctionnera pas si cela n’a pas été réalisé.

tache_dialogue

Si le feu est vert devant Affectation d’agents, cela signifie que le paramétrage a été effectué.

Sinon vous pouvez cliquer sur le numéro de la tâche ou bien aller dans la transaction PFTC pour effectuer le paramétrage.

tache_assignment

Vous avez alors un choix important à faire

  • Définir la tâche comme générale
  • Définir des agents potentiels

Tâche Générale

general_task

Une tâche générale indique que tous les agents peuvent potentiellement être des acteurs pour cette tâche.

S’il n’y a pas d’agent responsable tous les utilisateurs du système recevront un work item dans leurs inbox, c’est donc un danger car le premier qui agira même si il n’a pas la responsabilité de valider pourra le faire.

Il existe deux façons d’empêcher cela :

  • Utiliser une règle par défaut sur la tâche
  • Interrompre la règle de détermination si elle ne retourne pas d’agent

Ces deux méthodes seront mentionnées plus tard dans un autre article.

Définir des agents potentiels

Agent_potential

Les agents potentiels aident à définir plus finement les personnes qui peuvent agir sur la tâche.

Personnellement j’évite les utilisateurs car quand une personne quitte l’entreprise ou change de poste alors il faudrait mettre à jour l’assignation des agents.

Le reste est acceptable, tâche, Poste, Fonction, poste de travail sont tous dans la structure organisationnelle (PPOM) personnellement si je dois utiliser un objet organisationnel je prends l’unité structurelle. Par exemple, pour définir l’équipe de support pour les Idocs ou pour le workflow.

Mais mon choix préféré, c’est l’utilisation des rôles, une activité de workflow correspond à un métier et un métier à souvent un rôle commun.

La maintenance est donc effectuée automatiquement par l’attribution des droits aux utilisateurs.

 


Vous aimez ce blog ? Aidez-le  paypal-app-logo


 

Les agents responsables

Les agents responsables sont déterminés au niveau de l’étape ou par une règle par défaut au niveau de la tâche.

Les choix possibles sont au niveau de l’étape sont

Agents_responsable

Utilisateur

Choisir un utilisateur est évidement uniquement valide pour des tests.

Il ne faut pas utiliser cette option autrement car si un utlisateur change de poste alors il faut changer l’étape du workflow ce qui ne pas être facile … la maitenance va très rapidement poser problème.

Les pièges

Prendre une variable comme %I l’initiateur du workflow ou %V le supérieur hiérarchique de l’initiateur workflow, semble à priori être une bonne idée. Ce sont des méthodes qui vont permettre un calcul dynamique. Donc bien mieux que de prendre un utilisateur.

Cette méthode fonctionnera dans pratiquement tous les cas, sauf, quand le workflow devra pour des raisons de maintenance ou d’erreur être relancé par l’administrateur workflow.

Car à ce moment, c’est lui qui devient l’initiateur du workflow, et par conséquent si l’on prend le responsable hiérarchique par rapport à cette variable cela ne fonctionnera pas non plus.

Je préfère dans ce cas prendre le créateur de l’objet (BOR ou CLASS) et faire un calcul dynamique en utilisant une expression, et ensuite de calculer le manager avec une règle par rapport à cet utilisateur.

Les rôles

agent_AG

On peut également prendre un rôle utilisateur (PFCG) pour déterminer qui va être responsable. Je suis pour prendre un rôle pour définir les agents potentiels alors que pour les agents responsables c’est plus difficile, dès qu’il va falloir prendre une personne en particulier par rapport à un élément de l’objet workflow (par exemple la société, la division…) un (et un seul) rôle sera peu adapté, l’utilisation des règles sera plus approprié.

Objet Organisationnel

Que ce soit un poste de travail (A), une fonction(C) , une unité organisationnelle (O) ou un poste (S) il s’agit d’un objet organisationnel. La structure doit donc être maintenue [PPOM].

Comme pour les rôles, je trouve cela peu adapté dès que l’on doit déterminé les agents responsable par rapport à une variable, la encore je préfère l’utilisation de règle.

Les expressions

agent_expression

Les expressions utilisent des containers (variable) du workflow, elles doivent être compatibles, c’est à dire du type SWHACTOR (ou compatible) et peuvent être multi-ligne.

Cela peut être pratique, surtout si l’on se sert d’attribut de l’objet du workflow (BOR/Class), mais un calcul des agents préalable à l’étape de dialogue que l’on stocke dans un container et utilise plus tard, peu poser des soucis à la maintenance si faut relancer un calcul des agents car les données n’avaient pas été maintenues.

Exemple, un centre de couts contient un champs qui définit l’utilisateur qui est responsable, si ce champ n’a pas été maintenu et que le workflow stocke le responsable dans un container du workflow, la donnée devient alors statique. Alors que si ce responsable était determiné par une règle au niveau de la tâche de dialogue alors il suffirait de relancer le calcul des agents (par exemple avec SWI1_RULE) .

Les règles

Comme annoncé, il s’agit de ma méthode préférée….

Je ne vais pas rentrer dans un trop grand détail ici et j’espère faire un autre article plus tard.

Il existe plusieurs type de règle

rule_typefr

Pour être honnête uniquement 5 types sont vraiment utilisées

Le type A – Modèle d’organisation

Ce type permet de prendre tout objet qui a un infotype B22 appartient à..

Je ne l’utilise pratiquement jamais.

Le type F – Fonction à exécuter et  type G – Fonction à exécuter asynchrone

C’est un type très utilisé, il permet avec de trouver avec une interface standard et du code ABAP les agents que nous cherchons

L’interface dont je parle est très simple

* »———————————————————————-

* »* »Local Interface:

* »  TABLES

* »      ACTOR_TAB STRUCTURE  SWHACTOR

* »      AC_CONTAINER STRUCTURE  SWCONT

* »  EXCEPTIONS

* »      NOBODY_FOUND

* »———————————————————————

Avec le BRF+ et ses tables de décision les fonctions deviennent très puissantes.

Le type O – Données d’organisation

Avec ce type de donnée, dans la transaction PFOM un objet organisationnel est lié à un objet organisationnel (PPOM)

 Ex: l’objet T024 qui représente un groupe d’acheteurs

Cela peut être très pratique, mais il faut s’assurer que tout le monde sache comment cela fonctionne. Souvent je suis intervenu chez des clients qui ne savaient plus comment les agents étaient calculés ou comment maintenir les nouvelles entrées, et pratiquement à chaque fois cette méthode avaient été retenue.

Le type R – Responsabilité

Personnellement je suis un fan, j’ai commencé assez vite avec cette méthode qui ne demande aucun code et  permet une maintenance  simple.

Il suffit de configurer le container, puis d’assigner les responsabilités en s’appuyant sur les objets organisationnels.

Il ne faut pas oublier que la maintenance des responsabilités se fait dans les systèmes de développement par la transaction OOCU_RESP.

 

Nancy


Aujourd’hui, alors que je suis consultant SAP depuis 1999, je prends le train pour Nancy pour participer pour la première fois à l’USF.

Nancy, est une ville à laquelle je suis très attaché, car c’est également là qu’en 1999, j’ai commencé ma carrière sur SAP.

Le projet était avec Photostation et une toute jeune entreprise, CODILOG.

Le premier projet d’implémentation de cette jeune et prometteuse société qui n’avait qu’un an.

Le projet sur IS Retail avec Retail store avait été une success story à l’époque, le plus grand nombre de magasin utilisant le retail store.

Ce projet a été déterminant dans ma carrière, la bonne ambiance dans l’équipe, le challenge du projet, les relations avec le client.

J’ai appris énormément dans ce projet.

A Nancy, cette fois je viens avec des solutions que j’ai conçu, toujours dans le même esprit, à savoir simplifier la vie de nos clients.

Venez me voir le 12 Octobre sur le Stand 32, j’y serais avec CODILOG et j’aurai certainement même l’occasion de retrouver mon key user de l’époque toujours notre client.

A bientôt

USF 2016 Nancy

logo-big

 

Je serai présent sur le stand 32- CODILOG le 12 Octobre,  pour vous parler de l’offre CODILOG « Approbation Off Line »  .

Cette offre est un Framework qui permet de pouvoir à partir d’un client messagerie (Outlook, Gmail, lotus notes…) valider ou rejeter des tâches de workflow.

Il s’agit d’un framework car une personnalisation est nécessaire pour chaque tâche de workflow afin de paramétrer le texte du mail ainsi que les actions à effectuer.

240_f_49339914_twgw3oyxdq0q9sfoqfum6ns3gbiemcn5

Sur ce stand, montrerai une nouvelle offre en phase béta.

Venez nombreux,

 

 

 

Les Bases de la Détermination des Agents

Introduction

Dans les workflows, les personnes qui agissent (valident où modifient des données) sont appelés des agents.

Avant tout, il existe un très bon article sur le scn  pour vous donner les bases, à savoir qu’il existe trois types d’agents pour trouver les personnes qui pourront valider ou agir sur une étape de type dialogue. Cet article est tellement bon que je vais en grande partie le reprendre.

Règle générale

Possible_agents

Les agents potentiels, ils sont définis au niveau de la tâche workflow, cela peut être un ou des rôles  (PFCG), une ou des structures organisationnelles (PPOME),  une ou des positions/job/workCenter), un ou des user, une tâche de workflow
(Ou la tâche peut être  générale )

Excluded_Agent

Les agents exclus, ce sont ceux qui ne pourront agir sur la tâche, ils sont définis au niveau de l’étape du workflow.

Responsable_agents

Les agents responsables, ce sont les agents qui sont trouvés grâce à des calculs (règles, expression…) afin d’agir sur la tâche de workflow.

Agents.png

Les agents responsables qui font partie des agents potentiels et ne sont pas des agents exclus forment les agents déterminés, ceux qui recevront le work item et pourront agir dessus.

Ici les agents déterminés (selected agents) sont donc  Selected+Agents.

Mais pourquoi si peu de workflow ???

illustration-enfants

Je viens de donner la troisième formation workflow, de l’année, en interne dans mon entreprise ( CODILOG ) , et comme à chaque fois la même question à la fin : « Mais pourquoi utilise t on si peu les workflows dans SAP ? »

Je pense que c’est une bonne question, il y a tellement de workflows livrés par SAP, il y a tellement de raison pour utiliser les workflows, s’assurer que les processus sont suivis, automatisation de tâches, transfert de tâches entre équipe …

Sur un système SAP, avec tous les composants, SAP un jour a dit que l’on devrait avoir aux alentours de trente workflows en place. Entre la création et la mise à jour des données de base, les stratégies de  validation, les demandes de congés, les demandes de création de poste, validation de dépassement de crédit pour un client…, c’est vrai que cela peut aller très vite.

Mais alors pourquoi utilise t on si peu de workflow ?

classe-école-question

La réponse est pour moi assez simple, il y a très peu de spécialistes et bien souvent quelqu’un est nommé sur un sujet. Le temps de formation n’est pas accordé et il faut livrer dans les temps. Le résultat, les workflow sont mis en place par des personnes qui ne les connaissent pas, la maintenance devient horrible où le coût de développement est beaucoup trop fort…

Pour cela, dans les prochains articles, je vais essayer de partager avec vous certaines des fonctionalités du workflow, certaines bonnes pratiques et un peu de mon expérience.

N’hésitez pas à me suivre pour pouvoir accéder plus facilement aux prochains articles.

asuivre