J’ai un problème avec le script front ci-dessous, je n’arrive pas à accéder à un objet métier.
J’ai simplifié au maximum pour identifier le problème mais je ne trouve pas.
function pushFirstNodes()
{
var appSearch = app.getBusinessObject("RciAppSub"), listAppSearch = [];
console.log(appSearch);
appSearch.search(function(listAppSearch) {
//Je n'atteins pas cette partie du code
},{
});
}
Par contre si je remplace RciAppSub par d’autres objets, le search les atteint bien.
Je ne vois pas de différence entre les paramétrages de mes objets métier.
Sauriez vous me donner des pistes pour identifier mon problème ?
Je n’ai pas d’erreur dans la console ni dans l’onglet network.
Ma déclaration de app : app = $ui.getAjax() (avec un autre objet cela fonctionne)
J’arrive à lister l’objet via la UI et aussi à le fetcher en code Java, mon user a bien les droits.
Dans les logs SQL je vois que la table rci_app_sub n’est pas requêtée, alors qu’avec un autre objet métier je vois passer la requête.
C’est au niveau du bundle UI ligne 53 que je n’ai pas le même comportement if(a)xhr.onreadystatechange=function(){self._callResponse(xhr,callback,scope);};xhr.send(p);if(!a)return this._callResponse(xhr,callback,scope);}
Avec un autre objet le traitement retourne dans ma fonction de search, mais avec RciAppSub je reste dans le code du bundle, puis mon traitement s’arrête.
Je vais essayer avec le callback !
[EDIT] Je ne passe pas dans le callback non plus …
Merci beaucoup je n’aurais jamais trouvé toute seule.
Dans la réponse de la requête XHR j’ai une erreur “Filter required”.
C’est un champ qui était paramétré en Required search : required, quand je change en Non required mon search fonctionne.
Ok la réponse d’erreur semble correcte (le MIME type de la réponse est bien application/json ?). Elle devrait donc être catchée par le handler d’erreur passé en option.
Avant qu’on investigue ça de plus près pourriez vous vous mettre à jour car il y a eu qques corrections depuis votre révision de fin Août. Je ne pense pas que ça change quelque chose sur ce point particulier mais on ne sait jamais.
On va faire le test, il y a peut être un pb quand ça remonte un tableau d’erreur au front (messages), la UI s’attend peut être à une seule erreur (message) pour un “search”.
Tout va bien, ce sont les paramètres d’appel qui ne sont pas bon dans ma réponse, le 2eme argument ce sont les filtres/tris, les autres paramètres sont ensuite :
Autres choses à savoir sur les filtres obligatoires :
le contrôle de filtre obligatoire n’est bloquant que pour les objets UI (comme l’instance the_ajax_xxx) sauf pour un panel (panel_ajax_xxx déjà filtré sur l’objet parent)
donc pour requêter sans contrainte en front = il faut utiliser une instance tmp, comme par exemple :
var appSearch = app.getBusinessObject("RciAppSub", "tmp_ajax_RciAppSub");