improvements in file.js and minor change in README
This commit is contained in:
@@ -52,9 +52,9 @@ async function attachPdfToAccount(sfdc, tempFiles, isDryRun = false) {
|
|||||||
let parser;
|
let parser;
|
||||||
try {
|
try {
|
||||||
let contentVersion;
|
let contentVersion;
|
||||||
for (let i = 0; i < tempFiles.length; i++) {
|
//for (let i = 0; i < tempFiles.length; i++) {
|
||||||
// 1. Read the local PDF file and convert it to Base64
|
// 1. Read the local PDF file and convert it to Base64
|
||||||
const pdfBuffer = fs.readFileSync(tempFiles[i]);
|
const pdfBuffer = fs.readFileSync(tempFiles[0]);
|
||||||
const base64Pdf = pdfBuffer.toString('base64');
|
const base64Pdf = pdfBuffer.toString('base64');
|
||||||
parser = new PDFParse({ data: pdfBuffer });
|
parser = new PDFParse({ data: pdfBuffer });
|
||||||
try {
|
try {
|
||||||
@@ -89,8 +89,8 @@ async function attachPdfToAccount(sfdc, tempFiles, isDryRun = false) {
|
|||||||
|
|
||||||
// use the soql command to search in the database
|
// use the soql command to search in the database
|
||||||
// if codice fiscale is not available, I search the user's account based on their name and lastname
|
// if codice fiscale is not available, I search the user's account based on their name and lastname
|
||||||
const soql = `SELECT Id, Name FROM Account WHERE (${conditions.join(' OR ')}) ORDER BY CreatedDate DESC LIMIT 1`;
|
const soql1 = `SELECT Id, Name FROM Account WHERE (${conditions.join(' OR ')}) ORDER BY CreatedDate DESC LIMIT 1`;
|
||||||
const result_soql = await sfdc.query(soql);
|
const result_soql = await sfdc.query(soql1);
|
||||||
|
|
||||||
if (result_soql && result_soql.records && result_soql.records.length > 0) { // if we find something
|
if (result_soql && result_soql.records && result_soql.records.length > 0) { // if we find something
|
||||||
let matchFound = result_soql.records[0];
|
let matchFound = result_soql.records[0];
|
||||||
@@ -100,27 +100,26 @@ async function attachPdfToAccount(sfdc, tempFiles, isDryRun = false) {
|
|||||||
console.log('DRY RUN: non creato documento');
|
console.log('DRY RUN: non creato documento');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
const nowIsoString = new Date().toISOString(); // current timestamp in UTC
|
||||||
|
const newDocument = await sfdc.create('Documento__c', {
|
||||||
|
Account__c: `${ result_soql.records[0].Id }`,
|
||||||
|
Name: `Attestato - Sicurezza e Salute sul Lavoro -`,
|
||||||
|
Data_Caricamento__c: nowIsoString,
|
||||||
|
Tipo_Documento__c: "Stage doc",
|
||||||
|
Stato__c: 'Valido'
|
||||||
|
});
|
||||||
|
|
||||||
|
// this is the query that is needed to extract the Id of the client and assign it
|
||||||
|
// to FirstPublishLocationId field
|
||||||
|
const soql2 = `SELECT Account__c FROM Documento__c WHERE Id='${ newDocument.id }'`;
|
||||||
|
const docQuery = await sfdc.query(soql2);
|
||||||
|
console.log(`Doc Id: ${ newDocument.id }`);
|
||||||
contentVersion = await sfdc.create('ContentVersion', {
|
contentVersion = await sfdc.create('ContentVersion', {
|
||||||
Title: `${ result_soql.records[0].Name }_Document.pdf`,
|
Title: `${ result_soql.records[0].Name }_Document.pdf`,
|
||||||
PathOnClient: `${ result_soql.records[0].Name }_Document.pdf`,
|
PathOnClient: `${ result_soql.records[0].Name }_Document.pdf`,
|
||||||
VersionData: base64Pdf, // Must be Base64 string
|
VersionData: base64Pdf, // Must be Base64 string
|
||||||
FirstPublishLocationId: `${ result_soql.records[0].Id }`// Automatically creates the link to the Account!
|
FirstPublishLocationId: `${ docQuery.records[0].Account__c }`
|
||||||
});
|
});
|
||||||
|
|
||||||
//const accountName = result_soql.records[0].Name;
|
|
||||||
const nowIsoString = new Date().toISOString(); // current timestamp in UTC
|
|
||||||
const todayDate = new Date().toISOString().split('T')[0];
|
|
||||||
const newDocument = await sfdc.create('Documento__c', {
|
|
||||||
Account__c: `${ result_soql.records[0].Id }`,
|
|
||||||
//Name: `Attestato - ${ accountName } - ${ todayDate }`,
|
|
||||||
Name: `Attestato - Sicurezza e Salute sul Lavoro -`,
|
|
||||||
Data_Caricamento__c: nowIsoString,
|
|
||||||
Tipo_Documento__c: "Dossier di Tirocinio",
|
|
||||||
Stato__c: 'Valido'
|
|
||||||
});
|
|
||||||
|
|
||||||
//console.log(`Name: ${ result_soql.records[0].Name }`);
|
|
||||||
//console.log(`Id: ${ result_soql.records[0].Id }`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -132,7 +131,7 @@ async function attachPdfToAccount(sfdc, tempFiles, isDryRun = false) {
|
|||||||
await parser.destroy();
|
await parser.destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
console.log(`PDFs successfully attached!`);
|
console.log(`PDFs successfully attached!`);
|
||||||
console.log('Dry run completed!')
|
console.log('Dry run completed!')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user