1

新しいオブジェクトレコードを作成し、そのフィールドにデータを入力するSalesForceのフローがあります。vAddendumId次に、フローに変数を設定します。Id対応するVisualForceページコントローラでそれを参照できるようにしたいと思いますが、それを取得するのに問題があります。URL「get」を介してページからフローに変数を入れる方法は知っていますが、反対の方向を理解することはできません。

これが私が今持っているコードで、URL文字列にOpportunity Idfromを割り当てます。oid

VisualForceページ:

<apex:page Controller="AddendumEntryController" TabStyle="Addendum__c">
    <flow:interview name="Addendum_Entry" finishLocation="{!backToAddendum}" >
        <apex:param name="vOpportunityId" value="{!opptyId}"/>
    </flow:interview>
</apex:page>

コントローラ:

public with sharing class AddendumEntryController {

    public ID getoppId = System.currentPagereference().getParameters().get('oid');
    public Flow.Interview.Addendum_Entry AddendumEntryFlow{get;set;}

    public String getOpptyId(){ return getoppId; }

    public PageReference getBackToAddendum(){

        PageReference send = new PageReference('/' + getaddendumId);
        send.setRedirect(true);
        return send;

    }

}

私の最終目標は、フローが完了したときに、新しく作成されたオブジェクトレコードにユーザーを送信することです。つまりgetaddendumId、フローからIDを入力する必要があります。

助けてくれてありがとう!

編集-追加

私はさらにいくつかのことを試しましたが、そのうちの1つは有望であるように見えますが、それでもエラーが発生します。変数をに設定してみましたAddendumEntryFlow.vAddendumId。これにより、nullオブジェクトの逆参照に関するエラーが発生しました。これはvAddendumId、フローの後半まで設定されていないためだと思いますが、確信が持てません。

public Flow.Interview.Addendum_Entry AddendumEntry{get;set;}
public ID getaddendumId = AddendumEntry.vAddendumId;
4

1 に答える 1

4

かなりのいじりをした後、私は解決策を考え出しました。interviewページのコンテンツから値を取得できるように、ページに属性を設定する必要がありました。次に、私がする必要があるのは、から値を引き出すことだけでしたAddendumEntry.vAddendumId

最終コード

AddendumEntry.page

<apex:page Controller="AddendumEntryController" TabStyle="Addendum__c">
    <flow:interview name="Addendum_Entry" interview="{!AddendumEntry}" finishLocation="{!backToAddendum}" >
        <apex:param name="vOpportunityId" value="{!opptyId}"/>
    </flow:interview>
</apex:page>

AddendumEntryController.cls

public with sharing class AddendumEntryController {

    public ID getoppId = System.currentPagereference().getParameters().get('oid');
    public Flow.Interview.Addendum_Entry AddendumEntry{get;set;}

    public String getOpptyId(){ return getoppId; }
    public ID returnId = getoppId;

    public PageReference getBackToAddendum(){

        if(AddendumEntry != null) returnId = AddendumEntry.vAddendumId;

        PageReference send = new PageReference('/' + returnId);
        send.setRedirect(true);
        return send;

    }

}

それは実際にはかなり簡単であることが判明しました。以前の試みが失敗した唯一の理由はinterview="{!AddendumEntry}"、ページを設定していなかったためです。

于 2012-04-05T19:17:15.823 に答える