明細行の操作

明細行の操作

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

概要 

明細項目とは、注文、請求書、発注書、梱包リスト、在庫データなどのデータやドキュメント内の個別のエントリーまたは行です通常の項目は1つの値のみを保持しますが、各明細項目には複数の値を含めることができます。技術的には、これらはオブジェクトの配列です。

たとえば:

• Zoho Booksの請求書に含まれる商品。それぞれに名前、数量、単価、税金があります。

• Zoho Inventoryの受注書に含まれる商品。それぞれにSKU、数量、割引があります。

• 発注書に含まれるエントリー。それぞれ仕入先からの異なる商品に対応します。

 

明細項目がサポートされる前は、このようなデータをあるアプリから別のアプリに渡すには、インデックスで個々の行を抽出するカスタム数式を作成するか、配列を最初から構築するカスタム関数を作成する必要がありました。そのため、処理が不安定で時間のかかるものになっていました。

Zoho Flowの明細項目サポートを使用すると、すべての行を一度に関連付け、各行の各項目に入力される値を正確に制御し、コードを1行も書かずに動的なデータ件数に対応できます。

ワークフローで明細項目が重要な理由 

新しい注文がWooCommerceで作成されるたびに、Zoho Inventoryで受注書を作成するサンプルのユースケースを見てみましょう。WooCommerceのトリガーは、注文された商品のリストを返します。各商品には、名前、数量、単価、割引、税金が含まれます。これらすべてを、Zoho Inventoryの受注書に個別の行として表示する必要があります。

従来の方法:明細項目のサポートなし

明細項目のサポートがない場合、複数行のデータを渡すには、各行を個別に抽出し、各項目を1つずつ関連付けるしかありませんでした。

商品が3つ含まれるWooCommerceの注文では、各行のすべての項目を個別に関連付ける必要があります。

商品名(1)→名前

数量(1)→数量

単価(1)→価格

 

商品名(2)→名前

数量(2)→数量

単価(2)→価格

 

商品名(3)→名前

数量(3)→数量

            単価(3)→価格

この方法には大きな欠点があります。

  • フローは固定された行数に対してのみ機能します。データ内の項目数が想定より多い、または少ない場合、行が欠落するか、フローが失敗します。

  • 各行のすべての項目を個別に関連付ける必要があるため、設定が面倒でミスが発生しやすくなります。

  • トリガーの項目構造が変更されると、関連付けられたすべての行が機能しなくなり、個別に修正する必要があります。

  • 動的な行数を処理するにはカスタム関数が必要であり、プログラミングの知識が求められます。


新しい方法:
明細項目のサポート

明細項目のサポートにより、Zoho Flowはトリガーまたは前のアクションが配列データを返すことを認識し、アクション設定でマッピング可能な明細項目変数として表示します。項目を一度設定すれば、トリガーまたは前のアクションが返す行数に関係なく、Zoho Flowがすべての行にマッピングを自動で適用します。

 

前述の例では、WooCommerceの注文内の各商品が、Zoho Inventoryの受注で正しく入力された行として表示されます。数式は不要です。カスタム関数も不要です。行数をハードコードする必要もありません。これは、両方のアプリケーションで互換性のある項目構造が共有されている場合に機能します。そうでない場合は、項目を個別にマッピングできます。


Notesメモ:アクションが明細項目に対応していない場合、その設定パネルに明細項目セクションは表示されません。


明細項目と項目グループ 

構造化データに対応するアクションを設定する際、グループ化された項目には、明細項目項目グループの2種類があります。設定パネルでは似て見える場合がありますが、動作は異なります。

明細項目を使用する場合

関連データの複数行を渡す場合は、明細項目変数を明細項目の項目にマッピングします。各行には固有の値のセットがあります。たとえば、次のような場合です。

  • 請求書の商品。それぞれに名前、数量、単価、税が含まれます

  • 受注の商品。それぞれにSKU、数量、割引が含まれます

  • 連絡先の電話番号。それぞれに番号、種類、国コードが含まれます

項目グループを使用する場合

1つのグループ化されたデータ(1セットの値)をあるアプリケーションから別のアプリケーションに渡す場合は、項目グループ変数を項目グループの項目にマッピングします。たとえば、次のような場合です。

  • 連絡先の請求先住所(番地、市区町村、都道府県、郵便番号)を別のアプリケーションにコピーする

  • 注文の配送先住所を転送先アプリケーションのデータに渡す

明細項目との主な違いは、複数の行を扱わない点です。固定された項目グループの1対1の転送です。複数の商品や複数の電話番号のようなリストを移動する場合は、代わりに明細項目の項目を使用してください。


