2017-08-12 3 views
1

Je veux comprendre l'utilité de isExecuted() dans la classe ViewObjectImpl de l'ADF. La documentation est très clairsemée (Indicates whether the row set has been executed or not) et je n'ai pas pu effacer mes doutes.À quoi sert isExecuted() dans la classe ADF ViewObjectImpl

Selon la documentation, seulement si l'ensemble de lignes est exécuté au moins une fois, il retournera vrai. Mais, je vois que dès que mon module d'application est créé, une vue Object qui est logée dans le module d'application, retourne "isExecuted() = true" .. Est-ce que c'est prévu ou y a-t-il un réglage à cause de cela? passe?

Répondre

2

Il est difficile de voir uniquement via le testeur de module d'application. Mais si vous avez des contrôles de données basés sur votre AM et les utilisez sur une interface (telle qu'une page d'interface utilisateur), vous pouvez vérifier le fonctionnement de la méthode isExecuted.

Sur l'interface utilisateur, vous pouvez créer une page de base qui ne se lie à aucun des contrôles de données sur la base du VO de - mais seulement à une simple opération AM que vous exposez via l'interface client de AM:

public void showIsExecuted() {   
    System.out.println("*******TestAppModuleImpl::showIsExecuted() DepartmentsView1:" + this.getDepartmentsView1().isExecuted()); 
    System.out.println("*******TestAppModuleImpl::showIsExecuted() DepartmentsView2:" + this.getDepartmentsView1().isExecuted()); 
    System.out.println("*******TestAppModuleImpl::showIsExecuted() ViewObj1:" + this.getViewObj1().isExecuted()); 
} 

sur une page de l'interface utilisateur (de view1.jsf), vous appelez seulement cette méthode sans utiliser des contrôles de données sur la base VO et votre sortie devrait montrer:

*******TestAppModuleImpl::showIsExecuted() DepartmentsView1:false 
*******TestAppModuleImpl::showIsExecuted() DepartmentsView2:false 
*******TestAppModuleImpl::showIsExecuted() ViewObj1:false 

maintenant, sur une autre page de l'interface utilisateur (par exemple view2. jsf), montre certaines des données d'un ou plusieurs des VO et aussi un bouton pour le cust om fonction AM. Après avoir exécuté la page, vous devriez obtenir le ci-dessous dans les journaux (comme prévu):

*******TestAppModuleImpl::showIsExecuted() DepartmentsView1:true 
*******TestAppModuleImpl::showIsExecuted() DepartmentsView2:true 
*******TestAppModuleImpl::showIsExecuted() ViewObj1:false 

Pour référence, c'est ce que la configuration de mon temps de conception (en JDeveloper 12.2.1.1) ressemble à: enter image description here

En outre, vous pouvez encore modifier les options sous AM -> Général -> Réglage -> Personnaliser le comportement d'instanciation à l'exécution