[progress Communities] [progress Openedge Abl] Forum Post: Jsdo: Cannot Pass Parameter From...

  • Thread starter Thread starter pisiith
  • Start date Start date
Status
Not open for further replies.
P

pisiith

Guest
hi from the following code i have to call to get data from these 2 function in sequence once i get the lvcDefaultSite from getDefalutSite function I need to use lvcDefaultSite as an input for the getProductionLine. now i cannot pass parameter from function getDefalutSite to getProductionLine 1. JSDO execute function asynchronously. so both function fire an event onAfterFill when data filled complete. So this will not happen in sequene. 2.JSDO will execute both function at the same time so i will never get value to pass to getProductionLine function. Do anyone have an idea to solve this issue? function getDefalutSite(domain) { // calling fill reads from the remote OE server var domainFilter = "icc_domain='" + domain + "'"; var outPromise = new Promise((resolve, reject) => { try { var serviceURI = " http://localhost:8810/stdData" , jsdoSettings = { serviceURI: serviceURI, catalogURIs: serviceURI + "/static/stdDataService.json" }, jsdosession, jsdo, promise; // create a new session object jsdosession = new progress.data.JSDOSession(jsdoSettings); promise = jsdosession.login("", ""); promise.done(function(jsdosession, result, info){ jsdosession.addCatalog(jsdoSettings.catalogURIs) .done(function(jsdosession, result, details){ // create a JSDO jsdo = new progress.data.JSDO({ name: 'InvCtrl' }); //jsdo.subscribe('AfterFill', onAfterFillCustomers, this); // calling fill reads from the remote OE server jsdo.fill(domainFilter).done(onAfterFilliccCtrl); resolve('Done'); }) .fail(function(jsdosession, result, details){ alert("Error while executing addCatalog()."); }); }); promise.fail(function(jsdosession, result, info){ alert("Error while executing login()."); reject("Error while executing login()."); }); } catch (e) { alert("Error instantiating objects: " + e); reject("Error instantiating objects: " + e); } }); return outPromise; // this function is called after data is returned from the server function onAfterFilliccCtrl(jsdo, success, request) { // for each customer record returned jsdo.tticc_ctrl.foreach(function (icc) { // write out some of the customer data to the page console.log("icc_site = " + icc.data.icc_site); lvcDefaultSite = icc.data.icc_site; }); } } function getProductionLine(domain,site){ // calling fill reads from the remote OE server var domainFilter = "ln_domain='" + domain + "' and ln_site ='" + site + "'"; // this function is called after data is returned from the server function onAfterFillProductionLine(jsdo, success, request) { // for each customer record returned jsdo.ttln_mstr.foreach(function (prodLine) { // write out some of the customer data to the page console.log("ln_line=" + prodLine.data.ln_line ); lvcProdList.push(prodLine.data.ln_line); }); } try { var serviceURI = " http://localhost:8810/stdData" , jsdoSettings = { serviceURI: serviceURI, catalogURIs: serviceURI + "/static/stdDataService.json" }, jsdosession, jsdo, promise; // create a new session object jsdosession = new progress.data.JSDOSession(jsdoSettings); promise = jsdosession.login("", ""); promise.done(function(jsdosession, result, info){ jsdosession.addCatalog(jsdoSettings.catalogURIs) .done(function(jsdosession, result, details){ // create a JSDO jsdo = new progress.data.JSDO({ name: 'LineMstr' }); //jsdo.subscribe('AfterFill', onAfterFillCustomers, this); // calling fill reads from the remote OE server jsdo.fill(domainFilter).done(onAfterFillProductionLine); }) .fail(function(jsdosession, result, details){ alert("Error while executing addCatalog()."); }); }); promise.fail(function(jsdosession, result, info){ alert("Error while executing login()."); }); } catch (error) { alert("Error instantiating objects: " + e); } }

Continue reading...
 
Status
Not open for further replies.
Back
Top