bool retrieveWebServicesInfo(IWorkUnit *workunit, HqlLookupContext & ctx) { Owned<IWUWebServicesInfo> webServicesInfo = workunit->updateWebServicesInfo(false); // if it doesn't exist - don't do anything if (!webServicesInfo) return false; SCMStringBuffer moduleName, attributeName, defaultName; webServicesInfo->getModuleName(moduleName); webServicesInfo->getAttributeName(attributeName); webServicesInfo->getDefaultName(defaultName); StringBuffer fullName; fullName.append(moduleName).append(".").append(attributeName); WebServicesExtractor extractor(ctx); extractor.addRootReference(fullName); if (defaultName.length()) { const char *lastsep = strrchr(defaultName.str(), '/'); if (lastsep) { StringBuffer mappedDefault; mappedDefault.append(defaultName.str()).replace('/', '.'); extractor.addRootReference(mappedDefault); } } extractor.extractWebServiceInfo(); StringPairArray results; extractor.getResults(results); ForEachItemIn(i, results) { StringPairItem & cur = results.item(i); webServicesInfo->setInfo(cur.first, cur.second); }