Groovyスクリプトの使用のベスト・プラクティス
開始する前に、Groovyスクリプトの最適なパフォーマンスを得るための次のベスト・プラクティスと推奨事項に注意してください:
-
メイン・ラインに公開する前に、必ずサンドボックスを使用して変更をテストしてください。
-
サンドボックスを公開するときは、警告を確認し、無視しないでください。 サンドボックスを公開すると、警告によってエラーが発生する可能性があります。
-
setAttribute()
を使用して属性値を設定する場合は常に、if
文を追加して終了条件を確認します。 それ以外の場合は、「事後しきい値制限に達した」と表示されます。 まだ転記されていないエンティティがあります。」エラー。たとえば:
if(AttributeA != valueA) setAttribute('AttributeA', valueA)
-
setAttributeValues()
を使用して、コンポジット・キーまたは関連する属性値を設定します。 たとえば:setAttributeValues(['ReasonWonLostCode','ReasonWonLostCodeSetId'], [xxx,0]) setAttributeValues(['DecisionLevelCode','DecisionLevelCodeSetId'], [xxx,0])
-
NameValuePairsを使用して行を作成します。 たとえば、商談オブジェクトから商談パートナ行を作成する場合は、次に示すようにIDを割り当てることができます:
def nvp = new oracle.jbo.NameValuePairs() nvp.setAttribute("OptyId", OpId); nvp.setAttribute("PartOrgPartyId", partOrgId); nvp.setAttribute("RevnId", primaryRevnId); def OptyPartner = getAttribute('RevenuePartnerPrimary') def vOP = OptyPartner.createAndInitRow(nvp)
-
Groovyロジックの「名前」フィールドのかわりに、IDフィールドを使用します。
たとえば、SalesStageが「名前」フィールドの場合、表示目的でのみ使用する必要があります。 ユーザー・セッション言語でわかりやすい名前を返します。 かわりに、SalesStageIdを使用します。
別の例として、動的選択リストBuilding_cを使用しているとします。名前isAttributeChanged('Building_c')のかわりにisAttributeChanged('Building_Id_c')を使用します。
-
標準ロジックを上書きする必要がないかぎり、After*トリガーのかわりにBefore*トリガーを使用するとパフォーマンスが向上します。