Skip to content

Instantly share code, notes, and snippets.

@mokamoto
Created December 17, 2013 22:05
Show Gist options
  • Save mokamoto/8013436 to your computer and use it in GitHub Desktop.
Save mokamoto/8013436 to your computer and use it in GitHub Desktop.
/**
* 請求書データを処理する為のユーティリティクラスです。
*/
global class InvoiceUtilities {
/**
* 品目に対して、番号を振り直します。
*
* @return 処理に対する成功、失敗等のメッセージを返却します
*/
webservice 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