2012-05-25 2 views
-1


Я пробовал много сделать, но я не знаю, как заставить его работать. Это обычный вопрос программирования не о загадке Apex/Salesforce.Apex - scope - variables

Сценарий: У меня есть объект соединения с двумя родительскими объектами. Например, есть 3 объекта Родитель 1, Родитель 2 и Соединение. Когда есть только один объект соединения, связанный с Parent1, я пытаюсь получить идентификатор родителя (это работает через SOQL для меня), но когда этот единственный объект One Junction удаляется; Я пытаюсь сохранить доступ к идентификатору родителя1, когда был 1 объект Junction. Примечание: все это происходит внутри цикла for, который запускается каждый раз, когда вы добавляете или удаляете объект соединения!

Что я пыталась: Pseudocode!

Public static String parent1Id; 

for (everytime a junction object is added/deleted) 
{ 

    if (listOfJunctionObjects.size() == 1) 
    { 
     parent1Id = [Do a SOQL to get the Id from the junction object]; 
    } 

    if (listOfJunctionObjects.size() == 0) 
    { 
     //CANNOT ACCESS THE parent1Id here 
     //The if statements get executed at different times everytime 
     the for loop runs 
    } 
} 

То, что я считаю правильным: Я думаю, что parent1Id должен быть сохранен в какой-то постоянной или что-то так, что каждый раз, когда после выполнения первого, если оператор значение parent1Id это то же самое!

Пожалуйста, помогите, мне очень нужна ваша помощь.

+1

Чтобы уточнить, вы устанавливаете переменную класса (parent1Id), и вы не можете получить к ней доступ позже? Ожидаете ли вы, что он продлится над отдельными потоками исполнения? Если вы могли бы опубликовать полный файл .cls, который облегчил бы поиск проблемы. –

ответ

0

Я добавил поле в Parent1, где я сохранил идентификатор родителя 1, а затем обратился к нему через несколько итераций.