Escribir reglas de configuración personalizadas

Para determinar si es necesaria la configuración, puede escribir una función, ucwtsr, que el programador utiliza cuando la Regla de configuración de una operación está establecida en una regla de configuración definida por el usuario (posiciones de regla 3-39).
Nota:  Consulte Escribir una regla de programador personalizada para obtener un resumen de los pasos necesarios para crear reglas personalizadas. Para obtener más detalles acerca de las funciones descritas en este tema, consulte la Guía de personalización de la programación, disponible para su descarga en nuestra página de asistencia.

Denominar la función

La función personalizada puede tener cualquier nombre que no sea un nombre de función estándar invocable por el usuario.

Arguments

Resumen


#include "factor.h"
int ucwtsr (ldp, type, rp, jsp, rule)
LOAD     *ldp;  /* pointer to the load. */
TCHAR    type; /* 'R' (resource) */
void      *rp;   /* pointer to the resource to setup. */
JOBSTEP  *jsp;  /* pointer to the operation. */
int      rule; /* setup rule to use. */

La función ucwtsr debe aceptar cinco argumentos en el siguiente orden:

  1. Un indicador a una carga (Type: LOAD*).
  2. Tipo de recurso ("R" ecurso) (Type: char).
  3. Un indicador a un recurso (Type: void*).
  4. Un indicador a una operación (Type: JOBSTEP*).
  5. Regla de configuración (Type: int).

Valores de devolución

La función debe devolver 1 si es True (se debe realizar la configuración) y 0 si es False (no se debe realizar la configuración). Tipo: int).

El ejemplo siguiente de ucwtsr configura un recurso cada vez que la pieza o la operación cambian para los recursos.


int ucwtsr(LOAD *ldp, TCHAR type, void *rp, JOBSTEP *jsp, int rule)
/*-----------------------------------------------------------------
     Function to set up a resource if the item or operation is
     different from last setup
     ARGS:
       ldp  - pointer to load
       type - "R"esource
       rp   - pointer to resource
       jsp  - pointer to operation
       rule - Setup rule
         RETURNS
       true  - perform setup, or
       false - do not perform setup
-----------------------------------------------------------------*/
{
     int ireturn = 0
     char error[400];
        /* Check if setup or setup/operate or super operation.    */
        if ( (jsp->jstype != 4) &&  (jsp->jstype != 13) )&&
      (jsp->jstype != 19) )
        {
            sprintf(error,"Operation not a Setup or Setup/Operate or Super
                    operation\n\nOrder ID  %s\nLoad ID  %d\nBatch ID
                    %ld\nOperation ID  %s\nOperation Type  %d\n",
                    ldp->loordp->orid, ldp->loid, (ldp->lobat == NULL)
                    ? OL : ldp->lobat->bibatid, jsp->jsid, jsp->jstype);
            seferr(0, error);
        }
        if (type == 'R')
        {
            ireturn = (((RESRC *)rp)->rsptst != ldp->loordp->orptpt
                 ||   ((RESRC *)rp)->rsjsst != jsp) ? 1 : 0;
        }
        else
        {
            ireturn = (((MCRMEMBER *)rp)->mbrptst != ldp->loordp->orptpt
                 ||   ((MCRMEMBER *) rp)->mbrjsst != jsp) ? 1 : 0;
        }
        return (ireturn);
}

Instalación de la función personalizada

No es necesario instalar ucwtsr in ucini1 porque se invoca automáticamente cuando la regla de configuración es superior a 2 (es decir, un número de regla no estándar).