Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    #16
    I am really struggling with this. I have tried many different attempts but I cannot seem to get this working. Below is my latest effort. The WSDL is js in the JobDataAdapter.js source file. The method I want to call on the webservice is Fill1 - this just "fills" the dataset - a "SELECT * FROM TableName" (right now, there are only a handful of records in there).

    I know this should be easy but everything I try is not working. If you can cast an eye over my code and the server output, I would appreciate it.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    	<head>
    	<SCRIPT>var isomorphicDir="../../isomorphic/";</SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_Core.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_Foundation.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_Containers.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_Grids.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_Forms.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/system/modules/ISC_DataBinding.js></SCRIPT>
    	<SCRIPT SRC=../../isomorphic/skins/SmartClient/load_skin.js></SCRIPT>	
    	<script src="JobDataAdapter.js"></script>
    	</head>
    	<body>
    	<script type="text/javascript">
    
    		 isc.ListGrid.create({
    				    ID: "jobGrid",
    				    width:"100%", alternateRecordStyles:true, showAllRecords:true
    				});
    				
    		 var jobList = isc.DataSource.create({
    		 	serviceNamespace: "urn:zitoc:job",
    		 	operationBindings: [{
    		 		operationType: "fetch",
    		 		wsOperation: "Fill1",
    		 		recordName: "sObject"
    		 	}]
    		 })
    	
    		jobGrid.setDataSource(jobList);
    		jobGrid.fetchData(null, null, { useHttpProxy:true });
    		
    	</script>		
    		
    	</body>
    </html>

    === 2008-10-10 23:37:55,688 [sor6] INFO JSSyntaxScannerFilter - /examples/gcw/D
    ataBind.htm: scanning <script> tags in html output
    === 2008-10-10 23:37:55,688 [sor6] INFO Compression - /examples/gcw/DataBind.ht
    m: 1250 -> 554 bytes
    === 2008-10-10 23:37:57,763 [sor6] INFO RequestContext - URL: '/isomorphic/Http
    Proxy', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3)
    Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)': Moz (Gecko) with Accept-E
    ncoding header
    === 2008-10-10 23:37:57,763 [sor6] DEBUG XML - Parsed XML from (in memory stream
    ): 0ms
    === 2008-10-10 23:37:57,763 [sor6] DEBUG HttpProxyServlet - HttpProxy - ProxyDat
    a is: {
    xsi:"http://www.w3.org/2000/10/XMLSchema-instance",
    url:"[ISOMORPHIC]/IDACall",
    httpMethod:"GET",
    params:{},
    requestBody:null
    }
    === 2008-10-10 23:37:57,763 [sor6] ERROR HttpProxyServlet - HttpProxy - Top-leve
    l servlet error:
    java.lang.IllegalArgumentException: Invalid uri '[ISOMORPHIC]/IDACall': incorrec
    t path
    at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.ja
    va:219)
    at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java
    :88)
    at com.isomorphic.servlet.HttpProxyServlet.doPost(HttpProxyServlet.java:
    454)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:188)
    at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilte
    r.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:188)
    at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.j
    ava:248)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
    rocessConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
    int.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
    lowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
    ool.java:685)
    at java.lang.Thread.run(Unknown Source)
    === 2008-10-10 23:37:57,794 [sor6] INFO Compression - /isomorphic/HttpProxy: 24
    08 -> 702 bytes

    Comment


      #17
      That DataSource can't find the web services definition at all, probably because the service namespace on your DataSource doesn't match the "targetNamespace" element on the <definitions> tag.

      There should be logs indicating this in the Developer Console. Did you check?

      Comment


        #18
        Excerpt from the WSDL:-

        Code:
        <wsdl:definitions targetNamespace="urn:zitoc:job">
        <wsdl:documentation>Job</wsdl:documentation>
            <wsdl:types>
            <s:schema elementFormDefault="qualified" targetNamespace="urn:zitoc:job">
        This appears to match the serviceNameSpace.

        Here is the log:-

        Code:
        23:37:56.169:INFO:Log:initialized
        23:37:57.603:WARN:DataSource:isc_DataSource_2:No WebService definition has been loaded for serviceNamespace: urn:zitoc:job [Stack trace logged via Firebug: FBugTrace0]
        23:37:57.607:WARN:DataSource:isc_DataSource_2:No WebService definition has been loaded for serviceNamespace: urn:zitoc:job [Stack trace logged via Firebug: FBugTrace1]
        23:37:57.610:WARN:DataSource:isc_DataSource_2:No WebService definition has been loaded for serviceNamespace: urn:zitoc:job [Stack trace logged via Firebug: FBugTrace2]
        23:37:57.614:WARN:DataSource:isc_DataSource_2:No WebService definition has been loaded for serviceNamespace: urn:zitoc:job [Stack trace logged via Firebug: FBugTrace3]
        23:37:57.670:INFO:Log:isc.Page is loaded
        23:37:57.924:XRP9:WARN:parseXML:Error parsing XML: XML Parsing Error: mismatched tag. Expected: </init>.
        Location: http://localhost:9090/examples/gcw/DataBind.htm
        Line Number 30, Column 3:</PRE>
        --^
        I can see the parsing error specified in the log. However, if I call "Fill1" from within the browser, this is the data I get back and it appears perfectly formed:-

        Code:
        <?xml version="1.0" encoding="utf-8"?>
        <ArrayOfJobData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:zitoc:job">
          <JobData>
            <OriginalJob>
              <JobId>1</JobId>
              <JobName>Annual Accounts (Small Company)</JobName>
              <FocusId>3</FocusId>
              <FocusName>Bloggs Plumbers</FocusName>
        
              <JobDurationTime>1080</JobDurationTime>
              <BizId>1</BizId>
              <BizName>Jones &amp; Co</BizName>
            </OriginalJob>
            <CurrentJob>
              <JobId>1</JobId>
        
              <JobName>Annual Accounts (Small Company)</JobName>
              <FocusId>3</FocusId>
              <FocusName>Bloggs Plumbers</FocusName>
              <JobDurationTime>1080</JobDurationTime>
              <BizId>1</BizId>
              <BizName>Jones &amp; Co</BizName>
        
            </CurrentJob>
            <JobRequirement>
              <JobRequirementData>
                <OriginalJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>1</RequirementId>
                  <RequirementName>Client Meeting</RequirementName>
        
                  <RequirementDurationTime>60</RequirementDurationTime>
                </OriginalJobRequirement>
                <CurrentJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>1</RequirementId>
                  <RequirementName>Client Meeting</RequirementName>
                  <RequirementDurationTime>60</RequirementDurationTime>
        
                </CurrentJobRequirement>
                <JobRequirementAbility>
                  <JobRequirementAbilityData>
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>1</RequirementId>
                      <AbilityId>1</AbilityId>
        
                      <AbilityName>Partner</AbilityName>
                      <RequirementAbilityDuration>30</RequirementAbilityDuration>
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>1</RequirementId>
                      <AbilityId>1</AbilityId>
        
                      <AbilityName>Partner</AbilityName>
                      <RequirementAbilityDuration>30</RequirementAbilityDuration>
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                  <JobRequirementAbilityData>
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
        
                      <RequirementId>1</RequirementId>
                      <AbilityId>2</AbilityId>
                      <AbilityName>Manager</AbilityName>
                      <RequirementAbilityDuration>30</RequirementAbilityDuration>
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
        
                      <RequirementId>1</RequirementId>
                      <AbilityId>2</AbilityId>
                      <AbilityName>Manager</AbilityName>
                      <RequirementAbilityDuration>30</RequirementAbilityDuration>
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                </JobRequirementAbility>
        
              </JobRequirementData>
              <JobRequirementData>
                <OriginalJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>2</RequirementId>
                  <RequirementName>Stock Take</RequirementName>
                  <RequirementDurationTime>360</RequirementDurationTime>
        
                </OriginalJobRequirement>
                <CurrentJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>2</RequirementId>
                  <RequirementName>Stock Take</RequirementName>
                  <RequirementDurationTime>360</RequirementDurationTime>
                </CurrentJobRequirement>
        
                <JobRequirementAbility>
                  <JobRequirementAbilityData>
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>2</RequirementId>
                      <AbilityId>3</AbilityId>
                      <AbilityName>Junior</AbilityName>
        
                      <RequirementAbilityDuration>360</RequirementAbilityDuration>
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>2</RequirementId>
                      <AbilityId>3</AbilityId>
                      <AbilityName>Junior</AbilityName>
        
                      <RequirementAbilityDuration>360</RequirementAbilityDuration>
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                </JobRequirementAbility>
              </JobRequirementData>
              <JobRequirementData>
                <OriginalJobRequirement>
                  <JobId>1</JobId>
        
                  <RequirementId>3</RequirementId>
                  <RequirementName>Bookkeeping</RequirementName>
                  <RequirementDurationTime>600</RequirementDurationTime>
                </OriginalJobRequirement>
                <CurrentJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>3</RequirementId>
        
                  <RequirementName>Bookkeeping</RequirementName>
                  <RequirementDurationTime>600</RequirementDurationTime>
                </CurrentJobRequirement>
                <JobRequirementAbility>
                  <JobRequirementAbilityData>
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
        
                      <RequirementId>3</RequirementId>
                      <AbilityId>3</AbilityId>
                      <AbilityName>Junior</AbilityName>
                      <RequirementAbilityDuration>360</RequirementAbilityDuration>
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
        
                      <RequirementId>3</RequirementId>
                      <AbilityId>3</AbilityId>
                      <AbilityName>Junior</AbilityName>
                      <RequirementAbilityDuration>360</RequirementAbilityDuration>
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                  <JobRequirementAbilityData>
        
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>3</RequirementId>
                      <AbilityId>4</AbilityId>
                      <AbilityName>Senior</AbilityName>
                      <RequirementAbilityDuration>240</RequirementAbilityDuration>
        
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>3</RequirementId>
                      <AbilityId>4</AbilityId>
                      <AbilityName>Senior</AbilityName>
                      <RequirementAbilityDuration>240</RequirementAbilityDuration>
        
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                </JobRequirementAbility>
              </JobRequirementData>
              <JobRequirementData>
                <OriginalJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>4</RequirementId>
        
                  <RequirementName>Meeting Room</RequirementName>
                  <RequirementDurationTime>60</RequirementDurationTime>
                </OriginalJobRequirement>
                <CurrentJobRequirement>
                  <JobId>1</JobId>
                  <RequirementId>4</RequirementId>
                  <RequirementName>Meeting Room</RequirementName>
        
                  <RequirementDurationTime>60</RequirementDurationTime>
                </CurrentJobRequirement>
                <JobRequirementAbility>
                  <JobRequirementAbilityData>
                    <OriginalJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>4</RequirementId>
        
                      <AbilityId>6</AbilityId>
                      <AbilityName>Can Host Meetings of Less Than Six Persons</AbilityName>
                      <RequirementAbilityDuration>60</RequirementAbilityDuration>
                    </OriginalJobRequirementAbility>
                    <CurrentJobRequirementAbility>
                      <JobId>1</JobId>
                      <RequirementId>4</RequirementId>
        
                      <AbilityId>6</AbilityId>
                      <AbilityName>Can Host Meetings of Less Than Six Persons</AbilityName>
                      <RequirementAbilityDuration>60</RequirementAbilityDuration>
                    </CurrentJobRequirementAbility>
                  </JobRequirementAbilityData>
                </JobRequirementAbility>
              </JobRequirementData>
        
            </JobRequirement>
          </JobData>
        </ArrayOfJobData>
        I just don't know what else to do here.

        I haven't managed to get data into SmartClient once. What I am doing right now is the pattern for all data access in this application. Once I resolve whatever the problem is, I should be good to go for the rest of the data access.

        Thanks.

        Comment


          #19
          See these warnings:

          Code:
          23:37:57.603:WARN:DataSource:isc_DataSource_2:No WebService definition has been loaded for serviceNamespace: urn:zitoc:job [Stack trace logged via Firebug: FBugTrace0]
          You don't seem to be loading the WSDL file at all, so SmartClient can't possibly know where the service is or how to form valid messages, right?

          See the docs for loadWSDL() - you can either dynamically load the WSDL file or derive a .js file representing the WSDL definition, using the Developer Console, the load that .js file.

          Comment


            #20
            >You don't seem to be loading the WSDL file at all, so SmartClient can't possibly know where the service is or how to form valid messages, right?

            OK, I know I may look stupid :)

            Four messages back, the one starting with "I am really struggling with this ... The WSDL is js in the JobDataAdapter.js source file", in the script tag in the source code shows:-

            Code:
            <script src="JobDataAdapter.js"></script>
            So, I can assure you that I am and have been trying to load the WSDL file. I have also tried to use loadWSDL() but that hasn't worked either.

            I appreciate that "SmartClient can't possibly know where the service is or how to form valid messages" unless I tell it but, as you can see, as far as I can tell, I have told SmartClient what it needs to know.

            Below is an excerpt of the SmartClient generated JS WSDL alluded to in this thread. The autogenerated dataURL does not specify the port number. As this has been causing a problem and given the need to specify { useHttpProxy:true } (as per your earlier recommendation), maybe this is an area that could be causing part of the problem, given that SmartClient is running on localhost via port 9090 and the .NET web services are running on localhost, served by IIS7 on port 80.

            I will amend the dataURL to specify the port number and see whether this has any effect.

            Code:
            isc.WebService.create({
                dataURL:"http://localhost/ziTocWS/JobDataAdapter.asmx",
                serviceNamespace:"urn:zitoc:job",
                soapStyle:"",
                schemaImport:{namespace:"urn:zitoc:job"},
                operations:[
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"Fill", inputMessage:"FillSoapIn", soapAction:"urn:zitoc:job/Fill", 
                     outputMessage:"FillSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"Fill", inputMessage:"FillSoapIn", 
                     soapAction:"urn:zitoc:job/Fill1",outputMessage:"FillSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"FillByJobId", inputMessage:"FillByJobIdSoapIn", 
                     soapAction:"urn:zitoc:job/FillByJobId",outputMessage:"FillByJobIdSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"FillByFocusId", inputMessage:"FillByFocusIdSoapIn", 
                     soapAction:"urn:zitoc:job/FillByFocusId",outputMessage:"FillByFocusIdSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"FillPageByFocusId", inputMessage:"FillPageByFocusIdSoapIn", 
                     soapAction:"urn:zitoc:job/FillPageByFocusId",outputMessage:"FillPageByFocusIdSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"FillPage", inputMessage:"FillPageSoapIn", 
                     soapAction:"urn:zitoc:job/FillPage",outputMessage:"FillPageSoapOut"},
                    {inputEncoding:"literal", inputParts:"", outputEncoding:"literal", outputParts:"", 
                     soapStyle:"document",name:"Update", inputMessage:"UpdateSoapIn", 
                     soapAction:"urn:zitoc:job/Update",outputMessage:"UpdateSoapOut"}
                ],
                messages:[
                    isc.WSDLMessage.create({
                        ID:"message:FillSoapIn",
                        fields:{
                            Fill:{type:"Fill", xmlRequired:true, name:"Fill", xsElementRef:true}
                        }
                    })

            Comment


              #21
              This is my second message since your last reply yesterday. As I am aware that this message has started page #3 of this thread and you may have clicked on page #3 by default, perhaps you would kindly read my message immediately prior to this once for further background information.

              As suggested in my last message, I duly added the port to the SC DevConsole generated WSDL code to look as follows:-

              Code:
              isc.WebService.create({
                  dataURL:"http://localhost:80/ziTocWS/JobDataAdapter.asmx",
                  serviceNamespace:"urn:zitoc:job",
                  soapStyle:"",
                  schemaImport:{namespace:"urn:zitoc:job"},
              The "jobList" DataSource (as far as I can see in FireBug) appears to be "fully formed" as a result. However, it errors on the last line of the following code:-

              Code:
              		 isc.ListGrid.create({
              				    ID: "jobGrid",
              				    width:"100%", alternateRecordStyles:true, showAllRecords:true
              				});
              				
              		 var jobList = isc.DataSource.create({
              		 	serviceNamespace: "urn:zitoc:job",
              		 	operationBindings: [{
              		 		operationType: "fetch",
              		 		wsOperation: "Fill1",
              		 		recordName: "sObject"
              		 	}]
              		 })
              	
              		jobGrid.setDataSource(jobList);
              		jobGrid.fetchData(null, null, { useHttpProxy:true }); // <--- Errors here.
              Here is the error message from Firebug:-

              Code:
              this.getWSOperation(_1) is null 
              http://localhost:9090/isomorphic/system/modules/ISC_DataBinding.js
              Line 350
              Here is the developer console log data:-

              Code:
              12:47:51.712:INFO:Log:initialized
              12:47:52.973:INFO:Log:isc.Page is loaded
              Here is the relevant data from the Server Console:-

              Code:
              === 2008-10-11 12:47:06,682 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/DataBind.htm: scanning <script> tags in html output
              === 2008-10-11 12:47:08,133 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/JobDataAdapter.js: scanning js source
              === 2008-10-11 12:47:51,283 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/DataBind.htm: scanning <script> tags in html output
              Thanks.
              Last edited by Henryville; 11 Oct 2008, 04:04.

              Comment


                #22
                It's good to hear that you were trying to load the WSDL definition :) However those error messages you were getting previously ("No Webservice definition has been loaded..") indicate it was not succeeding - perhaps the file was misplaced at the time?

                At any rate the log you show now no longer has those error messages, so the definition is being loaded. Don't worry about the port number, 80 is the default.

                The problem now appears to be that your WSDL file depends upon an XML schema file that isn't being loaded. If you look at your WSDL you'll see something like <schema><import namespace="...> - you need to load the required XML Schema file, either via loadXMLSchema or again by producing a .js file from the Developer Console.

                Note that unfortunately SmartClient can't automatically load dependencies like this because the WSDL spec does not require an import statement to contain a valid URL at which the XML Schema can be downloaded.

                Comment


                  #23
                  >The problem now appears to be that your WSDL file depends upon an XML schema file that isn't being loaded. If you look at your WSDL you'll see something like <schema><import namespace="...> - you need to load the required XML Schema file, either via loadXMLSchema or again by producing a .js file from the Developer Console.

                  I have pasted the first and salient part of the WSDL below. The only namespace I specified was "urn:zitoc:job" - this was to replace the "tempuri" default value. I thought the WSDL was the schema so at this point, I can only defer to your expertise in this area.

                  Code:
                  <?xml version="1.0" encoding="utf-8"?>
                  <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="urn:zitoc:job" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="urn:zitoc:job" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
                    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Job</wsdl:documentation>
                    <wsdl:types>
                      <s:schema elementFormDefault="qualified" targetNamespace="urn:zitoc:job">
                        <s:element name="Fill">
                          <s:complexType>
                            <s:sequence>
                              <s:element minOccurs="1" maxOccurs="1" name="jobId" type="s:int" />
                  
                            </s:sequence>
                          </s:complexType>
                        </s:element>
                        ...
                  Below are snippets from the SmartClient generated .js file based on the WSDL. Again, the only thing they appear to reference is the "urn:zitoc:job" schema that I specified to make the webservice unique.

                  Code:
                  isc.SchemaSet.create({
                      serviceNamespace:"urn:zitoc:job",
                      schema:[
                          isc.XSElement.create({
                              mustQualify:true,
                              ID:"Fill",
                              fields:{
                                  jobId:{type:"int", xmlRequired:true, name:"jobId"}
                              }
                          })
                  ,
                  Code:
                  isc.WebService.create({
                      dataURL:"http://localhost:80/ziTocWS/JobDataAdapter.asmx",
                      serviceNamespace:"urn:zitoc:job",
                      soapStyle:"",
                      schemaImport:{namespace:"urn:zitoc:job"},
                  Does this help in any way?

                  Comment


                    #24
                    WSDL can either contain <schema> or import it. However actually that's not the problem here, it's much simpler - your WSDL does not have an operation called "Fill1" (which is what you declared as your WSOperation) - it does have one called just "Fill" however.

                    Comment


                      #25
                      This is now starting to get interesting <phew> :)

                      Here are my C# web method(s). There are numerous "Fill" overloads on every business object. To differentiate between them, the "MessageName" contains "Fill", "Fill1", "Fill2" and so on. If you call the .NET .ASMX file (to view the protocol), whilst there are two "Fill" methods detailed, one is annoted as MessageName="Fill1".

                      Is this not acceptable to SmartClient (or is it just plain wrong, full stop)?

                      Thanks.

                      Code:
                              [SoapDocumentMethodAttribute()]
                              [WebMethodAttribute(Description="Fill", MessageName="Fill")]
                              public ziToc.Data.Job.JobData[] Fill(int jobId) {
                                  ziToc.Data.JobDataAdapter ret = new ziToc.Data.JobDataAdapter();
                                  ziToc.Data.JobDataSet dataSet = new ziToc.Data.JobDataSet();
                                  ret.Fill(dataSet, jobId);
                                  return this.DataSetToJob(dataSet);
                              }
                              
                              [SoapDocumentMethodAttribute()]
                              [WebMethodAttribute(Description="Fill", MessageName="Fill1")]
                              public ziToc.Data.Job.JobData[] Fill() {
                                  ziToc.Data.JobDataAdapter ret = new ziToc.Data.JobDataAdapter();
                                  ziToc.Data.JobDataSet dataSet = new ziToc.Data.JobDataSet();
                                  ret.Fill(dataSet);
                                  return this.DataSetToJob(dataSet);
                              }

                      Comment


                        #26
                        Hello Henry,

                        The "wsOperation" refers to the WSDL operation name, not the message name. From a quick look it seems that the [WebMethodAttribute] declaration will not allow you to set the operation name, so it looks like you'll need to declare a separate method to make it callable.

                        Comment


                          #27
                          Still scratching my head with this one. Here is the code:-

                          Code:
                          		 isc.ListGrid.create({
                          				    ID: "jobGrid",
                          				    width:"100%", 
                          					alternateRecordStyles:true, 
                          					showAllRecords:true
                          				});
                          				
                          		 var jobList = isc.DataSource.create({
                          			xmlNamespaces: {ziJob:"urn:zitoc:job"},  
                          			recordXPath: "//ziJob:JobData/ziJob:CurrentJob",
                          		 	operationBindings: [{
                          		 		operationType: "fetch",
                          		 		wsOperation: "Fill1",
                          				serviceNamespace: "urn:zitoc:job"
                          		 	}]
                          		 })
                          		 
                          		jobGrid.setDataSource(jobList);
                          		jobGrid.fetchData(null, null, { useHttpProxy:true });
                          Code:
                          20:45:52.870:XRP9:WARN:parseXML:Error parsing XML: XML Parsing Error: no element found
                          Location: http://localhost:9090/examples/gcw/DataBind.htm
                          Line Number 31, Column 1:
                          ^
                          Below is the server log. The parsing error seems to be caused by control characters (eg., "\n"). FYI, the message structure returned by the web service is posted in the next message. Any ideas what may be happening?

                          Code:
                          === 2008-10-12 20:42:08,744 [main] INFO  Http11BaseProtocol - Starting Coyote HTTP/1.1 on http-9090
                          === 2008-10-12 20:45:50,324 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/DataBind.htm: scanning <script> tags in html output
                          === 2008-10-12 20:45:52,523 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/JobDataAdapter.js: scanning js source
                          setProperties: couldn't set:
                          {includeSOAPAttachments:"No such property"}
                          === 2008-10-12 20:45:52,773 [sor4] INFO  HttpProxyServlet - HttpProxy - No rules defined - proxying all incoming URLs.
                          === 2008-10-12 20:45:52,773 [sor4] INFO  RequestContext - URL: '/isomorphic/HttpProxy', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                          === 2008-10-12 20:45:52,788 [sor4] DEBUG XML - Parsed XML from (in memory stream): 0ms
                          === 2008-10-12 20:45:52,788 [sor4] DEBUG HttpProxyServlet - HttpProxy - ProxyData is: {
                              xsi:"http://www.w3.org/2000/10/XMLSchema-instance",
                              url:"http://localhost/ziTocWS/JobDataAdapter.asmx",
                              httpMethod:"POST",
                              contentType:"text/xml",
                              requestBody:"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' \n          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n          xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Header></soap:Header>\r    <soap:Body\n                 xmlns:urn:zitoc:job=\"ziJob\"\n                 xmlns:ns0=\"urn:zitoc:job\">\n        <ns0:Fill1/>\n    </soap:Body>\n</soap:
                          Envelope>",
                              httpHeaders:{SOAPAction:"urn:zitoc:job/Fill1"}
                          }
                          === 2008-10-12 20:45:52,851 [sor4] ERROR XML - XML parser fatal error: file '(in memory stream)' line 5: org.xml.sax.SAXParseException: Attribute name "xmlns:urn" associated with an element type "soap:Body" must be followed by the ' = ' character.
                          === 2008-10-12 20:45:52,851 [sor4] DEBUG XML - Exception thrown during XML parsing
                          === 2008-10-12 20:45:52,851 [sor4] ERROR HttpProxyServlet - HttpProxy - Top-level servlet error:
                          com.isomorphic.xml.XMLParsingException: [
                           "XML parser fatal error: file '(in memory stream)' line 5: org.xml.sax.SAXParseException: Attribute name \"xmlns:urn\" associated with an element type \"soap:Body\" must be followed by the ' = ' character."]
                                  at com.isomorphic.xml.XML.parseXML(XML.java:157)
                                  at com.isomorphic.servlet.HttpProxyServlet.doPost(HttpProxyServlet.java:412)
                                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
                                  at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
                                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
                                  at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:241)
                                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
                          
                                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
                                  at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:248)
                                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
                                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
                                  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
                                  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
                                  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                                  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
                                  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
                                  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
                                  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
                                  at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
                                  at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
                                  at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
                                  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
                                  at java.lang.Thread.run(Unknown Source)
                          === 2008-10-12 20:45:52,882 [sor4] INFO  Compression - /isomorphic/HttpProxy: 2462 -> 761 bytes
                          === 2008-10-12 20:46:00,448 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_FileLoader.js
                          === 2008-10-12 20:46:00,464 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_FileLoader.js
                          === 2008-10-12 20:46:00,510 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Core.js
                          === 2008-10-12 20:46:00,510 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Core.js
                          === 2008-10-12 20:46:00,932 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Foundation.js
                          === 2008-10-12 20:46:00,932 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Foundation.js
                          === 2008-10-12 20:46:01,103 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Containers.js
                          === 2008-10-12 20:46:01,103 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Containers.js
                          === 2008-10-12 20:46:01,197 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Grids.js
                          === 2008-10-12 20:46:01,197 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Grids.js
                          === 2008-10-12 20:46:01,556 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Forms.js
                          === 2008-10-12 20:46:01,556 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Forms.js
                          === 2008-10-12 20:46:01,914 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DataBinding.js
                          === 2008-10-12 20:46:01,914 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DataBinding.js
                          === 2008-10-12 20:46:02,102 [sor4] INFO  RequestContext - URL: '/isomorphic/system/development/ISC_DataBinding.js', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                          === 2008-10-12 20:46:02,102 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DataBinding.js
                          === 2008-10-12 20:46:02,117 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DataBinding.js
                          === 2008-10-12 20:46:02,164 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Tools.js
                          === 2008-10-12 20:46:02,164 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_Tools.js
                          === 2008-10-12 20:46:02,211 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/skins/SmartClient/load_skin.js
                          === 2008-10-12 20:46:02,211 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/skins/SmartClient/load_skin.js
                          === 2008-10-12 20:46:02,242 [sor4] INFO  Download - Using gzipped form of request file: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DeveloperConsole.js
                          === 2008-10-12 20:46:02,242 [sor4] INFO  Download - done streaming: C:/SmartClient_651_Evaluation/smartclientSDK/isomorphic/system/development/ISC_DeveloperConsole.js

                          Comment


                            #28
                            Addendum to last message - this should give you an idea of the message structure.

                            Code:
                            HTTP/1.1 200 OK
                            Content-Type: text/xml; charset=utf-8
                            Content-Length: length
                            
                            <?xml version="1.0" encoding="utf-8"?>
                            <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                              <soap:Body>
                                <Fill1Response xmlns="urn:zitoc:job">
                                  <Fill1Result>
                                    <JobData>
                                      <OriginalJob>
                                        <JobId>int</JobId>
                                        <JobName>string</JobName>
                                        <FocusId>int</FocusId>
                                        <FocusName>string</FocusName>
                                        <JobDurationTime>int</JobDurationTime>
                                        <BizId>int</BizId>
                                        <BizName>string</BizName>
                                      </OriginalJob>
                                      <CurrentJob>
                                        <JobId>int</JobId>
                                        <JobName>string</JobName>
                                        <FocusId>int</FocusId>
                                        <FocusName>string</FocusName>
                                        <JobDurationTime>int</JobDurationTime>
                                        <BizId>int</BizId>
                                        <BizName>string</BizName>
                                      </CurrentJob>
                                      <JobRequirement>
                                        <JobRequirementData xsi:nil="true" />
                                        <JobRequirementData xsi:nil="true" />
                                      </JobRequirement>
                                    </JobData>
                                    <JobData>
                                      <OriginalJob>
                                        <JobId>int</JobId>
                                        <JobName>string</JobName>
                                        <FocusId>int</FocusId>
                                        <FocusName>string</FocusName>
                                        <JobDurationTime>int</JobDurationTime>
                                        <BizId>int</BizId>
                                        <BizName>string</BizName>
                                      </OriginalJob>
                                      <CurrentJob>
                                        <JobId>int</JobId>
                                        <JobName>string</JobName>
                                        <FocusId>int</FocusId>
                                        <FocusName>string</FocusName>
                                        <JobDurationTime>int</JobDurationTime>
                                        <BizId>int</BizId>
                                        <BizName>string</BizName>
                                      </CurrentJob>
                                      <JobRequirement>
                                        <JobRequirementData xsi:nil="true" />
                                        <JobRequirementData xsi:nil="true" />
                                      </JobRequirement>
                                    </JobData>
                                  </Fill1Result>
                                </Fill1Response>
                              </soap:Body>
                            </soap:Envelope>
                            The following .NET code retrieved the CurrentJob items from the SoapEnvelope returned after calling the webservice. So, I assume that the XPath code in my previous message is accurate.

                            Code:
                                       XmlDocument myXmlDocument = new XmlDocument();
                                        myXmlDocument.Load(@"c:\xpath_sample.xml");
                            
                                        XmlNamespaceManager nsmanager = new XmlNamespaceManager(myXmlDocument.NameTable);
                                        nsmanager.AddNamespace("ziJob", "urn:zitoc:job");
                                        XmlNodeList nodelist = myXmlDocument.SelectNodes("//ziJob:JobData/ziJob:CurrentJob", nsmanager);

                            Comment


                              #29
                              That looks like it could be a bug (at last! :)

                              If so, you can work around it by moving your xmlNamespaces declaration into the operationBinding.

                              Code:
                              		 var jobList = isc.DataSource.create({
                              			recordXPath: "//ziJob:JobData/ziJob:CurrentJob",
                              		 	operationBindings: [{
                              		 		operationType: "fetch",
                              		 		wsOperation: "Fill1",
                                                              xmlNamespaces: {ziJob:"urn:zitoc:job"},  
                              				serviceNamespace: "urn:zitoc:job"
                              		 	}]
                              		 })

                              Comment


                                #30
                                Inch by inch ... :)

                                Code:
                                		 isc.ListGrid.create({
                                				    ID: "jobGrid",
                                				    width:"100%", 
                                					alternateRecordStyles:true, 
                                					showAllRecords:true
                                				});
                                				
                                		 var jobList = isc.DataSource.create({
                                			recordXPath: "//ziJob:JobData/ziJob:CurrentJob",
                                		 	operationBindings: [{
                                		 		operationType: "fetch",
                                		 		wsOperation: "Fill1",
                                				xmlNamespaces: {ziJob:"urn:zitoc:job"},  
                                				serviceNamespace: "urn:zitoc:job"
                                		 	}]
                                		 })
                                		 
                                		jobGrid.setDataSource(jobList);
                                		jobGrid.fetchData(null, null, { useHttpProxy:true });
                                Code:
                                21:28:25.964:INFO:Log:initialized
                                21:28:27.404:INFO:Log:isc.Page is loaded
                                21:28:35.995:RDQ6:WARN:Log:TypeError: _9 is undefined
                                Code:
                                === 2008-10-12 21:28:27,283 [sor4] INFO  JSSyntaxScannerFilter - /examples/gcw/JobDataAdapter.js: scanning js source
                                setProperties: couldn't set:
                                {includeSOAPAttachments:"No such property"}
                                === 2008-10-12 21:28:27,532 [sor4] INFO  HttpProxyServlet - HttpProxy - No rules defined - proxying all incoming URLs.
                                === 2008-10-12 21:28:27,532 [sor4] INFO  RequestContext - URL: '/isomorphic/HttpProxy', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                                === 2008-10-12 21:28:27,532 [sor4] DEBUG XML - Parsed XML from (in memory stream): 0ms
                                === 2008-10-12 21:28:27,548 [sor4] DEBUG HttpProxyServlet - HttpProxy - ProxyData is: {
                                    xsi:"http://www.w3.org/2000/10/XMLSchema-instance",
                                    url:"http://localhost/ziTocWS/JobDataAdapter.asmx",
                                    httpMethod:"POST",
                                    contentType:"text/xml",
                                    requestBody:"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' \n          xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n          xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Header></soap:Header>\r    <soap:Body\n                 xmlns:ns0=\"urn:zitoc:job\">\n        <ns0:Fill1/>\n    </soap:Body>\n</soap:Envelope>",
                                    httpHeaders:{SOAPAction:"urn:zitoc:job/Fill1"}
                                }
                                === 2008-10-12 21:28:27,610 [sor4] DEBUG XML - Parsed XML from (in memory stream): 0ms
                                === 2008-10-12 21:28:27,891 [sor4] INFO  HttpProxyServlet - HttpProxy - writing body: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header/>
                                    <soap:Body xmlns:ns0="urn:zitoc:job">
                                        <ns0:Fill1/>
                                    </soap:Body>
                                </soap:Envelope>
                                === 2008-10-12 21:28:35,894 [sor4] INFO  HttpProxyServlet - HttpProxy - Method succeeded: : HTTP/1.1 200 OK
                                === 2008-10-12 21:28:35,894 [sor4] INFO  HttpProxyServlet - HttpProxy - Response:
                                <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><Fill1Response xmlns="urn:zitoc:job"><Fill1Result><JobData><OriginalJob><JobId>1</JobId><JobName>Annual Accounts (Small Company)</JobName><FocusId>3</FocusId><FocusName>Bloggs Plumbe
                                rs</FocusName><JobDurationTime>1080</JobDurationTime><BizId>1</BizId><BizName>Jones &amp; Co</BizName></OriginalJob><CurrentJob><JobId>1</JobId><JobName>Annual Accounts (Small Company)</JobName><FocusId>3</FocusId><FocusName>Bloggs Plumbers</FocusName><JobDurationTime>1080</JobDurationTime><BizId>1</BizId><BizName>Jones &amp; Co</BizName></CurrentJob><JobRequirement><JobRequirementData><OriginalJo
                                bRequirement><JobId>1</JobId><RequirementId>1</RequirementId><RequirementName>Client Meeting</RequirementName><RequirementDurationTime>60</RequirementDurationTime></OriginalJobRequirement><CurrentJobRequirement><JobId>1</JobId><RequirementId>1</RequirementId><RequirementName>Client Meeting</RequirementName><RequirementDurationTime>60</RequirementDurationTime></CurrentJobRequirement><JobRequirement
                                Ability><JobRequirementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>1</RequirementId><AbilityId>1</AbilityId><AbilityName>Partner</AbilityName><RequirementAbilityDuration>30</RequirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbility><JobId>1</JobId><RequirementId>1</RequirementId><AbilityId>1</AbilityId><AbilityName>Partner</AbilityName><
                                RequirementAbilityDuration>30</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequirementAbilityData><JobRequirementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>1</RequirementId><AbilityId>2</AbilityId><AbilityName>Manager</AbilityName><RequirementAbilityDuration>30</RequirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbilit
                                y><JobId>1</JobId><RequirementId>1</RequirementId><AbilityId>2</AbilityId><AbilityName>Manager</AbilityName><RequirementAbilityDuration>30</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequirementAbilityData></JobRequirementAbility></JobRequirementData><JobRequirementData><OriginalJobRequirement><JobId>1</JobId><RequirementId>2</RequirementId><RequirementName>Stock Take</Requirem
                                entName><RequirementDurationTime>360</RequirementDurationTime></OriginalJobRequirement><CurrentJobRequirement><JobId>1</JobId><RequirementId>2</RequirementId><RequirementName>Stock Take</RequirementName><RequirementDurationTime>360</RequirementDurationTime></CurrentJobRequirement><JobRequirementAbility><JobRequirementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>2</Requ
                                irementId><AbilityId>3</AbilityId><AbilityName>Junior</AbilityName><RequirementAbilityDuration>360</RequirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbility><JobId>1</JobId><RequirementId>2</RequirementId><AbilityId>3</AbilityId><AbilityName>Junior</AbilityName><RequirementAbilityDuration>360</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequiremen
                                tAbilityData></JobRequirementAbility></JobRequirementData><JobRequirementData><OriginalJobRequirement><JobId>1</JobId><RequirementId>3</RequirementId><RequirementName>Bookkeeping</RequirementName><RequirementDurationTime>600</RequirementDurationTime></OriginalJobRequirement><CurrentJobRequirement><JobId>1</JobId><RequirementId>3</RequirementId><RequirementName>Bookkeeping</RequirementName><Require
                                mentDurationTime>600</RequirementDurationTime></CurrentJobRequirement><JobRequirementAbility><JobRequirementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>3</RequirementId><AbilityId>3</AbilityId><AbilityName>Junior</AbilityName><RequirementAbilityDuration>360</RequirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbility><JobId>1</JobId><Requi
                                rementId>3</RequirementId><AbilityId>3</AbilityId><AbilityName>Junior</AbilityName><RequirementAbilityDuration>360</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequirementAbilityData><JobRequirementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>3</RequirementId><AbilityId>4</AbilityId><AbilityName>Senior</AbilityName><RequirementAbilityDuration>240</Re
                                quirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbility><JobId>1</JobId><RequirementId>3</RequirementId><AbilityId>4</AbilityId><AbilityName>Senior</AbilityName><RequirementAbilityDuration>240</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequirementAbilityData></JobRequirementAbility></JobRequirementData><JobRequirementData><OriginalJobRequirement>
                                <JobId>1</JobId><RequirementId>4</RequirementId><RequirementName>Meeting Room</RequirementName><RequirementDurationTime>60</RequirementDurationTime></OriginalJobRequirement><CurrentJobRequirement><JobId>1</JobId><RequirementId>4</RequirementId><RequirementName>Meeting Room</RequirementName><RequirementDurationTime>60</RequirementDurationTime></CurrentJobRequirement><JobRequirementAbility><JobRequi
                                rementAbilityData><OriginalJobRequirementAbility><JobId>1</JobId><RequirementId>4</RequirementId><AbilityId>6</AbilityId><AbilityName>Can Host Meetings of Less Than Six Persons</AbilityName><RequirementAbilityDuration>60</RequirementAbilityDuration></OriginalJobRequirementAbility><CurrentJobRequirementAbility><JobId>1</JobId><RequirementId>4</RequirementId><AbilityId>6</AbilityId><AbilityName>Can
                                Host Meetings of Less Than Six Persons</AbilityName><RequirementAbilityDuration>60</RequirementAbilityDuration></CurrentJobRequirementAbility></JobRequirementAbilityData></JobRequirementAbility></JobRequirementData></JobRequirement></JobData></Fill1Result></Fill1Response></soap:Body></soap:Envelope>
                                === 2008-10-12 21:28:35,909 [sor4] INFO  Compression - /isomorphic/HttpProxy: 5900 -> 676 bytes

                                Comment

                                Working...
                                X