開発中のForce.comアプリで、Apexコードから現在の会計年度を取得する必要が出てきました。
Apexの標準クラスからで簡単に取れるかと思いきや、そんなものはないらしいので自分で実装することにしました。
例えばエス・ジーはSalesforceの会計年度設定で「会計年度期首月」を12月、「会計年度の表記」を「期末月に合わせる」としているので、今日が2016年12月1日の場合、会計年度は2017年となります。これをApexコードで取得できるようにします。
↓のコードを参考に、期首月が1月のパターンを考慮しました。
Determine current fiscal year in Apex
【現在の会計年度を取得するApexコード】
Apexの標準クラスからで簡単に取れるかと思いきや、そんなものはないらしいので自分で実装することにしました。
例えばエス・ジーはSalesforceの会計年度設定で「会計年度期首月」を12月、「会計年度の表記」を「期末月に合わせる」としているので、今日が2016年12月1日の場合、会計年度は2017年となります。これをApexコードで取得できるようにします。
↓のコードを参考に、期首月が1月のパターンを考慮しました。
Determine current fiscal year in Apex
【現在の会計年度を取得するApexコード】
Organization org = [SELECT FiscalYearStartMonth, UsesStartDateAsFiscalYearName FROM Organization WHERE id = :Userinfo.getOrganizationId()]; Integer currentFiscalYear; Date today = Date.today(); if(org.FiscalYearStartMonth != 1) { if (today.month() >= org.FiscalYearStartMonth) { if (org.UsesStartDateAsFiscalYearName) { currentFiscalYear = today.year(); } else { currentFiscalYear = today.year() + 1; } } else { if (org.UsesStartDateAsFiscalYearName) { currentFiscalYear = today.year() - 1; } else { currentFiscalYear = today.year(); } } } else { currentFiscalYear = today.year(); }意外とニーズはあると思うので、その内Organizationクラスとかに追加されないですかね~。
0 件のコメント:
コメントを投稿