明細項目
項目グループ
複数のデータ(行)を表します。
1つのグループ化されたデータを表します。
配列ベースの値の割り当てに対応しています。
配列ベースの値の割り当てには対応していません。
各行に値の配列を割り当てられます(位置に基づく)。
1つのデータを表します。各項目には1つの値のみが保持され、複数の行はありません。
例:注文商品、請求書の商品、購入明細。
例:請求先住所、配送先住所。


Zoho Flowでの明細項目の識別

アクション設定パネルでの表示

明細項目に対応する項目には、項目ラベルの横に明細項目バッジが表示されます。このような項目をクリックすると、[マッピング方法]オプションが表示され、[一括]と[項目ごと]の2つから、明細項目の項目を設定する方法を選択できます。


      

変数の挿入パネルでの表示

アクション設定の右側にある[変数の挿入]パネルには、トリガーと前のステップで利用可能なすべての変数が、ステップごとにグループ化されて表示されます。

明細項目データを含む変数には明細項目タグが付けられ、項目グループデータを含む変数には項目グループタグが付けられます。それぞれの横にある展開アイコンをクリックすると、その中の個別の項目が表示され、各項目には文字列数値などのデータ型が表示されます。任意の変数をクリックすると、対応する項目にマッピングできます。

タグのない変数は、単独の単一値変数であり、直接マッピングできます。

明細項目の設定 

明細項目に対応するアクションを開くと、設定パネルに明細項目セクションが表示されます。設定方法は、[一括][項目ごと]の2つです。

[一括]
[項目ごと]
一括
一括設定では、前のステップのラインアイテム配列全体を、1回の操作でアクションに関連付けられます。両方のアプリケーションが互換性のある構造を持ち、各項目を個別に確認せずにすべての項目を渡したい場合に使用します。以下の手順に従って関連付けを行います。
  1. アクション設定パネルで、[ラインアイテム]セクションを見つけ、[一括]をクリックします。

  2. 右側の[変数を挿入]セクションで、トリガーまたは前のアクションの出力からラインアイテム変数を選択します。Zoho Flowにより、ラインアイテム変数がラインアイテム項目に直接関連付けられます。



ここでは、[Phones]項目が${fetchContact_2.Phones}に関連付けられています。前のステップのラインアイテム変数全体が一括で項目に渡され、すべての電話番号の行が自動的に転送されます。

      

値を配列として直接入力することもできます。たとえば、[Phones]項目に複数の電話番号を追加するには、以下の形式で値を入力します。各エントリーは、Xeroの連絡先で個別の電話データとして作成されます。
[{'phonenumber':'555 0132','phoneareacode':'415'},{'phonenumber':'555 0198','phoneareacode':'212'},{'phonenumber':'555 0147','phoneareacode':'416'}]

  • 電話番号(1)→ 555 0132

  • 電話番号(2)→ 555 0198

  • 電話番号(3)→ 555 0147

  • 市外局番(1)→ 415

  • 市外局番(2)→ 212

  • 市外局番(1)→ 416

ここで、[電話番号]と[市外局番]は、[Phones]ラインアイテム項目内の項目です。


Notesメモ:一括設定は、両方のアプリケーションで同じ項目構造が使用されている場合にのみ機能します。


項目ごと

項目ごとに、明細行の各項目を個別に設定できます。各項目には、前のステップの値をマッピングするか、値を直接入力するか、項目がドロップダウンの場合は選択肢の一覧から選択できます。

値の割り当て方法にかかわらず、値を複数の行にどのように分配するかも指定できます。

  • 配列として - JSON形式で値のリストを渡します。各値は位置に基づいて対応する行に割り当てられます。一致する値がない行はnullとして設定されます。



    ここでは、電話番号項目が${fetchContact_2.Phones.PhoneNumber}にマッピングされています。つまり、前のステップから返されたPhones明細行変数から電話番号を直接取得し、各番号を対応する行に自動的に割り当てます。 

    別の例として、トリガーが4件の明細行を返し、市区町村が配列としてマッピングされている場合を示します。

    入力:['ニューヨーク', 'ロサンゼルス', 'シカゴ', 'ヒューストン']

     

    行1 → ニューヨーク

    行2 → ロサンゼルス

    行3 → シカゴ

    行4 → ヒューストン

    一方、1つの要素のみを含む配列として単一の値を渡した場合、その値は最初の行にのみ割り当てられます。残りの行にはnull値が設定されます。

    入力:['ニューヨーク']

     

    行1 → ニューヨーク

    行2 → null

    行3 → null

    行4 → null

    • 単一値として - 1つの値を渡すと、すべての行に適用されます。倉庫の場所、通貨、国コードなど、すべての明細行で同じ値となる項目に使用します。



