Skip to main content

SharePoint Rest Call Bulk Insert Data

You can create Max of 500 records in post request call if you include more than records better to call multiple requests this way you can achieve




<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.js"></script>

<h1>Employee Information</h1>
<br />   
<input type="button" id="btnFetchEmployees" value="Create and Fetch Employees" />
<br />
 <table cellpadding="2" cellspacing="2">
    <thead id="tHead">
    </thead>
    <tbody id="tBody">
    </tbody>
</table>

<script type="text/javascript">


(function () {
    jQuery(document).ready(function () {
       jQuery("#btnFetchEmployees").click(function () {
            addEmployees();
        });
    });
})();
function addEmployees() {
    var employeesAsJson = undefined;
    employeesAsJson = [
            {
                __metadata: {
                    type: 'SP.Data.EmployeeInfoListItem'
                },
                Title: 'Geetanjali',
                LastName: 'Arora',
                Technology: 'SharePoint'
            },
            {
                __metadata: {
                    type: 'SP.Data.EmployeeInfoListItem'
                },
                Title: 'Geetika',
                LastName: 'Arora',
                Technology: 'Graphics'
            },
            {
                __metadata: {
                    type: 'SP.Data.EmployeeInfoListItem'
                },
                Title: 'Ashish',
                LastName: 'Brajesh',
                Technology: 'Oracle'
            }
    ];
var ResultJSon =employeesAsJson;
for(var i=1;i<=500;i++)
{
var dynanmicRecord = { '__metadata': { 'type': 'SP.Data.EmployeeInfoListItem' },'Title': 'Record "+i+"','LastName': 'Brajesh', 'Technology': 'Oracle' } ;
dynanmicRecord.Title ='Record'+i;
 ResultJSon .push(dynanmicRecord);
console.log(ResultJSon );
}
alert(ResultJSon.length);
    addEmployeeInfoBatchRequest(ResultJSon );
}
function generateUUID() {
    var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
    });
    return uuid;
};
function addEmployeeInfoBatchRequest(employeesAsJson) {
    // generate a batch boundary
    var batchGuid = generateUUID();
    // creating the body
    var batchContents = new Array();
    var changeSetId = generateUUID();
    // get current host
    var temp = document.createElement('a');
    temp.href = _spPageContextInfo.webAbsoluteUrl;
    var host = temp.hostname;
    // iterate through each employee
    for (var employeeIndex = 0; employeeIndex < employeesAsJson.length; employeeIndex++) {
        var employee = employeesAsJson[employeeIndex];
        // create the request endpoint
        var endpoint = _spPageContextInfo.webAbsoluteUrl
                       + '/_api/web/lists/getbytitle(\'EmployeeInfo\')'
                       + '/items';
        // create the changeset
        batchContents.push('--changeset_' + changeSetId);
        batchContents.push('Content-Type: application/http');
        batchContents.push('Content-Transfer-Encoding: binary');
        batchContents.push('');
        batchContents.push('POST ' + endpoint + ' HTTP/1.1');
        batchContents.push('Content-Type: application/json;odata=verbose');
        batchContents.push('');
        batchContents.push(JSON.stringify(employee));
        batchContents.push('');
    }
    // END changeset to create data
    batchContents.push('--changeset_' + changeSetId + '--');
    // batch body
    var batchBody = batchContents.join('\r\n');
    batchContents = new Array();
    // create batch for creating items
    batchContents.push('--batch_' + batchGuid);
    batchContents.push('Content-Type: multipart/mixed; boundary="changeset_' + changeSetId + '"');
    batchContents.push('Content-Length: ' + batchBody.length);
    batchContents.push('Content-Transfer-Encoding: binary');
    batchContents.push('');
    batchContents.push(batchBody);
    batchContents.push('');
    // create request in batch to get all items after all are created
    endpoint = _spPageContextInfo.webAbsoluteUrl
                  + '/_api/web/lists/getbytitle(\'EmployeeInfo\')'
                  + '/items?$orderby=Title';
    batchContents.push('--batch_' + batchGuid);
    batchContents.push('Content-Type: application/http');
    batchContents.push('Content-Transfer-Encoding: binary');
    batchContents.push('');
    batchContents.push('GET ' + endpoint + ' HTTP/1.1');
    batchContents.push('Accept: application/json;odata=verbose');
    batchContents.push('');
    batchContents.push('--batch_' + batchGuid + '--');
    batchBody = batchContents.join('\r\n');
    // create the request endpoint
    var endpoint = _spPageContextInfo.webAbsoluteUrl + '/_api/$batch';
       var batchRequestHeader = {
        'X-RequestDigest': jQuery("#__REQUESTDIGEST").val(),
        'Content-Type': 'multipart/mixed; boundary="batch_' + batchGuid + '"'
    };
    // create request
    jQuery.ajax({
        url: endpoint,
        type: 'POST',
        headers: batchRequestHeader,
        data: batchBody,
        success: function (response) {
            var responseInLines = response.split('\n');
        $("#tHead").append("<tr><th>First Name</th><th>Last Name</th><th>Technology</th></tr>");
            for (var currentLine = 0; currentLine < responseInLines.length; currentLine++) {
                try {
                    var tryParseJson = JSON.parse(responseInLines[currentLine]);
                    $.each(tryParseJson.d.results, function (index, item) {
                        $("#tBody").append("<tr><td>" + item.Title + "</td><td>" + item.LastName + "</td><td>" + item.Technology + "</td></tr>");
                    });
                } catch (e) {
                    
                }
            }
        },
        fail: function (error) {
             
        }
    });
}
</script>

Comments

Popular posts from this blog

Site Logo Not Changing on Web Part Pages

I tested and reproduced your issue in my local machine. Since the Web Part Pages would override the content in PlaceHolderPageTitleInTitleArea place holder, the site logo would not change automatically. So would you please try remove or comment the following control TitleBarWebPart: See the similar scenario and solution: http://emanonsolutions.blogspot.com/2010/02/left-navigation-webpart-pages.html Hope this can help.

Create a Custom Site Definition with Additional Content in SharePoint 2010 Using Visual Studio 2010

·          Web Templates ·          Site Definitions and Configurations ·          Deciding Between Custom Web Templates and Custom Site Definitions ·          Understanding Onet.xml Files ·          How to: Create a Custom Web Template ·          Overview of Creating Custom Site Definitions Site Template Configurator utility http://stefan-stanev-sharepoint-blog.blogspot.com/search/label/SharePoint%202010 Create a Custom Site Definition with Additional Content in SharePoint 2010 Using Visual Studio 2010 http://community.bamboosolutions.com/blogs/sharepoint-2010/archive/2010/11/11/sharepoint-2010-cookbook-how-to-create-a-custom-site-definition-with-additional-content-in-sharepoint-2010-using-visual-studio-2010.aspx http://blogs.msdn.com/b/allenwang/...

SharePoint 2010 Branding

Real World Branding with SharePoint 2010 Publishing Sites http://msdn.microsoft.com/en-us/library/gg430141.aspx#Y13640 The most important source of information is the  SDK . I can’t stress that enough. There is so much more documentation with this release than there was with 2007. However, we are all in the habit of looking to each other for information first. Researching the SDK and walking through the Development classes, even if you aren’t a developer. is an important step in understanding the complex relationships between the objects in SharePoint and ASP.NET. Planning Strategy and Design Visual Design SharePoint 2010 Layered Photoshop File!  – Erik Swenson Universal Usability Guidelines The Pursuit of Interface Design Simplicity  -Luke Wroblewski Visible Narratives: Understanding Visual Organization  -Luke Wroblewski Common Visual Design Misconceptions  – Luke Wroblewski Usability 20 Do’s and Don’ts of Effective Web Design Introduction to Good Usab...