出荷休止
出荷時にオーケストレーション・プロセスを一時停止するために使用できるいくつかの例を確認してください。
次に例を示します:
-
一時停止タスクを追加して、出荷タスクの後にオーケストレーション・プロセスの請求タスクの前に発生するステップで実行されるようにします。
-
前述を除き、すべての例に同じThen文を使用します。
タスクがすべての明細で終了するまで一時停止
販売オーダーを請求に送信する前に、出荷が販売オーダーのすべての明細を搬送するまで待機してから、すべての明細を請求に送信する必要があるとします。 そのため、次のステップを含むオーケストレーション・プロセスを作成します。 一時停止を追加するには、ステップ5を使用します。
ステップ |
タスク・タイプ |
タスク名 |
---|---|---|
1 |
スケジュール |
スケジュール |
2 |
予約 |
予約 |
3 |
出荷 |
商品の出荷 |
4 |
一時停止 |
配信の待機 |
5 |
一時停止 |
一括請求の待機 |
6 |
請求書 |
請求書 |
次に、ステップ5で追加する一時停止ルールを示します。
ノート
コード |
説明 |
---|---|
|
このテストを使用して、販売オーダーの少なくとも1つの履行ラインが出荷されていないかどうかを判断します。 それはその質問をします。
オーダー明細がまだ搬送待機タスクを実行している場合、出荷が搬送されていないオーダー明細が少なくとも1つあるため、次のオーケストレーション・プロセス・ステップに進む前に一時停止を続行する必要があります。 配信待機は値の例です。 アクションの実行を待機している間に必要な一時停止のタイプを使用でき、請求を待機しながら次の一時停止に移動できます。 |
|
taskInstance変数を宣言し、オーケストレーション・プロセスが現在処理しているタスク・インスタンスの属性をこの変数に格納します。 DOOTaskInstanceは、販売オーダーのすべてのオーダー明細に対して現在実行されているオーケストレーション・プロセスのすべてのインスタンスのすべてのタスク・インスタンスを取得します。 たとえば、3つのタスク・インスタンスが現在3つのオーダー明細に対して実行されている場合、DOOTaskInstanceは3つのタスク・インスタンスをすべて取得します。 |
|
taskNameは、オーケストレーション・プロセス・ステップのタスク名属性に入力する値を示します。 この例では、ステップ4のTask NameとしてWait for Deliveryと入力しました。 ステップ4は、オーダー明細が搬送を待機しているかどうかを判断する一時停止ステップです。 |
|
taskInstance変数のactualCompletionDate属性の値を調べます。 値が含まれていない場合は、Shippingで品目が搬送されていないため、一時停止を続行する必要があります。 履行では、actualCompletionDateに値を入力して履行時期を指定します。 |
|
ヘッダー変数を宣言し、オーケストレーション・プロセスが現在処理しているオーダー・ヘッダーの属性をこの変数に格納します。 |
|
SACという名前の新しい変数を作成し、DooSeededOrchestrationRulesメソッドでSacResultタイプに設定します。 |
|
オーダー・ヘッダーのsacResultオブジェクトの値を、SACに含まれる値に設定します。 |
|
プロセス間通信イベントが発生するまでオーケストレーション・プロセスを一時停止します。 |
|
プロセス間通信(IPC)を使用して、オーケストレーション・プロセス間のイベントに従って一時停止します。 これを使用して、販売オーダーの任意のラインについてタスクが終了するたびに一時停止を評価します。 |
|
はい、一時停止を再評価します。 |
簡潔にするために、このトピックに出力される画面では、ルール・ディクショナリの結果とヘッダーは割り当てられませんが、その結果を割り当てる必要があります。 詳細は、「オーケストレーション・プロセスを一時停止するためのガイドライン」の「結果の割当」サブトピックを参照してください。
すべての出荷可能明細を出荷するまで出荷不可明細を一時停止
ルールの動作は次のとおりです。
-
出荷がオーダーのすべての出荷可能明細の出荷を終了するまで、販売オーダーの出荷不可明細を一時停止します。
-
出荷不可明細の一時停止を自動的にリリースしてから、オーケストレーション・プロセスの次のステップに進みます。
オーケストレーション・プロセスの後続のステップでは、販売オーダーのすべてのオーダー明細を一緒に請求に送信できるようになりました。
出荷タスクの後に、オーケストレーション・プロセスの請求タスクの前に一時停止タスクを追加します。 たとえば、オーケストレーションは、請求に進む前に、出荷によってすべての販売オーダーの出荷可能明細が出荷されるまで待機します。
ノート
コード |
説明 |
---|---|
|
このテストを使用して、販売オーダーの少なくとも1つの履行ラインが出荷されていないかどうかを判断します。 それはその質問をします。
実際の出荷日が空の場合、出荷されていない出荷可能明細が少なくとも1つあるため、次のオーケストレーション・プロセス・ステップに進む前に一時停止を続行する必要があります。 かわりに、出荷可能明細が少なくとも1つ出荷可能明細が出荷されるまで、 |
|
FLine変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 |
|
allFLinesInTheOrderをルール言語(RL)ディクショナリに宣言し、allFLinesInTheOrderの値をFLineに含まれる値に設定します。 この条件により、allFLinesInTheOrderがオーケストレーション・プロセスで処理中の履行明細を参照していることが確認されます。 また、変数をディクショナリに正しく宣言します。 これを使用して、現在のオーケストレーション・プロセス・インスタンスが処理している明細のみでなく、販売オーダーのすべての明細を確認します。 |
|
出荷可能な履行明細のみを表示しています。 |
|
実績出荷日がない明細をスキップします。 |
|
数量がゼロの明細をスキップします。 |
|
SACという名前の新しい変数を作成し、DooSeededOrchestrationRulesメソッドでSacResultタイプに設定します。 |
|
オーダー・ヘッダーのsacResultオブジェクトの値を、SACに含まれる値に設定します。 |
|
プロセス間通信イベントが発生するまでオーケストレーション・プロセスを一時停止します。 |
|
プロセス間通信(IPC)を使用して、オーケストレーション・プロセス間のイベントに従って一時停止します。 これを使用して、販売オーダーの任意のラインについてタスクが終了するたびに一時停止を評価します。 |
|
はい、再評価します。 |
出荷が少なくとも1つの出荷可能明細になるまで出荷不可明細を一時停止
ルールの動作は次のとおりです。
-
出荷が販売オーダーの出荷可能明細の少なくとも1つを出荷するまで、出荷不可明細を一時停止します。
-
出荷が最初の出荷可能明細を出荷するとすぐに、出荷不可明細をすべて請求に送信します。
-
販売オーダーに出荷可能明細がない場合は、すぐに次のオーケストレーション・プロセス・ステップに進みます。 出荷可能なラインがない場合は、一時停止する必要はありません。
ノート
コード |
説明 |
---|---|
|
このテストを使用して、販売オーダーの少なくとも1つの履行明細が出荷可能かどうかを決定します。 |
|
ShippableFLine変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 |
|
allFLinesInTheOrderをルール言語(RL)ディクショナリに宣言し、allFLinesInTheOrderの値をShippableFLineに含まれる値に設定します。 この条件により、allFLinesInTheOrderがオーケストレーション・プロセスで処理中の履行明細を参照していることが確認されます。 また、変数をディクショナリに正しく宣言します。 これを使用して、現在のオーケストレーション・プロセス・インスタンスが処理している明細のみでなく、販売オーダーのすべての明細を確認します。 |
|
出荷可能な履行明細のみを表示しています。 |
|
出荷可能な明細がない場合は、すぐに次のオーケストレーション・プロセス・ステップに進みます。 At Lease One句からShippableFLine変数から独立するように、None句に対して個別の変数NotShippableFLineを作成します。 |
|
NotShippableFLineをルール言語(RL)ディクショナリに宣言します。 |
|
allFLinesInTheOrderが、オーケストレーション・プロセスが処理している履行明細を参照していることを確認してください。 現在のオーケストレーション・プロセス・インスタンスで処理している明細のみでなく、販売オーダーのすべての明細を確認します。 |
|
出荷可能な履行明細のみを表示しています。 この文にはNone句があり、質問されます。
|
|
実績出荷日がない明細をスキップします。 |
|
数量がゼロの明細をスキップします。 |
出荷可能明細の出荷待ちなしで出荷不可明細を請求に送信
項目 | ステータス |
---|---|
AS54888デスクトップ・コンピュータ | 請求書の一時停止 |
AS54888の運賃 | 請求書の一時停止 |
ただし、AS54888の出荷が完了するのを待たずに運送費を請求に送信します。 これを実行する方法を次に示します。
出荷タスクを実行するステップの後、および請求タスクを実行するステップの前に発生するオーケストレーション・ステップに一時停止タスクを追加します。
コード | 説明 |
---|---|
FLine.inventoryItemId.longValue() is 149
|
履行明細のInventoryItemId属性の値149は、AS54888デスクトップ・コンピュータを一意に識別します。 |
header.childFLines RL.contains FLine
|
childFLines属性をルール言語(RL)ディクショナリに宣言し、childFLinesの値をFLineに含まれる値に設定します。 |
FLine.extendedAmount same or less than 3000
|
- |
|
SACという名前の新しい変数を作成し、DooSeededOrchestrationRulesメソッドでSacResultタイプに設定します。 |
|
オーダー・ヘッダーのsacResultオブジェクトの値を、SACに含まれる値に設定します。 |
assert new DooSeededOrchestrationRules.SacResult ( eventName:"NO FOB" reevaluateFlag = "Y",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT)
|
- |
出荷可能明細がない場合に出荷不可明細を請求に送信
出荷可能明細が少なくとも1つの出荷可能明細を出荷するまで、出荷不可明細の請求への送信を一時停止し、出荷不可明細および出荷可能明細を請求にまとめて送信しますが、条件付きで送信します。
if the sales order doesn't have any shippable lines, then send the nonshippable lines to invoicing without waiting.
条件を説明するには、出荷タスクを実行するステップの後、請求タスクを実行するステップの前に発生するオーケストレーション・ステップで一時停止タスクを追加します。
ルールの動作は次のとおりです。
-
在庫管理が販売オーダーで少なくとも1つの出荷可能明細を受け取るまで、出荷不可明細を一時停止します。
-
一時停止された出荷不可明細を自動的にリリースしてから、次のオーケストレーション・プロセス・ステップに進みます。
オーケストレーション・プロセスは、オーダーの出荷不可明細および出荷可能明細を一緒に請求に送信できるようになりました。
ノート
コード |
説明 |
---|---|
|
このテストを使用して、販売オーダーの少なくとも1つの履行明細が出荷可能かどうかを決定します。 |
|
FLineS変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 変数には任意の名前を使用できます。 FLineSを使用して、このトピックの他の例で使用するFLine変数と区別しています。 |
|
allFLinesInTheOrderをルール言語(RL)ディクショナリに宣言し、FLineSの値をFLineSに含まれる値に設定します。 この条件により、allFLinesInTheOrderがオーケストレーション・プロセスで処理中の履行明細を参照していることが確認されます。 また、変数をディクショナリに正しく宣言します。 これを使用して、現在のオーケストレーション・プロセス・インスタンスが処理している明細のみでなく、販売オーダーのすべての明細を確認します。 |
|
出荷可能な履行明細のみを表示しています。 |
|
出荷可能な明細がない場合は、すぐに次のオーケストレーション・プロセス・ステップに進みます。 At Lease One句のFLineS変数から独立するように、None句に対して個別の変数FLineを作成します。 |
|
FLineをルール言語(RL)ディクショナリに宣言します。 |
|
allFLinesInTheOrderが、オーケストレーション・プロセスが処理している履行明細を参照していることを確認してください。 現在のオーケストレーション・プロセス・インスタンスで処理している明細のみでなく、販売オーダーのすべての明細を確認します。 |
|
実績出荷日がない明細をスキップします。 |
|
出荷可能な履行明細のみを表示しています。 この文にはNone句があり、質問されます。
|
|
数量がゼロの明細をスキップします。 |
出荷不可明細および返品明細を請求に送信
ルールの動作は次のとおりです。
-
在庫管理が販売オーダーのすべての出荷可能明細を受け取るまで、出荷不可明細を一時停止します。
-
在庫管理がすべての出荷可能明細を受け取るまで待機します。
-
一時停止された出荷不可明細を自動的にリリースしてから、次のオーケストレーション・プロセス・ステップに進みます。
オーケストレーション・プロセスでは、出荷不可明細およびオーダーの返品明細を一緒に請求に送信できるようになりました。
ノート
コード |
説明 |
---|---|
|
このテストを使用して、販売オーダーの少なくとも1つの履行明細が出荷可能かどうか、および履行によって明細が正常に返品されたかどうかを決定します。 |
|
FLine変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 |
|
allFLinesInTheOrderをルール言語(RL)ディクショナリに宣言し、allFLinesInTheOrderの値をFLineに含まれる値に設定します。 |
|
出荷可能な履行明細のみを表示しています。 |
|
rmaDeliveredQtyは、履行が在庫に履行された返品ラインの数量です。 値がないかゼロの場合、履行によって明細が在庫に正常に返品されていないことを意味します。 |
|
履行では、明細を取り消すとorderedQtyがゼロに設定されます。 この条件により、取り消されていない明細のみが考慮されます。 |
|
返品明細のみを考慮します。 返品明細ではない明細をスキップします。 |
すべての明細を出荷するまでキットの出荷済明細を一時停止
数量が10以上のキットをオーダーするとします。 すべての明細が在庫にないため、履行により一部の明細が分割され、出荷時に在庫が補充されるまでキットの一部が出荷されます。 出荷済明細を自分で請求に送付する必要はありません。 履行によってキットのすべての数量が出荷されるまで待つ必要があります。
ルールの動作は次のとおりです。
-
履行がキットの全ラインを正常に履行するまで、出荷済ラインを一時停止します。
-
一時停止された明細を自動的にリリースし、次のオーケストレーション・プロセス・ステップに進みます。
オーケストレーション・プロセスは、キットのすべての明細を一緒に請求に送信できるようになりました。
ノート
コード |
説明 |
---|---|
|
FLine変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 |
|
childFLines属性をルール言語(RL)ディクショナリに宣言し、childFLinesの値をFLineに含まれる値に設定します。 |
|
キットの一部である履行明細のみを取得します。 他のすべての行をスキップします。 |
|
このテストを使用して、キット内の少なくとも1つの履行明細を履行分割するかどうかを決定します。 |
|
allFLines変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 すべての行を順番に処理します。 |
|
allFLinesInTheOrderをルール言語(RL)ディクショナリに宣言し、allFLinesInTheOrderの値をallFLinesに含まれる値に設定します。 |
|
履行がキットの一部を出荷した場合、キット内の明細が分割され、いくつかの明細が出荷され、他の明細は出荷されません。 履行でキット内の明細が分割されているかどうかを確認します。 それに注意してください。
allFLines属性のfulfillLineId属性がFLine変数のfulfillLineId属性と等しくなく、allFLines属性のlineId属性がFLine変数のlineId属性と等しい場合、現在調査している行が履行によって分割されていないことがわかります。 どうして私たちは知っていますか? fulfillLineIdは、キットを含む履行明細を識別します。 履行では、キットの履行ラインと、キットの分割時に作成される新規ラインとの関係を維持する必要があります。 したがって、履行によって作成される各新規明細のlineIdがfulfillLineIdの値に割り当てられます。 |
|
履行が出荷されていないラインのみを考慮してください。 |
|
履行では、明細を取り消すとorderedQtyがゼロに設定されます。 この条件により、取り消されていない明細のみが考慮されます。 |
出荷可能明細および出荷不可明細をグループ内の請求に送信
一時停止タスクを変更して、オーケストレーション・プロセスによってすべての履行明細が単一の明細グループとして請求に送信されるようにするとします。これには、履行が出荷可能な明細のみではなく、出荷可能な販売オーダーのすべての明細が含まれます。 ルールの動作は次のとおりです。
-
出荷可能明細の出荷が終了するとすぐに、グループの一部である出荷不可明細の一時停止を自動的にリリースします。
-
拡張可能フレックスフィールドを使用して、オーダー入力スペシャリストがグループに含まれる明細を指定できます。
出荷可能明細を出荷可能明細に出荷しない明細の一時停止の例で使用するのと同じThen取引明細書を使用できますが、If取引明細書は異なります。 一時停止タスクを追加して、オーケストレーション・プロセスの出荷タスクと請求タスク間で行われるようにします。
これは、If文の最初の部分です。
ノート
コード |
説明 |
---|---|
|
currentFline変数を宣言し、オーケストレーション・プロセスが現在処理している履行明細の属性をこの変数に格納します。 |
|
currentFlineをルール言語(RL)ディクショナリに宣言し、currentFlineの値をchildFLinesに含まれる値に設定します。 この条件により、currentFlineがオーケストレーション・プロセスで処理中の履行明細を参照していることが確認されます。 また、変数をディクショナリに正しく宣言します。 |
|
allFlines変数を宣言し、DOOFLine型に設定します。 |
|
allFlines変数をルールの言語ディクショナリに宣言し、allFlinesの値をallFLinesInTheOrderに含まれる値に設定します。 この条件により、変数をディクショナリに正しく宣言できます。 |
|
currentFlineEFF変数を宣言し、FlexContext型に設定します。 |
|
currentFlineEFFをルールの言語ディクショナリに宣言し、currentFlineEFFの値をflexContextsに含まれる値に設定します。 この条件により、変数をディクショナリに正しく宣言できます。 flexContextsは、拡張可能フレックスフィールドのコンテキスト行のリストです。 FlexContextは、行または変数のタイプです。 |
これは、If文の2番目の部分です。
FulfillLineContext1拡張可能フレックスフィールド・コンテキストおよびFL1AttributeChar1セグメントは1つのグループであることに注意してください。
販売オーダーに10の履行ラインが含まれ、それぞれ5つのラインの2つのセットにグループ化する必要があるとします。 使用することができます。
-
FulfillLineContext1およびFL1AttributeChar1:最初の5行を含むようにGROUP1を設定
-
FulfillLineContext2およびFL1AttributeChar2:最後の5行を含むようにGROUP2を設定
If文の2番目の部分からのコードを次に示します。
コード |
説明 |
---|---|
|
allFlineEFF変数を宣言し、オブジェクトFlexContextの値をこの変数に格納します。 メソッドDooSeededOrchestrationRulesにはFlexContextが含まれます。 |
|
変数FLATTR (フレックスフィールド属性)を宣言し、FL1AttributeChar1に設定します。 このルールの複数のロケーションで、FL1AttributeChar1拡張可能フレックスフィールド属性を参照します。 効率を高めるために、タイポグラフィカル・エラーによる問題を回避するために、FLATTRを1回宣言し、それをFL1AttributeChar1に設定してから、FL1AttributeChar1を複数回宣言するかわりにFLATTRを参照できます。 |
|
currentFline変数のfulfillLineId属性とallFlines変数のfulfillLineId属性が同じ履行明細を参照していない場合にのみ、次のANDに進みます。 |
|
currentFlineEFFからフレックスフィールド・コンテキストの値を取得します。 コンテキストにFulfillLineContext1文字列が含まれている場合にのみ、次のAND文に進みます。
|
|
getFlexAttributeValueメソッドを使用して、現在の履行明細の拡張可能フレックスフィールドからFL1AttributeChar1属性の値を取得します。 FL1AttributeChar1に値が含まれている場合にのみ、次のANDに進みます。 FLATTRにFL1AttributeChar1が含まれていることを思い出してください。 |
|
getFlexAttributeValueメソッドを使用して、現在の履行明細の拡張可能フレックスフィールドからFL1AttributeChar1属性の値を取得します。 FL1AttributeChar1に値が含まれている場合にのみ、次のANDに進みます。 FLATTRにFL1AttributeChar1が含まれていることを思い出してください。 |
|
allFlineEFFからフレックスフィールド・コンテキストの値を取得します。 コンテキストにFulfillLineContext1文字列が含まれている場合にのみ、次のAND文に進みます。 |
|
allFlineEFFからFL1AttributeChar1属性の値を取得します。 FL1AttributeChar1に値が含まれている場合にのみ、次のANDに進みます。 |
|
拡張可能フレックスフィールド属性に現在の明細とすべての明細で同じ値が含まれている場合にのみ、次のANDに進みます。 この条件により、これらの履行ラインが同じグループに含まれることが保証されます。 |