2008-12-23 3 views
2

Je suis actuellement en train de mettre en œuvre un certain nombre d'algorithmes d'affectation différents pour une situation SalesLead < ->SalesPerson. L'idée générale est assez simple:Implémentation Round Robin Assignment (base de données)

  1. A SalesLead signes sur un site Web public

  2. Le code attribue automatiquement SalesLead à un SalesPerson en utilisant la programmation round-robin (Leads sont affectés à SalesPersons dans le même ordre)

Je rencontre de sérieuses erreurs de codeurs dans la façon d'effectuer cela en dehors de l'extraction des agents de la base de données dans le même ordre à chaque fois, et en utilisant une autre table pour stocker le dernier agent auquel a été affecté un SalesLead (ce qui peut être utile pour construire un rapport, ou au moins avoir une méthode de trace plus tard). Suis-je loin de la base?

Clarification: Le code ne correspond pas actuellement à un commercial pour un prospect. C'est une fonction complètement nouvelle. Actuellement, ils peuvent s'inscrire à un SalesPerson spécifique, mais nous aimerions qu'ils puissent être affectés automatiquement.

Répondre

6

Assez simple vraiment: quand un SalesPerson est créé, donnez-lui un LastActivityDate. Lorsque SalesLead leur est affecté, mettez à jour cette date à la date actuelle. Donnez un SalesLead, comme il arrive, à un SalesPerson avec la date d'activité la plus récente. Peut être fait facilement en SQL ou en code.

+0

J'aime cela, il est simple , mais efficace. Je n'avais jamais envisagé d'ajouter une colonne d'horodatage. – dmercer

+0

Vous avez juste à couvrir quelques cas de coin. Comme si un SalesPerson part en congé, définissez leur date d'activité sur NULL (donc il n'est pas récupéré) et quand ils reviennent, réglez-le maintenant pour qu'ils reviennent dans la rotation. Ce système est alors assez juste. – cletus

2

Si vous avez une table qui correspond à SalesLeads et SalesPersons ensemble et que vous l'horodatez, vous n'avez pas besoin d'une table distincte pour suivre le dernier SalesPerson sélectionné.

1

Dans SQL Server, vous voudriez que ce soit un datetime, pas un champ d'horodatage, mais l'idée de David est la même. Gardez une trace du dernier responsable des ventes attribué à un commercial et notez l'heure à laquelle il a été affecté. Vous pouvez ensuite choisir le prochain commercial à attribuer une piste en trouvant le vendeur qui n'en a pas affecté ou le vendeur dont le dernier rôle attribué est le plus ancien.

Questions connexes