2009年12月4日金曜日

[SFDC]:VisualForceの読込時にデータをいじりたい

普通に<apex:repeat value="{!awsResult}" var="res">ようなソースを
かいて、getAwsResultメソッド内で、updateやinsertを行うと以下の
エラーメッセージが出ました。

DML currently not allowed

色々調べた結果、<apex:page>のactionにinitを書いてあげて
コントローラにinitクラスを書いてその中で実行したら出来た。

VF
<apex:page action="{!init}" controller="hogehoge" showHeader="true" cache="true">

Apex
public void init() {
 Account[] acc = [select id,Description from Account where Name = 'hogehoge会社'];
 System.debug('■■■■:' + acc);
 for (Account a : acc) {
  a.Description = a.Description + '@Oh!Yes!!';
 }
 update acc; 
}

※アクセッサでは無理なのかな??
 これが正しいかどうかは不明

0 件のコメント: