カスタム段取ルールの作成
段取が必要かどうかを判断するには、作業の 段取ルール がユーザ定義の段取ルール(ルール位置 3 ~ 39)に設定されている場合にスケジューラで使用する ucwtsr 関数を作成できます。
注: カスタムルールの作成に必要な手順のサマリは、「カスタムスケジュールルールの作成」を参照してください。このトピックで説明した関数の詳細については、弊社サポートサイトからダウンロードできる
『Scheduling Customization Guide』
(スケジューリングカスタマイズガイド)を参照してください。
関数の命名
カスタム関数には、ユーザによる呼び出し可能な標準の関数名 以外の任意の名前を付けることが
引数
サマリ
#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. */
ucwtsr 関数は、5 つの引数を次の順序で受け入れる必要があります。
- 負荷(区分: LOAD*)。
- 資源("R"esource)の区分(区分: char)。
- 資源(区分: void*)へのポインタ。
- 作業 (区分: JOBSTEP*)へのポインタ。
- 段取ルール(区分: int)
戻り値
関数は成功の場合は 1(段取必要)を、失敗の場合は 0(段取なし)を返す必要があります。区分: int。
以下の ucwtsr の例では、資源に対して部品/作業が変更される都度、資源を設定します。
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);
}
カスタム関数のインストール
段取ルールが 2 より大きい場合(非標準ルール番号の場合)、ucwtsr は自動的に呼び出されるため、ucini1 にインストールする必要はありません。