package FS::export_batch; use strict; use base qw( FS::Record ); use FS::Record qw( qsearch qsearchs ); =head1 NAME FS::export_batch - Object methods for export_batch records =head1 SYNOPSIS use FS::export_batch; $record = new FS::export_batch \%hash; $record = new FS::export_batch { 'column' => 'value' }; $error = $record->insert; $error = $new_record->replace($old_record); $error = $record->delete; $error = $record->check; =head1 DESCRIPTION An FS::export_batch object represents a batch of records being processed by an export. This mechanism allows exports to process multiple pending service changes at the end of day or some other scheduled time, rather than doing everything in realtime or near-realtime (via the job queue). FS::export_batch inherits from FS::Record. The following fields are currently supported: =over 4 =item batchnum primary key =item exportnum The L object that created this batch. =item _date The time the batch was created. =item status A status string. Allowed values are "open" (for a newly created batch that can receive additional items), "closed" (for a batch that is no longer allowed to receive items but is still being processed), "done" (for a batch that is finished processing), and "failed" (if there has been an error exporting the batch). =item statustext Free-text field for any status information from the remote machine or whatever else the export is doing. If status is "failed" this MUST contain a value. =back =head1 METHODS =over 4 =item new HASHREF Creates a new batch. To add the example to the database, see L<"insert">. Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the I method. =cut sub table { 'export_batch'; } =item insert Adds this record to the database. If there is an error, returns the error, otherwise returns false. =item delete Delete this record from the database. Don't ever do this. =item replace OLD_RECORD Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false. =item check Checks all fields to make sure this is a valid batch. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. =cut sub check { my $self = shift; $self->set('status' => 'open') unless $self->get('status'); $self->set('_date' => time) unless $self->get('_date'); my $error = $self->ut_numbern('batchnum') || $self->ut_number('exportnum') || $self->ut_foreign_key('exportnum', 'part_export', 'exportnum') || $self->ut_number('_date') || $self->ut_enum('status', [ qw(open closed done failed) ]) || $self->ut_textn('statustext') ; return $error if $error; $self->SUPER::check; } =back =head1 BUGS =head1 SEE ALSO L, L =cut 1;