Écriture de règles de lancement des lots personnalisées
Logique des règles de lancement de lot
Avant de créer des règles de lancement de lot personnalisées et d'écrire les fonctions de lancement de lot correspondantes, vous devez comprendre la logique utilisée par la fonction de lancement de lot. Lorsqu'un OF arrive au niveau d'une opération pour laquelle une fabrication groupée a été indiquée, la fonction de lancement de lot est appelée.
Lorsque la fonction de lancement de lot est appelée, celle-ci détermine la quantité ajoutée au lot en cours de création, ce qui détermine le moment auquel le lot sera lancé.
Nom de la fonction
Votre fonction de lancement de lot personnalisée peut porter n'importe quel nom qui n'est pas un nom de fonction standard exécutable par l'utilisateur.
Arguments
#include "factor.h"
double brrl(ldp, batch)
LOAD *ldp; /* pointer to the load */
BATCHDEF *batch; /* pointer to the batch definition */
Cette fonction accepte deux arguments, un pointeur vers la charge (Type : LOAD *) et un pointeur vers le lot (Type : BATCHDEF *).
Valeur de retour
La fonction retourne une valeur à ajouter au lot en cours de création (type : double).
Voici ci-dessous un exemple d'une fonction de lancement de lot basée sur la quantité de l'OF :
double brrl (LOAD *ldp, BATCHDEF *batch)
/*-----------------------------------------------------------------
Batch release rule which adds the quantity on the job.
ARGS:
ldp - pointer to the arriving load (job)
batch - pointer to the batch that this load will follow
RETURNS: job quantity
-----------------------------------------------------------------*/
{
return((double)ldp->losize);
{
Installation de la fonction personnalisée
Pour rendre votre fonction de lancement de lot personnalisée disponible pour l'ordonnancement, vous devez l'"installer" à partir de ucini1 en appelant la fonction sedfbq. Cette fonction a deux arguments dans l'ordre suivant :
- Le numéro de la règle de lancement de lot pour laquelle votre fonction contient une logique personnalisée.
- L'adresse de votre fonction de lancement de lot.
Par exemple, pour installer la règle exemple "brrl" ci-dessus dans la position de règle 39 :
sedfbq (39, brrl);