
Basically the problem I’ve got is that I can’t get component-level resource mapping going.
We are using eBase 3.3, no service pack, build 15122006, Apache Tomcat/5.0.18 1.4.2_06 (Server java) 1.4.2_07 (Client java)
We are writing some forms that will sit inside Frontline’s Lagan application, and it communicates with Lagan’s web services. We have a number of forms to complete, but they all have a common section, containing the contacts name, address, phone number, etc. We’ve created a global component with these common fields on. The person’s identifier is passed through to the form as a parameter which is stored in the component as a hidden field.
The component has a business view which includes a web service resource that calls into Lagan to get the persons information, given their ID. We’ve mapped the fields at a component level between the web service resource and the fields on the component. We’ve then created a global script to update, call, and fetch the information from the web service:
update FL_RETRIEVE_INDIVIDUAL (CASENHDCCASE);
call FL_RETRIEVE_INDIVIDUAL;
fetch FL_RETRIEVE_INDIVIDUAL (CASENHDCCASE);
We’ve created a test form, and linked the component onto the form. We’ve *not* set the forms business view at this point. We’ve then called my global script from my “before loading”. Trying the form, we get a "call FL_RETRIEVE_INDIVIDUAL has been issued but no business view exists for form MY_TEST” error. So we changed my script to:
update FL_RETRIEVE_INDIVIDUAL (CASENHDCCASE);
call FL_RETRIEVE_INDIVIDUAL;
fetch FL_RETRIEVE_INDIVIDUAL (CASENHDCCASE);
But then we get the error “call FL_RETRIEVE_INDIVIDUAL (CASENHDCCASE) has been issued but no business view exists for form MY_TEST”. So we give in, and set the form’s business view to be the same as that for the component. we then get the error “Error parsing expression (CASENHDCCASE)”. So we revert the script back to what we had at first. This time we get an error from our web service, stating that the person’s ID hadn’t been passed.
If we then modify the form’s mappings to match those of the component (taking into account the component’s prefix), and change the script to:
update FL_RETRIEVE_INDIVIDUAL;
call FL_RETRIEVE_INDIVIDUAL;
fetch FL_RETRIEVE_INDIVIDUAL;
it all works as expected. The problem is we’d really like all of the mapping hidden within the component. We have some complex stuff to do that will involve lots of mapped fields that we’d rather not have to map for every form, just once in the component. We have a similar problem once the user has completed the form, the form is converted into a PDF and then a common XML file is generated, again using just the fields from the component – we’d like this to be tied to the component as well; at the moment we could only get it to work via mapping at form level.
Is this possible? And if so how!