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:
- Un indicador a una carga (Type: LOAD*).
- Tipo de recurso ("R" ecurso) (Type: char).
- Un indicador a un recurso (Type: void*).
- Un indicador a una operación (Type: JOBSTEP*).
- 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).