2017-07-17 11 views
0

私はFreemarkerを初めて使用しています。どうやら、それはNetSuiteで選択したテンプレートモデルです。私は月の最後の営業日を含むテキスト行を表示するために電子メールテンプレートを更新することが任されています。Freemarker Date月の最終営業日を表示するフィールド

私は見つけたドキュメントにフィールドを表示する方法を見ています。ここに私のコードがあります。

私の質問は、ここではわからないので、月の最終営業日を表示する方法ですか?

追加されました:私は、Freemarkerの日付操作用のアドインは、(別のスレッドhereに基づいて)ここでいくつかの援助の可能性があることを発見しました。問題は正しいロジックをダウンして日付を表示しています。ここでは特定の日付から18日差し引くの例である:

${(mydate?long - 18 * 86400000)?number_to_date?string("yyyy-MM-dd")} 

だから私は、私はこれを行うにしようとしていますが、私はちょうどそれのまわりで私の頭をラップすることはできません何をすべきかの方法があります知っています。

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

ここでは、テンプレートの呼び出し方法に応じていくつかのアプローチがあります。レコード(トランザクション)でトリガされた標準テンプレートとしてこれを使用している場合は、月の値の最終営業日をレコードのカスタムフィールドに取得する必要があります。あなたは、開始日と終了日と最後の営業日を持つ月のカスタムレコードを作成することでそれを行うことができます。そして、あなたはあなたの最終営業日のフィールド カスタムボディ日付フィールド作る 非ストアド保存した検索

保存した検索は、日付の月の最終営業日をルックアップするために今日の日付や取引からいくつかの日付のいずれかを使用していますから、債務不履行 を。もちろん、トランザクションの日付に基づいている場合は、スクリプトで値を設定することができます。

スクリプトで設定できる場合でも、カスタムレコードソリューションは引き続き動作します。私が過去に行ったことは、口座の場所(米国またはオーストラリア)と法定祝日に基づいて営業日の計算を行うことができる機能を構築することです。

どちらの方法も、時折更新する必要があります。この機能は、今後の最終営業日の生成にも使用できます。

営業日計算のいくつかの例が私のgithub repo for Netsuite thingsにあります。 calculateShippingDatesおよびcalcNSWBusinessDaysは、営業日の計算期間の生成の例です。 calculateShippingDatesには、実際には月計算の最終営業日があります。

HTH

+0

テンプレートは、トランザクションのワークフローによってトリガされる標準的な電子メールです。つまり、本質的には、その価値を満たすために電子メールテンプレートに結び付けられた簡単なスクリプトがこれを行う方法です。私はそれをする方法がわからないので、もう少し掘り下げなければならないでしょう。 javascript私は仕事をすることができると思うが、スクリプトを電子メールテンプレートとFreeMarkerフィールドに結びつけることは、今私を超えている。 ご返信ありがとうございます。 – Finnster

+0

標準テンプレートを作成するだけの場合は、カスタムレコードアプローチを使用します。昨営業日の5年間をcsvインポートで簡単に記入し、カスタムフィールドとカスタム検索の設定方法についてはSuiteAnswersのトピック61574を参照してください。 – bknights

+0

ありがとうございました。しかし、メンテナンスがほぼゼロになるようにスクリプトを作成する必要があると思うので、CSVファイルとレコードを組み合わせるのが最良の方法ではないかもしれません。私は心からあなたの助けに感謝します。ありがとうございました。 – Finnster

0

私はこれを理解しました。私はjavascriptが月の最後の日(リンクhere)を選んだ方法を示すスレッドを使用して、そのコードをFreemarkerに変換しました。 Freemarkerのコードスニペットは次のとおりです。

<#assign aMonth = .now?string("M")> 
<#assign aNewMonth = aMonth?number> 
<#assign aYear = .now?string("yyyy")> 
<#assign aDay = 0> 
<#assign aNewDate = "" + (aNewMonth + 1) + "/" + aDay + "/" + aYear> 
<#assign aLastDay = aNewDate?date> 
MONTH: ${aNewMonth}<br /> 
YEAR: ${aYear}<br /> 
${aLastDay?string.full}<br /> 

これは月の最後の日です。文字列が土曜日か日曜日かを判断し、その月の正しい最終営業日を印刷するかどうかを判断するロジックがあるなら、いくつか行います。

関連する問題