# Generating thousands/millions of rows of Synthetic DPL data using Rest APIs

Below is the Service Suite script that can be used to generate synthetic data using Rest APIs, this would be useful when generating millions of data which might be difficult using the UI as UI will have its own limitations.

Start AIQ

Go to Service Suite

API editor

Open the below script

modify the quantity variable to 1000000 (or as desired)

Save and run

a file with 1000000 will be created.

Note: There are 2 parameters that might be required to change.

1. AIQ URL (Line 1) - `var $baseURL = "http://localhost:8080";`
2. Creds (Line 12 and 13) - Username and password.
 
<div class="codeSnippet" id="bkmrk-copy-var-%24baseurl-%3D-">[Copy](javascript:void(0);)<div class="codeSnippetBody" data-mc-continue="False" data-mc-line-number-start="1" data-mc-use-line-numbers="False" style="mc-code-lang: JavaScript;">```
<span style="color: #333333; font-weight: bold; ">var</span> $baseURL = <span style="color: #dd1144; ">"http://localhost:8080"</span>;<br></br><br></br><span style="color: #333333; font-weight: bold; ">function</span> <span style="color: #990000; font-weight: bold; ">getTimestamp</span>() {<br></br>    <span style="color: #333333; font-weight: bold; ">return</span> (<span style="color: #333333; font-weight: bold; ">new</span> <span style="color: #0086b3; ">Date</span>()).getTime();<br></br>}<br></br><br></br><span style="color: #999988; font-style: italic; ">//</span><br></br><span style="color: #999988; font-style: italic; ">// LOGIN</span><br></br><span style="color: #999988; font-style: italic; ">//</span><br></br><span style="color: #333333; font-weight: bold; ">function</span> <span style="color: #990000; font-weight: bold; ">login</span>($baseURL) {<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> $loginForm = formData();<br></br>    $loginForm.put(<span style="color: #dd1144; ">"username"</span>, <span style="color: #dd1144; ">"appvance"</span>);<br></br>    $loginForm.put(<span style="color: #dd1144; ">"password"</span>, <span style="color: #dd1144; ">"appvance"</span>);<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> $call = createPost($baseURL + <span style="color: #dd1144; ">"/AppvanceServer/rest/admin/logginForServices"</span>, $loginForm);<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> $resp = process($call).getDataString();<br></br>    <span style="color: #333333; font-weight: bold; ">if</span> ($resp.indexOf(<span style="color: #dd1144; ">"true"</span>) != <span style="color: #008080; ">-1</span>) {<br></br>        <span style="color: #999988; font-style: italic; ">//</span><br></br>        <span style="color: #999988; font-style: italic; ">// GET JSESSIONID COOKIE</span><br></br>        <span style="color: #999988; font-style: italic; ">//</span><br></br>        <span style="color: #333333; font-weight: bold; ">var</span> $jsession = getCookieValue($baseURL, <span style="color: #dd1144; ">"JSESSIONID"</span>);<br></br>        addGlobalHeader(<span style="color: #dd1144; ">"cookie"</span>, <span style="color: #dd1144; ">"JSESSION = "</span> + $jsession);<br></br>        log(<span style="color: #dd1144; ">"Login successful, JSESSION:"</span> + $jsession)<br></br>        <span style="color: #333333; font-weight: bold; ">return</span> <span style="color: #008080; ">true</span>;<br></br>    } <span style="color: #333333; font-weight: bold; ">else</span> {<br></br>        <span style="color: #333333; font-weight: bold; ">return</span> <span style="color: #008080; ">false</span>;<br></br>    }<br></br>}<br></br><br></br><span style="color: #333333; font-weight: bold; ">var</span> $resp = login($baseURL);<br></br><span style="color: #333333; font-weight: bold; ">var</span> quantity = <span style="color: #008080; ">100000</span>;<br></br><span style="color: #333333; font-weight: bold; ">var</span> fileName = <span style="color: #dd1144; ">"REPOSITORY/HOME/DPL.csv"</span>;<br></br><br></br><span style="color: #333333; font-weight: bold; ">if</span> ($resp === <span style="color: #008080; ">true</span>) {<br></br><br></br>    log(<span style="color: #dd1144; ">"Is Logged"</span>);<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> data = [[<span style="color: #dd1144; ">"qty"</span>, <span style="color: #dd1144; ">"test"</span>],[<span style="color: #dd1144; ">"syn.random.number(10)"</span>,<span style="color: #dd1144; ">"syn.random.number(100)"</span>]];<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> call = createPost($baseURL + <span style="color: #dd1144; ">"/AppvanceServer/rest/syntheticDPL/evaluate?lines="</span>+quantity+<span style="color: #dd1144; ">"&locale=en_US"</span>, data);<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> stringJson = process(call).getDataString();  <br></br>    <span style="color: #333333; font-weight: bold; ">var</span> payload = <span style="color: #0086b3; ">JSON</span>.parse(stringJson.replace(/\n|\r/g, <span style="color: #dd1144; ">""</span>).trim());<br></br>    <span style="color: #333333; font-weight: bold; ">var</span> callSave = createPost($baseURL + <span style="color: #dd1144; ">'/AppvanceServer/rest/file/updateCSVFile?commitMessage=&path='</span> + fileName, payload);    <br></br>    <span style="color: #333333; font-weight: bold; ">var</span> stringJsonSave = process(callSave).getDataString();  <br></br>    <span style="color: #333333; font-weight: bold; ">var</span> response = <span style="color: #0086b3; ">JSON</span>.parse(stringJsonSave);<br></br>    log(fileName + <span style="color: #dd1144; ">" was saved: "</span> + response.status); <br></br>}<br></br><span style="color: #999988; font-style: italic; ">//</span><br></br><span style="color: #999988; font-style: italic; ">// LOGOUT</span><br></br><span style="color: #999988; font-style: italic; ">//</span><br></br><span style="color: #333333; font-weight: bold; ">var</span> $resp = get($baseURL + <span style="color: #dd1144; ">"/AppvanceServer/rest/admin/logout"</span>);<br></br>log(<span style="color: #dd1144; ">"logout: "</span> + $resp.getDataString());
```

 </div> </div><div id="bkmrk-" style="border-width: 1px;"><div> </div> </div><div id="bkmrk-last-updated%3A-june-0">---

Last updated: <span class="mc-variable General.NewDateTimeVariable variable">June 02, 2023</span>

If you have any feedback on this topic, please contact us at <documentation@appvance.ai>

</div>