if(deep_level<0) deep_level=0;
/**/
/* get foreign prop for related prop */
/* should be in meta_prop as method: */
__SQL_GET_STRING( prop_name, "
SELECT P.prop_foreign_prop FROM co_sys_meta_prop P
WHERE P.area='%s' AND P.class_name='%s' AND P.prop_name='%s' AND P.deleted=0" ,
par_area, related_class, related_prop)
@co_call(par_area,par_class,"getProp",par_area=>par_area,par_class=>par_class,par_id=>par_id,prop_name=>prop_name);
__GET_RETURNED_STRING(prop_value)
/**/
coa_AppendElement(cnx, filter_class_names, ap_psprintf(p, "%s", related_class));
coa_AppendElement(cnx, filter_prop_names, ap_psprintf(p, "%s", related_prop));
coa_AppendElement(cnx, filter_operators, ap_psprintf(p, "="));
coa_AppendElement(cnx, filter_values, ap_psprintf(p, "%s", prop_value));
if (dynamic_prop)
{
coa_AppendElement(cnx, filter_class_names, ap_psprintf(p, "%s", related_class));
coa_AppendElement(cnx, filter_prop_names, ap_psprintf(p, "%s", dynamic_prop));
coa_AppendElement(cnx, filter_operators, ap_psprintf(p, "="));
coa_AppendElement(cnx, filter_values, ap_psprintf(p, "%s", par_class));
}
// HERE WE SHOULD CHECK THE LENGTH OF callback
@co_call(par_area,par_class,"getSchemaX",par_area=>par_area,par_class=>related_class,par_id=>-1,callback=>'coa_GetElement(cnx,callbacks,0)', deep_level=>deep_level);
// READING VALUE FOR CURRENT OBJECT
__GET_RETURNED_RECORDSET(corec)
//corec = cou_getReturnValue(cnx, CO_RECORDSET, &err);
__ASSERT(err==0, "Error getting recordset value")
NProps = cor_GetTupleCount(cnx, corec);
for(i=0; i<NProps; i++)
{
coa_AppendElement(cnx, get_class_names, ap_psprintf(p, related_class));
coa_AppendElement(cnx, get_prop_names, cor_GetCopyOfValueByName(cnx, corec, i, "get_prop_name"));
}
@co_call(par_area,related_class,"selectX",par_area=>par_area,par_class=>related_class,par_id=>-1,callback=>'coa_GetElement(cnx,callbacks, 1)', get_class_names=>get_class_names,get_prop_names=>get_prop_names, filter_class_names=>filter_class_names,filter_prop_names=>filter_prop_names, filter_operators=>filter_operators, filter_values=>filter_values);
//GETTING RELATED CLASSES
//co_call(par_area,par_class,"getRelatedClasses",par_area=>par_area,par_class=>par_class,par_id=>par_id,callback=>'coa_GetElement(cnx,callbacks,1)');