Import
Import data
Import data
Import data from file
$this->get('import', $importId)->importFile($myFile);
Create new upload and import data in background in 100 row slices, 4 page/second, starting from second row:
$Upload = $this->get('import', $importId)->newUpload();
$Upload->setFilename($myFile)
->setAsync(true)
->setLimit(100)
->setThrottle(250)
->setStart(2)
->importData();
Set data from variable:
$Upload->setData($csvData)
->setAsync(true)
->setLimit(100)
->importData();
| Function | return | Description |
|---|---|---|
| getId() | string | Import id |
| getTitle() | string | Visible title |
| getDescription() | string | Additonal description |
| getDocumentation() | string | Longer documentation. |
| Upload data | return | Description |
|---|---|---|
| importFile($file) | ImportUpload | Create new upload and import given file. |
| newUpload() | ImportUpload | Create new upload. |
| getUpload($id) | ImportUpload | Get existing upload. |
| getUploads() | ImportUpload[] | Get previous uploads. |
Uploading of given file.
| Upload info | return | Description |
|---|---|---|
| getId() | string | Upload id. |
| getImport() | Import | Import object the upload belongs to. |
| getPreference($name) | mixed | Get Import preference. |
| Upload data | return | Description |
|---|---|---|
| setFile($file) | this | Set file to upload. |
| getFilename() | string | Get the name of the file that is being uploaded. |
| setData($data) | string | Import data in CSV format. |
| importData() | this | Execute upload file handling. |
| getData() | array | Raw data. |
| getDataMapped() | array | Mapped data (preferences+script). |
| setFeedback($bool) | this | Set page save feedback flag. |
| getFeedback() | bool | Set page save feedback flag. |
| setTest() | this | Set test flag. |
| getTest() | bool | Return test flag. |
| isTest() | bool | Return true, if test is on. |
Define how much resources the uploading of the file takes.
| Async and throttle | return | Description |
|---|---|---|
| setAsync() | this | Set async flag. true=Run in backround, false=run now, auto=make in background, if data more than limit. |
| getAsync() | bool | Return async flag. |
| isAsync() | bool | Return true, if uses async. |
| setThrottle($msecs) | this | Set time to use for one line (max rows to handle per second) |
| getThrottle() | int | Get seconds to wait before next slice. |
| Slice | return | Description |
|---|---|---|
| setLimit($int) | this | Set number of rows to handle in one slice. |
| getLimit() | int | Get number of rows to handle in one slice. |
| setStart($int) | this | Set row that upload is started from (1-based) |
| getStart() | int | Get start row number. |
| setEnd($int) | this | Set row that upload is ended in (1-based) |
| getEnd() | int | Get end row number. |
| getTotal() | int | Total number of rows in file. |
| isMore() | bool | Return TRUE, if there is more rows to handle after this slice. |
| rowsLeft() | int | Get number of rows left from the beginnin of this slice. |
| countRows() | int | Number of rows handled in this slice. |
| setDelay($secs) | this | Set time to wait before next slice. |
| getDelay() | int | Get seconds to wait before next slice. |
In import, you can modify PHP script that is run for every row after it has been mapped against import preferences.
Script is run inside of the ImportUpload class.
if ( !$this->isTest() ){
// Do only if not test
}
Set default value to field:
$rivi['fieldname'] = '100';
Custom manipulate address -data: Postnumber and town in same field
// Content of field: '000000 XXX XXX'
$address = explode(' ',$row[8]);
$rivi[address_field][0][data][postinumero] = array_shift($address); // First part
$rivi[address_field][0][data][toimipaikka] = implode(' ',$address); // The rest
Add new pages to main page
// Get employee
$employee = $this->get('page','employee','employee_id='.$row[0]);
// Get current benefits
$edut = explode(',',$employee->benefits->getValue());
if ( $row[4] > 0 ){
$benefit = $this->get('page','salary_and_benefits');
$benefit->start_date = $monthRateStart;
$benefit->salary_type = 'Monthly';
$benefit->salary = $row[4];
// Save new benefit
if ( !$test ) $benefit->tallenna();
// Add new benefit to employee
$benefits[] = $benefit->nr();
}
// Save new benefits to employee
$employee->benefits = implode(',',$benefits);
$employee->tallenna();
// OR if we are running this is Employee, save with other info
$rivi['benefits'] = implode(',',$benefits);
Prevent normal saving of data
unset($rivi); // Nothing to save ....
| Variable | return | Description |
|---|---|---|
| $this | ImportUpload | Import handler class |
| $Import | Action | Import action |
| $rivi | array | Associative array of data to be saved. |
| $row | array | Row data in array. |
| $data | array | All rows data. |
| $i | int | Number of the row in file that is being processed. |
| $start | int / Start row for this loop. | |
| $end | int. | Ednd row for this loop. |
| $test | bool | TRUE, jos tiedoston lähetyksessä on painettu "Testaa". |
| $taulu | mad_taulu | Table that the data is being saved into. |