この例では、電話の国番号項目に単一の値を渡しているため、同じ値がすべての行に適用されます。

入力:電話の国番号 - +1

 

行1 → +1

行2 → +1

行3 → +1

行4 → +1

ドロップダウンのある項目では、既存の選択肢を選択して同じ値をすべての行に適用することも、カスタム値を入力することもできます。カスタム値では配列入力がサポートされているため、行ごとに異なる選択肢を割り当てられます。


            

たとえば、明細ごとに電話の種類が異なる場合です。カスタム値を選択し、以下の形式で値を入力します。

入力:['携帯電話', '勤務先', 'FAX']

 

行1 → 携帯電話

行2 → 勤務先

行3 → FAX

行4 → (空)

 


Notesメモ:配列は有効なJSON形式に従う必要があります。文字列値は二重引用符で囲む必要があります。たとえば、['有効', '無効']は有効ですが、[有効, 無効]は無効です。数値には引用符は不要です。



値が行に分配される仕組み 

以下の表は、入力方法に応じて値が行にどのように割り当てられるかを示しています。

割り当てモード
入力
結果
配列入力-前のステップからマッピング
明細項目の配列
元データと一致
各行に位置に応じた値が入力されます
単一値-前のステップからマッピング
任意の単一項目
任意
すべての行に同じマッピング値が入力されます
直接入力-配列
['A', 'B', 'C']
5
行1=A、
行2=B、
行3=C、
行4~5=空
直接入力-単一値
有効
5
5行すべて=有効
ドロップダウンから選択
選択:Approved
5
5行すべて=Approved
カスタム値-配列(明細項目)
['Approved', 'Pending']
5
行1=Approved、
行2=Pending、
行3~5=空
カスタム値-単一(項目グループ)
'Approved'
任意
すべての行=Approved


Notesメモ:配列入力を使用する場合、値がない位置はnullです。行数を超える余分な値は無視されます。

制限事項 

  • すべてのアプリケーションが明細項目に対応しているわけではありません。アクションに明細項目セクションが表示されない場合、そのアプリは明細項目に対応していません。

  • 項目グループは配列入力に対応していません。

  • 項目グループのドロップダウン項目では、選択できる選択肢は1つだけです。配列入力によるカスタム値には対応していません。


よくある質問 

トリガーの明細項目の配列を項目にマッピングしましたが、アクションには最初の行しか表示されません。何が問題ですか?

通常、これはマッピング先の項目が明細項目ではなく、項目グループ内の項目であることを意味します。項目グループは1件のデータを表し、配列には対応していません。項目グループではなく、アクションの明細項目セクションにマッピングしていることを確認してください。

ドロップダウン項目の各行に異なる値を適用できますか?

はい。ただし、明細項目の項目のみが対象で、項目グループは対象外です。明細項目のドロップダウン項目では、[カスタム値]を選択し、JSON配列を入力します。各値は、位置に応じて対応する行にマッピングされます。項目グループのドロップダウン項目には適用できません。

トリガーとアクションの両方が明細項目に対応している場合、カスタム関数は必要ですか?

ほとんどの場合、必要ありません。両方のアプリケーションが明細項目に対応しており、項目構成にある程度互換性がある場合は、[明細項目]設定パネルですべてを直接マッピングできます。データの再構成、絞り込み、変換が必要な場合にのみ、カスタム関数が必要です。たとえば、特定の行を除外する、派生値を計算する、項目の形式を変更する場合などです。

トリガーから明細項目が返されない場合はどうなりますか?

トリガーから空の明細項目配列が返された場合、アクションでは行は作成されません。フローは正常に完了しますが、連携先アプリのデータに明細項目のエントリーは含まれません。これに対応するには、アクションの前に条件ステップを追加し、フローを続行する前に明細項目配列が空でないことを確認します。

項目ごとの設定で、各項目の配列の長さが異なる場合はどうなりますか?

作成される行の総数は、マッピングされたすべての項目のうち、最も長い配列によって決まります。Nameが4つの値を持つ配列として、Quantityが3つの値を持つ配列としてマッピングされている場合、4行が作成されます。行4には名前が入りますが、Quantityはnullになります。これを避けるには、すべての項目配列の値の数を同じにしてください。

配列内にnull値を含めるとどうなりますか?

nullは、その位置の空の値として扱われます。たとえば、['New York', null, 'Chicago']と入力した場合、1行目にはNew York、2行目には空の値、3行目にはChicagoが入力されます。行自体は作成され、スキップされません。