よくあるご質問
オーダがどの工程セレクタにより展開されたかを確認するには
オーダクラスに文字列型のプロパティを新規に追加し、仮想プロパティ式に
ME.Child[0].Work_Bom.Parent
と設定すればよいでしょう。訳しますと、ME はオーダですから、このオーダから
作業(子供)を取得し、その作業から、マスタ作業を取得し、マスタ作業から
親を取得すれば、工程セレクタを取得できます。
作業は、採用された工程セレクタの方のマスタ作業へのリンクを持っていますから、
採用された工程セレクタは作業から取得しよう、というわけです。ちなみに、
作業が存在しなければ、この式自体は失敗しますから、空文字が返ります。
また、すべての品目において、工程セレクタを持っていれば、上記の式でよいですが、
一部の品目は工程セレクタを持っていない、という場合は、上記の式だと品目が返ってきます。
なぜなら、そのような場合、マスタ作業の親は品目だからです。つまり、品目の下の親子関係は、
≪工程セレクタが存在しない場合≫
品目-マスタ作業
≪工程セレクタが存在する場合≫
品目-工程セレクタ-マスタ作業
となっているわけです。
この問題を解決するには、以下のような式を設定すればよいです。
IF(ME.Child[0].Work_Bom.Parent.ClassDef==’Bom’,ME.Child[0].Work_Bom.Parent,’工程セレクタなし’)
訳しますと、
工程セレクタを取得しようとしてとってきたオブジェクトのクラスが’Bom'(つまりマスタ作業クラス)なら
そのオブジェクトの名前を、他のクラスだったら、’工程セレクタなし’という文字列を返す
という意味です。