Zoho WriterのマージAPI使用時のマージフィールドIDとサブフォームフィールドの管理

Zoho WriterのマージAPI使用時のマージフィールドIDとサブフォームフィールドの管理

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

1. 差し込み操作中に差し込み項目の値が正しく差し込まれない、または置換されないのはなぜですか?

差し込み値が正しく置換されない、または出力文書に表示されない場合、差し込み用の入力データで値が正しい項目IDに渡されていない可能性があります。この問題を回避するには、正確な項目IDを使用してください。

2. 差し込み項目のIDを取得し、差し込みAPIで使用する方法

方法A:Writerの操作画面から項目IDを取得する
  1. 差し込みテンプレートを開き、右パネルの[自動化]タブに移動します。
  2. 差し込みパネルで[項目の管理]をクリックし、[項目IDを表示]を選択して、正確な項目IDを取得します。
  3. サブフォームの項目IDを取得する手順は次のとおりです。
    • サブフォーム]タブに移動します。
    • サブフォームを展開し、[項目IDを表示]をクリックして、項目IDを表示し、コピーします。


方法B:APIを使用して項目IDを取得する

項目IDは、WriterのREST APIまたはDelugeタスクを使用して、プログラムから取得することもできます。

3. PDFテンプレートでサブフォームまたは複数行項目の値が正しく差し込まれないのはなぜですか?

PDFテンプレートの繰り返し領域内でサブフォームの値を表示または置換する処理には、既知の技術的な制限があります。現在、この制限の解消と、PDFテンプレートの繰り返し領域への差し込みに関するユーザー体験の向上に取り組んでいます。

回避策データを正しく反映するには、テンプレートにテキストボックスを挿入し、その内側に繰り返しの表または領域を配置します。これにより、データが期待どおりに差し込まれます。



差し込みテンプレートでは、サブフォームや関連リスト項目は特殊な差し込み項目であり、正しく差し込むには適切な書式で渡す必要があります。

サブフォームを関連付ける手順:
  1. Writerの差し込みテンプレートにサブフォームの表または繰り返し領域を挿入するには、[繰り返し]ボタンを[高度な差し込み項目]から使用します。
  2. 前述の手順(質問2)に従って、サブフォームまたは関連リスト項目の差し込み項目IDを取得し、次の書式を使用して入力JSONデータ内の値を関連付けます。
例1:API経由でサブフォームまたは関連リスト項目を含む入力データを差し込むためのサンプルコード

{

'data': [

{

'customer_name': 'Amelia',

'customer_address': '13th Street, USA',

'customer_email_address': 'amelia@zylker.com',

'customer_phone_number': '9876543210',

'invoice_number': '123456',

'items': [

{

'items.item_code': '123',

'items.item_name': 'Fastrack Revoltt FS1',

'items.item_description': 'Specifications',

'items.item_replacement': 'Yes'

},

{

'items.item_code': '1278',

'items.item_name': 'Samsung Refridgerator',

'items.item_description': 'Specifications',

'items.item_replacement': 'Yes'

}

]

},

{
'customer_name': 'John',
'customer_address': '15th Street, India',
....
}

]

}
例2:Delugeでサブフォームまたは関連リスト項目を関連付けるサンプルコード

差し込みデータに、itemsrepairsなど2つのサブフォームが含まれる場合は、次の方法を使用します。
  • 連携先からデータを取得するには、getRecordsなどのAPIを使用します(例:CRM、Recruit、People)。
  • 上記のように、メイン項目とサブフォーム項目の両方の値を関連付けます。

dataMap = Map();

recordsData.put('customer_name': 'Amelia');

recordsData.put('customer_address': '13th Street USA');

recordsData.put('customer_email_address': 'amelia@zylker.com');

recordsData.put('customer_phone_number': '9876543210');

recordsData.put('invoice_number': '123456');

 

//Subform1

itemsList = list();

itemMap = Map();

itemmap.put('items.item_code': '123');

itemmap.put('items.item_name': 'Fastrack Revoltt FS1');

itemmap.put( 'items.item_description': '<p><b>Specifications</b></p>');

itemmap.put('items.item_replacement': 'Yes');

itemsList.add(itemmap);

 

//subform2

repairList = list();

repairDetails = Map();

repairDetails.put('Repairs.Service_code', 'R100');

repairDetails.put('Repairs.Description', 'Faulty belt');

repairDetails.put('Repairs.Quantity', '5');

repairDetails.put('Repairs.Price', 10000);

repairList.add(repairDetails);

 

recordsData.put('items', itemsList);

recordsData.put('Repairs', repairList)

 

mergedata = Map();

mergedata.put('merge_data', {'data': recordsData});

//pass this merge data to respective merge api like mentioned below

 

zoho.writer.mergeAndSend('eb4kob4cf65bb6d074af7a7de21e561119eb9', 'pdf', 'amelia@zylker.com', mergedata, 'writer_name');

詳細については、CRM連携ガイドを参照してください。

Notesすべての差し込み項目タイプに値を渡す方法については、差し込み項目の総合ドキュメントを参照してください。