SearchEngine AddField mit as

lock
push_pin
done
Answered
1

Hi, 

Give it a way to rename the Fields value in the SearchEngine.

Here my code

%EJSCRIPT_START%<%
#setLanguageLevel 3;

SearchEngine se;
se.setDBDistinct(true);
se.bypassNetServer(true);
se.addField("person.person_id");
se.addField("person.firstname");
se.addField("person.lastname");
se.addField("person.(associate->person_id).person_id");
se.addField("person.(Email->person_id).email_id");
se.addField("person.(Email->person_id).email_address");
se.addCriteria("person.retired", "Equals" , "0", "And", 0);
se.addCriteria("person.(associate->person_id).deleted", "Equals" , "0", "And", 0);
se.addCriteria("person.(associate->person_id).name", "OperatorNotEquals" , "", "And", 0);
se.addOrder("person.lastname", true);

print(se.executeJSON());
%>%EJSCRIPT_END%

But I wan't person.person_id in my JSON but ID.

How can I do it ?

Thanks

12 Jan 2023 | 03:15 PM

All Replies (1)

Hi,

I would suggest that if you need full control of naming in JSON that you build your own structure using JSONBuilder.

#setLanguageLevel 3;

SearchEngine se;
se.setDBDistinct(true);
se.bypassNetServer(true);
se.addField("person.person_id");
se.addField("person.firstname");
se.addField("person.lastname");
se.addField("person.(associate->person_id).person_id");
se.addField("person.(Email->person_id).email_id");
se.addField("person.(Email->person_id).email_address");
se.addCriteria("person.retired", "Equals" , "0", "And", 0);
se.addCriteria("person.(associate->person_id).deleted", "Equals" , "0", "And", 0);
se.addCriteria("person.(associate->person_id).name", "OperatorNotEquals" , "", "And", 0);
se.addOrder("person.lastname", true);

//Build your own JSON
JSONBuilder jb;
jb.pushArray("");
for(se.select();!se.eof();se.next())
{
  jb.pushObject("");
  jb.addInteger("ID", se.getField(0).toInteger());
  jb.addString("Firstname", se.getField(1));
  jb.addString("Lastname", se.getField(2));
  jb.addInteger("AssocPersonID", se.getField(3).toInteger());
  jb.addInteger("EmailID", se.getField(4).toInteger());
  jb.addString("Email", se.getField(5));
  jb.popLevel();
}
jb.finalize();
print(jb.getString());
16 Jan 2023 | 06:40 AM

Add reply