automatic uid transfer in the web of knowledge api
<p>i am using the Web of Knowledge Web Services API in a current project and have a question.</p>

<p>Here you can find a documentation of the API: <a href="http://search.isiknowledge.com/esti/cxf-wsclient-demo/docs/soap/WokSearchLite/" rel="nofollow">http://search.isiknowledge.com/esti/cxf-wsclient-demo/docs/soap/WokSearchLite/</a></p>

<p>What i want to do is first do an automatic search action via the search function of the API, get the IDs of all articles found via this search and download the metadata of the found articles via retreivebyid. For that purpose you can set "RecordIDs" to "On" in the parameters of the search function and then retreivebyid should automatically use the stored ids as told in the manual.</p>

<pre><code>""
The Valid Options for the WokSearch RetrieveParameters   (Top)

WSDL elements: The following table are legal values for the key element and value element of the keyValuePair element of the options element of the retrieveParameters element of any SOAP request message for an operation of the WokSearch service where the value of the databaseId element is WOS.

Option Key          Option Value            Description        
View    FullRecord   
View    Fields   
Requester           WOK5.FR  
RecordIDs   On   
RecordIDs   Off  
HighLight   On   
HighLight   Off  
Hot On   
Hot Off  
MarkStatus  *    
SharedRefCount  On   
SharedRefCount  Off
""
</code></pre>

<p>and</p>

<pre><code>uids    ( xs:string - unbounded )
Unique identifiers. -- Record(s) to be retrieved
Required. Cannot be nil. These requirements are enforced internally.

The unique identifier of a record is contained within the record. However, the location of the unique identifier within the record XML is database specific. For more information, see databases and refer to the specific database.

The value of the unique identifier for any database record can, optionally, be included in the response of any request for any operation of the WokSearchLite Web service by setting RecordIDs to "On" within the options parameter of the retrieveParameters of the operation.
</code></pre>

<p>These are the tutorials i found and according to them i wrote this:</p>

<pre><code>private $SearchOptions = array(
        'queryParameters' =&gt; array(
            'databaseID' =&gt; 'WOS',
                'userQuery' =&gt; '',
                'editions' =&gt; array(
                array('collection' =&gt; 'WOS', 'edition' =&gt; 'SSCI'),
                array('collection' =&gt; 'WOS', 'edition' =&gt; 'SCI')
                ),
                'queryLanguage' =&gt; 'en'
        ),
        'retrieveParameters' =&gt; array(
                'count' =&gt; '5',
                'fields' =&gt; array(
                array('name' =&gt; 'Date', 'sort' =&gt; 'D')
                ),
                'firstRecord' =&gt; '1',
                'recordIDs' =&gt; 'On'
        )
    );
    private $FetchOptions = array(
        'databaseId' =&gt; 'WOS',
            'uids' =&gt; '',
            'queryLanguage' =&gt; 'en',
        'retrieveParameters' =&gt; array(
                'count' =&gt; '20',
                'fields' =&gt; array(
                array('name' =&gt; 'Date', 'sort' =&gt; 'D')
                ),
                'firstRecord' =&gt; '1'
        )
    );
</code></pre>

<p>But this doesn't work. RecordIDs is set to on, but the uids for the fetch / download Call are not automatically transfered. If i don't set an 'uids' => '', in the Fetch parameters it keeps saying "UIDs cannot be null or empty list". And of course with 'uids' => '' it still doesn't work. How do i pass the found uids from the search option to the retrievebyid option?</p>

<p>Thank you very much :)</p>
