Created
December 17, 2013 18:54
-
-
Save mokamoto/8010562 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 請求書データを処理する為のユーティリティクラスです。 | |
*/ | |
public class InvoiceUtilities { | |
/** | |
* 品目に対して、番号を振り直します。 | |
* | |
* @return 処理に対する成功、失敗等のメッセージを返却します | |
*/ | |
public static String renumberLineItems(String invoiceName) { | |
// 対象となる請求書オブジェクトに関連する品目データを、品目付きで取得します。 | |
Invoice__c invoice = | |
[SELECT i.Name, (SELECT Name FROM Line_Items__r ORDER BY Name) | |
FROM Invoice__c i | |
WHERE i.Name = :invoiceName LIMIT 1]; | |
// 品目データを軸にループし、採番を行います。 | |
Integer i = 1; | |
for (Line_Item__c item : invoice.Line_Items__r) { | |
item.Name = String.valueOf(i); | |
System.debug(item.Name); | |
i++; | |
} | |
// 品目を一つのupdate文ですべて更新します。問題が発生した場合には自動的にロールバックされます。 | |
// ここでは、エラーメッセージの内容を例外時の戻り値にも利用しています。 | |
try { | |
Database.update(invoice.Line_Items__r); | |
} | |
catch (DmlException e) { | |
return e.getMessage(); | |
} | |
// 成功時には成功メッセージを返却します。 | |
return '品目の再採番が完了しました'; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment