bulkCreateOp
Usage
const bulkData = await bulkCreateOp(tableName, payload);Parameters
tableName
Name of the PostgreSQL table where multiple records will be inserted.
payload
Contains an array of objects under __d3__bulkData.
If inserting into a related table, include:
__d3__parentId__d3__relationId
You can also optionally include:
__d3__updateOnDuplicate__d3__conflictFields
Bulk Create Payload (Main Table)
{
"__d3__bulkData": [
{
"id": 3,
"Teachers ID": null,
"firstName": "Test 3",
"lastName": null,
"lastName2": null,
"dateOfBirth": null,
"email": "test@.gmail.com",
"Roll No": 12,
"Classes": "First",
"Courses": null,
"New Test 1": null,
"New Test 2": null,
"New Test 5": null,
"New Test 45": null,
"Class": null
}
],
"__d3__updateOnDuplicate": false,
"__d3__conflictFields": []
}Bulk Create Payload (Related Table)
{
"__d3__bulkData": [
{
"id": 3,
"Teachers ID": null,
"firstName": "Test 3",
"lastName": null,
"lastName2": null,
"dateOfBirth": null,
"email": "test@.gmail.com",
"Roll No": 12,
"Classes": "First",
"Courses": null,
"New Test 1": null,
"New Test 2": null,
"New Test 5": null,
"New Test 45": null,
"Class": null
}
],
"__d3__parentId": 1,
"__d3__relationId": "ID of the relation",
"__d3__updateOnDuplicate": false,
"__d3__conflictFields": []
}Duplicate Handling Options
__d3__updateOnDuplicate
Use true when you want to update an existing record instead of creating a new one, if the indexed column value already exists.
{
"__d3__updateOnDuplicate": true
}__d3__conflictFields
Defines which columns should be checked for duplication.
You can include one or multiple columns to form a custom composite index.
{
"__d3__conflictFields": ["email"]
}Or multiple fields:
{
"__d3__conflictFields": ["email", "Roll No"]
}Legacy Payload Example
{
__d3__bulkData: [
{
columnName1: 'columnValue1',
columnName2: 'columnValue2',
columnName3: 'columnValue3',
},
{
columnName1: 'columnValue1',
columnName2: 'columnValue2',
columnName3: 'columnValue3',
}
]
}Related Table (Legacy Format)
{
__d3__bulkData: [
{
columnName1: 'columnValue1',
columnName2: 'columnValue2',
columnName3: 'columnValue3',
}
],
__d3__parentId: 1,
__d3__relationId: "ID of the relation"
}Return Value
Returns an array of newly created records from:
Sequelize dataModel.bulkCreate()Sample bulkData Output
[
{
columnName1: 'columnValue1',
columnName2: 'columnValue2',
columnName3: 'columnValue3',
},
{
columnName1: 'columnValue1',
columnName2: 'columnValue2',
columnName3: 'columnValue3',
}
]Example Code
async function customizeERP(userData, apiOperations) {
const tableName = "table_name";
const { bulkCreateOp } = apiOperations;
return new Promise(async (resolve, reject) => {
const payload = {
__d3__bulkData: userData.__d3__bulkData,
__d3__updateOnDuplicate: userData.__d3__updateOnDuplicate,
__d3__conflictFields: userData.__d3__conflictFields
};
const bulkData = await bulkCreateOp(tableName, payload);
if (bulkData) {
resolve({ result: bulkData });
} else {
resolve({
result: {},
popupMsg: {
type: "error",
message: "Could Not create data! Please try again later"
}
});
}
});
}Example Input
{
"__d3__bulkData": [
{
"name": "Sample_1",
"bio": "Sample_1",
"create at": "2025-06-11T09:02:01.794Z"
},
{
"name": "Sample_2",
"bio": "Sample_2",
"create at": "2025-06-11T09:02:01.794Z"
}
]
}Example Output
{
"response": {
"__d3__result": {
"result": {
"bulkCreated": 2
}
},
"__d3__error": false,
"printConsole": []
}
}