J'essaye d'utiliser structFindKey pour créer une structure "org" à partir d'une requête.en utilisant structFindKey et son chemin pour ajouter un nouveau noeud avec coldfusion
Je commence par une requête qui ressemble à ceci.
de ce que je suis en train de construire une structure qui représente la structure organisationnelle réelle que je voudrais ressembler à ceci:
Je commence avec mon request.hierarchyStruct
qui ressemble à ceci :
ici est le code jusqu'à présent
for(row in getCorpUserHierarchy){
insertIntoHierachy(row);
}
function insertIntoHierachy(thisRow){
var thisKey = thisRow.parentGroupId;
var newChild = {
"level" = thisRow.ThisLevel
, "levelName" = thisRow.levelName
, "groupName" = thisRow.groupName
, "members" = []
};
keyResult = structFindKey(request.hierarchyStruct, thisKey, "one");
if(arrayLen(keyResult) > 0){
writeDump(keyResult);
newPath = 'request.hierarchyStruct' & keyResult[1].path;
foundKey = structGet(newPath);
foundKey[thisRow.groupId] = newChild;
}
}
Je suis en mesure de « trouver la clé » qui décharge le résultat clé:
Mais quand la première ligne « Région jasmins » trouve et essayer d'ajouter le « newChild » à ce que je reçois un erreur
J'ai essayé une variété de combinaisons avec le chemin comprenant
var newPath = keyResult[1].path;
var fullPath = 'request.hierarchyStruct'
var pathArray = listToArray(newPath,'.');
for(i in pathArray){
fullPath = fullpath & "." & i ;
}
Je ne sais pas si ce sujet s beaucoup, mais je suis en utilisant la dernière version de LUCEE pas coldfusion adobe.
Ceci est la première fois en utilisant structFindKey
et path
quelqu'un peut-il faire la lumière sur ce ???
Vous avez peut-être raison. U a changé la clé pour la structure de numeric (qui était l'ID réel pour les groupes) à 'a' & groupId et cela a fonctionné. Evidemment ce n'est pas aussi pratique et je devrai enlever la lettre si je veux l'utiliser (je viens de rajouter le groupe Id à la struct donc je n'ai pas à le faire) Je trouverai un monent aujourd'hui pour signaler ce bug, Merci @ Miguel-F – Lance