Report Engineを使用すると、以下の操作を実行できます。
実行パラメーターをセットしたURLを呼び出すことでReport Engineの操作を実行できます。URLは以下のような形式です。
https://oprarts020.[instance].visual.force.com/apex/reportEngine?[parameters]
ここで、[instance]は、Saleforce組織によって異なる文字列で、ログインしたときのドメイン名から抽出できるものです。ご利用の組織で具体的にどのような文字列になるかは、Saleforceにログインして、OPROARTS Connectorの[OPROARTS]タブを開いたときのURLのドメイン名を確認してください。
[instance]を見付ける代わりに、Saleforce組織にログインしたときのドメイン名[domain]をそのまま使用して、
https://[domain]/apex/OPROARTS020__reportEngine?[parameters]
のような形式でも呼び出すことが可能な場合もあります。この場合は、以下のメソッドでReport EngineのURLを作成できます。
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; }
必要なパラメーターは以下のようにセットします。
public PageReference getQuotePdfUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'download'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
URLの具体例としては、[商談]オブジェクトから見積書テンプレート(Quote)を使ってPDFを作成してダウンロードする場合、以下のようになります([instance]がap0の場合)。
https://oprarts020.ap0.visual.force.com/apex/reportEngine?action=download&templateControllerId={!Opportunity.Id}&templateName=Quotation
実行パラメーターを引数として、Report EngineのApexクラスのメソッドを呼び出すことで操作を実行できます。Report EngineのApexクラスであるReportEngineControllerが、操作を呼び出すのに必要なメソッドを提供します。
例えば、PDFダウンロードは、以下のように呼び出すことができます。
public PageReference downloadPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.downloadPdf(parameterMap); return pr; } public PageReference downloadQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = downloadPdf(parameterMap); return pr; }
URL APIを利用すると、そのURLを開くだけで操作を実行できるので、そのURLのカスタムリンクやカスタムボタンを作成することで簡単に呼び出せるようになります。基本的な使用方法は以下の4ステップです。
以上が、コードやクラスを書かずに利用する基本的な使い方です。SalesforceやVisualforceの基本的な知識があるユーザーであれば、短時間でReport EngineのテンプレートをPDFに変換することができます。
コードやクラスを書かずに利用する方法は、特に、Apexクラスを直接作成できない、SalesforceのProfessional Editionで有用です。また、他のEditionであっても、コードを書く手間を省くことができるので、迅速にPDF出力のソリューションを実現したい場合にも活用できます。
Report Engineのすべての機能を使用するためには、カスタムApexクラスを作成し、動的パラメータを渡して各動作を呼び出す必要があります。少量のコードを記述することで、開発者は既存のアプリケーションとReport Engineを統合できます。また、新しいカスタムアプリケーションを簡単に作成することも可能です。
高度な使用方法は以下の5ステップです。
ApexクラスからReport Engineを呼び出すには、URL APIを使用する方法と、Apex APIを使用する方法があります。
・URL APIを使用
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; } public PageReference getQuotePdfUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'download'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
・Apex APIを使用
public PageReference downloadPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.downloadPdf(parameterMap); return pr; } public PageReference downloadQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = downloadPdf(parameterMap); return pr; }
本番組織で使用するには、Sandbox組織、または、開発組織でコードを作成し、テストしたものをパッケージングする必要があります。 そのとき、Report Engineは、作成したパッケージが依存するパッケージとして自動的に追加されます。パッケージングしたものを本番組織にデプロイしてください。
以下ではReport Engineで実行できる主な操作について説明します。
下記の手順に従って、操作を実行してください。
操作として、actionパラメーターに「download」を指定します。actionパラメーターの値が省略されると、既定の動作としてダウンロードが実行されます。
例) action=download
以下のいずれかでテンプレートを指定することができます。
templateIdパラメーターにVisualforceページのIDを指定します。
例) templateId=06670000000TnaV
templateNameパラメーターとtemplateNameSpaceパラメーターに、Visualforceページの名前と名前空間プレフィックスを指定します。
例) templateName=Quote&templateNamesapce=
VisualforceページのID、名前、名前空間プレフィックスは、[設定]から[開発]|[ページ]を開き、出力したいテンプレートのページを開くことで確認できます。
templateControllerIdパラメーターに文書に表示するオブジェクトのIDを指定します。通常のVisualforceページにオブジェクトの内容を表示させるときに指定する「id」パラメータのようなものです。指定できるオブジェクトIDは、使用するテンプレート(Visualforceページ)のStandardControllerに設定されているオブジェクトのものです。
例) templateControllerId=0067000000H4wnK
Report Engineは、文書出力対象者の指定として、[ユーザ]、[取引先責任者]、[リード]の項目値の差し込みに対応しています。複数対象者を指定することができて、その場合は各対象者のページが連なったひとつのPDFが生成されます。生成時にtargetIdsパラメーターに指定する値は、[ユーザ]、[取引先責任者]、[リード]のIDです。[ユーザ]のID、[取引先責任者]のID、[リード]のIDを混在させて指定することはできません。
例) targetIds=00390000001j2Kw,00390000001j2Kx
URLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=download&templateName=Quote&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw
URL APIを使用する場合のコード例は以下のようになります。
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; } public PageReference getQuotePdfUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'download'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
Apex APIを使用する場合のコード例は以下のようになります。
public PageReference downloadPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.downloadPdf(parameterMap); return pr; } public PageReference downloadQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); PageReference pr = downloadPdf(parameterMap); return pr; }
作成したPDFをオブジェクトの添付ファイルに保存することができます。ここではダウンロード操作を実行し、動作が確認できたものして、添付ファイルに保存の機能を追加する方法を説明します。
操作として、actionパラメーターに「attach」を指定します。
例) action=attach
attachmentNameパラメーターに添付ファイルに保存するときのファイル名を指定します。
例) attachmentName=Quote20150314
attachParentIdパラメーターにオブジェクトIDを指定します。
例) attachParentId=0067000000H4wnK
このパラメータが省略された場合、PDFはtemplateControllerIdで指定したレコードに添付されます。
複数のtemplateControllerIdを指定して、複数のPDFを生成し、各オブジェクトに別々のファイル名で添付することも可能です。
ひとつを指定する場合のtemplateControllerIdパラメーターに対して、一括リクエスト時のtemplateControllerIdパラメーターは、templateControllerId_Nのように指定します。Nは正の整数を表します。例えば、一度に3個のtemplateControllerIdを指定するには、パラメーター名をtemplateControllerId_1、templateControllerId_2、templateControllerId_3のようにしてリクエストしてください。
例) templateControllerId_1=0067000000H4wnK&templateControllerId_2=0067000000VmgR8&templateControllerId_3=00670000009tHJ6
一括リクエストにおけるtargetIdsの指定も、templateControllerIdと同様にtargetIds_Nのようなパラメーター名になります。Nは正の整数を表します。カンマ区切りの値で、ひとつのtemplateControllerIdに対して、複数のtargetIdsを指定できます。例えば、templateControllerId_1,templateControllerId_2でふたつのtemplateControllerIdを一括リクエストするときに、templateControllerId_1にはtargetIdをひとつ、templateControllerId_2にはtergetIdをふたつ指定したい場合は、以下のように指定してください。
例) targetIds_1=00390000001j2Kw&targetIds_2=00390000001j2Kw,00390000001j2Kx
注:templateControllerId_Nを指定せずにtergetIds_N(NはtemplateControllerIdと同じ番号)を指定しても無効になります。
attachParentIdパラメーターも同様に、attachParentId_1, attachParentId_2, attachParentId_3、……のように指定してください。これにより、templateControllerId_1はattachParentId_1に、templateControllerId_2はattachParentId_2に指定されたレコードにPDFを添付します。
例) attachParentId_1=00690000002Ctb7&attachParentId_2=0067000000VmgR8
注:templateControllerId_Nを指定せずattachParentId_N(NはtemplateControllerIdと同じ番号)を指定しても無効になります。
attachmentNameパラメータも同様です。attachmentName_1, attachmentName_2, attachmentName_3、……のように指定してください。これにより、templateControllerId_1はattachParentId_1に、templateControllerId_2はattachParentId_2に指定されたファイル名でPDFを添付します。
例) attchmentName_1=Quote20150314a&attchmentName_2=Quote20150314b
注:templateControllerId_Nを指定せずattachmentName_N(NはtemplateControllerIdと同じ番号)を指定しても無効になります。
URLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=attach&templateName=Quote&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw&attachParentId=0067000000H4wnK&attachmentName=Quote20150314
URL APIを使用する場合のコード例は以下のようになります。
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; } public PageReference getQuotePdfUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'attach'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); parameterMap.put('attachParentId', '066900000004PfH'); parameterMap.put('attachmentName', 'Quote20150314'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
Apex APIを使用する場合のコード例は以下のようになります。
public PageReference attachPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.attachPdf(parameterMap); return pr; } public PageReference downloadQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId_1', '0067000000H4wnK'); parameterMap.put('templateControllerId_2', '0067000000VmgR8'); parameterMap.put('targetIds_1', '00390000001j2Kw'); parameterMap.put('targetIds_2', '00390000001j2Kx'); parameterMap.put('attachParentId_1', '0067000000H4wnK'); parameterMap.put('attachParentId_2', '0067000000VmgR8'); parameterMap.put('attachmentName_1', 'Quote20150314a'); parameterMap.put('attachmentName_2', 'Quote20150314b'); PageReference pr = attachPdf(parameterMap); return pr; }
作成したPDFを添付ファイルとしてメールに添付してメールを送信することができます。targetIdsパラメーターを使用する方法と、emailToパラメーターを使用する方法の2種類があります。
この方法は生成したPDFを[ユーザ]か[取引先責任者]か[リード]へ送信する場合に使用します。各targetIdsの宛先が、それぞれのオブジェクトのデータを差し込んだPDFのコピーを受け取ります。この方法では、Salesforceのメールテンプレートを利用することが可能です。メールテンプレートはメールの件名と本文として機能します。メールテンプレートに差し込むオブジェクトのレコードは、whatIdパラメーターで指定します。
emailCcパラメーターでCc:のメールアドレスを指定できます。また、emailBccパラメーターでBcc:のメールアドレスを指定できます。これらを指定すると、指定されたすべての宛先が、targetIds毎に1通のメールを受け取ります。例えば、アクションURLに3個のtargetIdパラメーターと2個のemailCcパラメーターがあった場合、Report Engineにより送信されるメールは9通です。
emailSubjectパラメーターでメールの件名を指定できます。emailBodyパラメーターでメールの本文を指定できます。また、emailTemplateIdパラメーターでメールテンプレートを指定できます。emailTemplateIdパラメーターは、emailSubjectとemailBodyよりも優先されます。
この方法では生成したPDFをどの外部ユーザにでも配信できます。この場合にtargetIdsを指定すると、各targetIdsのデータの差し込んだすべてのページを持つひとつのPDFを生成します。
emailToパラメーターが使用されると、targetIdsに属する宛先は、メールを受信しません。代わりに、emailTo、emailCc、emailBccで指定された宛先はメールを1通受信します。例えば、3個のtargetId、1個のemailTo、2個のemailCcがあった場合、Report Engineにより送信されるメールは3通です。
emailSubjectパラメーターでメールの件名を指定できます。emailBodyパラメーターでメールの本文を指定できます。また、emailTemplateIdパラメーターでメールテンプレートを指定できます。emailTemplateIdパラメーターは、emailSubjectとemailBodyよりも優先されます。メールテンプレートを使用することも可能ですが、この場合、whatId、targetIdsの差し込み項目は使用できません。
操作として、actionパラメーターに「email」を指定します。
例) action=email
attachmentNameパラメーターにメールに添付するときのファイル名を指定します。省略された場合、添付ファイル名にはテンプレート名が使用されます。
例) attachmentName=Quote20150314
メールテンプレートを使用する場合、emailTemplateIdパラメーターにメールテンプレートのIDを指定してください。[設定]から[管理]|[コミュニケーションテンプレート]|[メールテンプレート]を開いて、使用するメールテンプレートの詳細ページを開き、IDを取得してください。
メールテンプレートを使用する場合、whatIdパラメーターにメールテンプレートに関連付けるオブジェクトのIDを指定してください。
メールテンプレートを使用しない場合、emailSubjectパラメーターでメールの件名を指定でき、emailBodyパラメーターでメールの本文を指定できます。
Ccメール、Bccメールを送信する場合は、emailCcパラメーター、emailBccパラメーターにメールアドレスを指定してください。
複数のtemplateControllerIdを指定して、複数のPDFを生成し、一度にそれぞれ異なる宛先の対象へ、添付ファイルとしてメール送信することが可能です。添付ファイルに保存と同様、パラメーター名のあとに、_N(Nは正の整数)を付加してください。
メールテンプレートを使用する場合のURLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=email&templateId=06690000000L1S6&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw,00390000001j2Kx&displayName=OPROARTS&emailTemplateId=00X700000012nWS&whatId=0067000000H4wnK
メールテンプレートを使用しない場合のURLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=email&templateId=06690000000L1S6&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw,00390000001j2Kx&displayName=OPROARTS&emailSubject=EmailSampleSubject&emailBody=EmailSampleBody&emailCc=
URL APIを使用する場合のコード例は以下のようになります。
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; } public PageReference getQuoteEmailUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'email'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); parameterMap.put('attachmentName', 'Quote20150314'); parameterMap.put('displayName', UserInfo.getFirstName() + ' ' + UserInfo.getLastName()); parameterMap.put('emailTemplateId', '00X700000012nWS'); parameterMap.put('whatId', '0067000000H4wnK'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
Apex APIを使用する場合のコード例は以下のようになります。
public PageReference emailPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.emailPdf(parameterMap); return pr; } public PageReference sendEmailQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('displayName', UserInfo.getFirstName() + ' ' + UserInfo.getLastName()); parameterMap.put('emailTemplateId', '00X700000012nWS'); List<ID> templateControllerIds = getTemplateControllerIds(); List<ID> targetIds = getTargetIds(); List<ID> whatIds = getTargetIds(); List<String> attachmentNames = getAttachmentNames(); for (integer i = 0, ni = templateControllerIds.size(); i < ni; ++i) { parameterMap.put('templateControllerId_' + (i + 1), templateControllerIds[i]); parameterMap.put('targetIds_' + (i + 1), targetIds[i]); parameterMap.put('whatIds_' + (i + 1), whatIds[i]); parameterMap.put('attachmentNames_' + (i + 1), attachmentNames[i]); } PageReference pr = emailPdf(parameterMap); return pr; }
作成したPDFを添付ファイルとしてメールに添付してメールを送信することができるので、メールに添付されたPDFをFax送信するインターネットFaxサービスと連携すれば、Fax送信も実行できます。targetIdsパラメーターを使用する方法と、faxToパラメーターを使用する方法の2種類があります。Faxを使用するには、いずれかのインターネットFaxサービスに加入しなければなりません。
この方法は生成したPDFを[ユーザ]か[取引先責任者]か[リード]へ送信する場合に使用します。各targetIdsの宛先が、それぞれのオブジェクトのデータを差し込んだPDFのコピーを受け取ります。この方法では、Salesforceのメールテンプレートを利用することが可能です。メールテンプレートはメールの件名と本文として機能します。メールテンプレートに差し込むオブジェクトのレコードは、whatIdパラメーターで指定します。
この方法では生成したPDFをどの外部ユーザにでも配信できます。この場合にtargetIdsを指定すると、各targetIdsのデータの差し込んだすべてのページを持つひとつのPDFを生成します。faxToパラメーターが使用されると、targetIdsに属する宛先は、Faxを受信しません。代わりに、faxToで指定された宛先がFaxを1通受信します。例えば、3個のtargetId、1個のemailTo、2個のemailCcがあった場合、Report Engineにより送信されるFaxは3通です。
いくつかのFax送信するインターネットFaxサービスは、メールの件名を指定するとき、定められた構文に従う必要があります。メール件名の設定に関する詳しい情報については、それぞれのインターネットFaxサービスのガイドを参照してください。
メールテンプレートの本文によって、静的なFaxカバーページを使用することが可能です。しかし、この場合whatIdとtargetIdsの差し込み用フィールドは使用できません。これによってテキストテンプレートによる静的コンテンツ、またはカスタムテンプレートによりフォーマットされた静的HTMLしか使用できないことを意味します。
操作として、パラメーターに「fax」を指定します。
例) action=fax
faxServiceパラメーターの指定は必須です。インターネットFaxサービスが宛先メールアドレスにFax番号を指定するタイプの場合、Fax番号を挿入するルールを指定します。
例)faxService=#213{faxNumber}@olink.ne.jp
複数のtemplateControllerIdを指定して、複数のPDFを生成し、一度にそれぞれ異なる宛先の対象へFax送信することが可能です。添付ファイルに保存と同様、パラメーター名のあとに、_N(Nは正の整数)を付加してください。
メールテンプレートを使用する場合のURLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=fax&templateId=06690000000L1S6&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw,00390000001j2Kx&emailTemplateId=00X700000012nWS&faxService=%23213%7BfaxNumber%7D%40olink.ne.jp
メールテンプレートを使用しない場合のURLの例は、以下のようになります([instance]がap0の場合)。
https://oproarts020.ap0.visual.force.com/apex/reportEngine?action=fax&templateId=06690000000L1S6&templateControllerId=0067000000H4wnK&targetIds=00390000001j2Kw,00390000001j2Kx&emailSubject=EmailSampleSubject&emailBody=EmailSampleBody&faxService=%23213%7BfaxNumber%7D%40olink.ne.jp
URL APIを使用する場合のコード例は以下のようになります。
public PageReference toReportEngineUrl(Map<String, String> parameterMap) { String host = ApexPages.CurrentPage().getHeaders().get('Host'); String url = 'https://' + host + '/apex/OPROARTS020__reportEngine'; PageReference pr = new PageReference(url); pr.getParameters().putAll(parameterMap); return pr; } public PageReference getQuoteFaxUrl() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('action', 'fax'); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('templateControllerId', '0067000000H4wnK'); parameterMap.put('targetIds', '00390000001j2Kw'); parameterMap.put('emailTemplateId', '00X700000012nWS'); parameterMap.put('faxService', '#213{faxNumber}@olink.ne.jp'); PageReference pr = toReportEngineUrl(parameterMap); return pr; }
Apex APIを使用する場合のコード例は以下のようになります。
public PageReference faxPdf(Map<String, String> parameterMap) { OPROARTS020.ReportEngineController engine = new OPROARTS020.ReportEngineController(); PageReference pr = engine.faxPdf(parameterMap); return pr; } public PageReference sendFaxQuotePdf() { Map<String, String> parameterMap = new Map<String, String>(); parameterMap.put('templateId', '066900000004PfH'); parameterMap.put('faxService', '#213{faxNumber}@olink.ne.jp'); parameterMap.put('emailTemplateId', '00X70000001ZZHQ'); parameterMap.put('emailSubject', 'Quote20150314a'); List<ID> templateControllerIds = getTemplateControllerIds(); List<String> faxNumbers = getFaxNumbers(); for (integer i = 0, ni = templateControllerIds.size(); i < ni; ++i) { parameterMap.put('templateControllerId_' + (i + 1), templateControllerIds[i]); parameterMap.put('faxTo_' + (i + 1), faxNumbers[i]); } PageReference pr = faxPdf(parameterMap); return pr; }
NTTコミュニケーションズのBizFAX等、認証情報を指定する等のためにメール本文を使うインターネットFaxサービスでは注意が必要です。emailBodyパラメーターでメールの本文を指定した場合、HTMLメールとなってメールが送信されるため、認証情報が受け付けられないことがあります。その場合は、emailBodyパラメーターを使用せず、emailTemplateIdパラメーターでメールテンプレートを指定して使用してください。[設定]から[管理]|[コミュニケーションテンプレート]|[メールテンプレート]を開いて、[新規テンプレート]ボタンをクリックし、[作成するメールテンプレートの種別]として[テキスト]を選択して、メール内容に認証情報を指定したメールテンプレートを作成し、そのメールテンプレートをemailTemplateIdパラメーターで指定するようにしてください。
BizFAXの場合のメール内容例:
#userid=9998887777 #passwd=ABCDEFGHIJKLMN
以上。
疑問・質問などございましたら、サポートページよりお問い合わせください。
OPROARTS Connector / Report Engine
Copyright: © 2010-2016 OPRO Co., Ltd. All rights reserved.