Interface PeriodBatchAdminSession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession, PeriodAdminSession
This session creates, updates, and deletes Periods in bulk. The
data for create and update is provided by the consumer via the form
object. OsidForms are requested for each create or update and may
not be reused.
Create and update operations differ in their usage. To create a
Period , a PeriodForm is requested using
getPeriodFormsForCreate() specifying the desired record Types or
none if no record Types are needed. Each of the returned
PeriodForms will indicate that it is to be used with a create operation
and can be used to examine metdata or validate data prior to creation.
Once a PeriodForm is submiited to a create operation, it cannot be
reused with another create operation unless the first operation was
unsuccessful. Each PeriodForm corresponds to an attempted
transaction.
The PeriodForms returned from
getPeriodFormsForCreate() may be linked to the originating request
through the peer Ids of the PeriodForm . In the case where
there may be duplicates, any PeriodForm of the same peer
Ids may be used for a create operation.
Once a batch of PeriodForms are submitted for create, a
CreateResponse is returned for each PeriodForm , although the
ordering is not defined. Only errors that pertain to the entire create
operation are returned from createPeriods() , errors specific to
an individual PeriodForm are indicated in the corresponding
CreateResponse . CreateResponses may be linked to the originating
PeriodForm through the PeriodForm Id .
For updates, PeriodForms are requested to the Period
Id that is to be updated using getPeriodFormsForUpdate()
where the reference Id in the PeriodForm may be used to
link the request. Similarly, the PeriodForm has metadata about the
data that can be updated and it can perform validation before submitting
the update. The PeriodForm can only be used once for a successful
update and cannot be reused.
Once a batch of PeriodForms are submitted for update, an
UpdateResponse is returned for each PeriodForm , although
the ordering is not defined. Only errors that pertain to the entire update
operation are returned from updatePeriods() , errors specific to
an individual PeriodForm are indicated in the corresponding
UpdateResponse . UpdateResponses may be linked to the originating
PeriodForm through the PeriodForm Id .
The delete operations delete Periods in bulk. To unmap a
Period from the current Business , the
PeriodBusinessAssignmentSession should be used. These delete operations
attempt to remove the Period itself thus removing it from all
known Business catalogs. Bulk delete operations return the results
in DeleteResponses .
-
Method Summary
Modifier and TypeMethodDescriptionaliasPeriods(AliasRequestList aliasRequests) Adds anIdto aPeriodfor the purpose of creating compatibility.createPeriods(PeriodBatchFormList periodForms) Creates a new set ofPeriods.Deletes allPeriodsin thisBusiness.deletePeriods(IdList periodIds) Deletes periods for the givenIds.deletePeriodsByDate(DateTime date) Deletes periods containing the given date.getPeriodFormsForCreate(long number, Type[] periodRecordTypes) Gets the period forms for creating a bunch of new periods.getPeriodFormsForUpdate(IdList periodIds) Gets the period forms for updating an existing set of periods.updatePeriods(PeriodBatchFormList periodForms) Updates existing periods.Methods inherited from interface OsidSession
closeMethods inherited from interface OsidSession
getAuthenticatedAgent, getAuthenticatedAgentId, getClockRate, getDate, getEffectiveAgent, getEffectiveAgentId, getFormatType, getLocale, isAuthenticated, startTransaction, supportsTransactionsModifier and TypeMethodDescriptionGets the agent authenticated to this session.Gets theIdof the agent authenticated to this session.Gets the rate of the service clock.getDate()Gets the service date which may be the current date or the effective date in which this session exists.Gets the effective agent in use by this session.Gets theIdof the effective agent in use by this session.Gets theDisplayTextformatTypepreference in effect for this session.Gets the locale indicating the localization preferences in effect for this session.booleanTests if an agent is authenticated to this session.Starts a new transaction for this sesson.booleanTests for the availability of transactions.Methods inherited from interface PeriodAdminSession
aliasPeriod, canCreatePeriods, canCreatePeriodWithRecordTypes, canDeletePeriods, canManagePeriodAliases, canUpdatePeriods, createPeriod, deletePeriod, getBusiness, getBusinessId, getPeriodFormForCreate, getPeriodFormForUpdate, updatePeriodModifier and TypeMethodDescriptionvoidaliasPeriod(Id periodId, Id aliasId) Adds anIdto aPeriodfor the purpose of creating compatibility.booleanTests if this user can createPeriods.booleancanCreatePeriodWithRecordTypes(Type[] periodRecordTypes) Tests if this user can create a singlePeriodusing the desired record types.booleanTests if this user can deletePeriods.booleanTests if this user can manageIdaliases forPeriods.booleanTests if this user can updatePeriods.createPeriod(PeriodForm periodForm) Creates a newPeriod.voiddeletePeriod(Id periodId) Deletes aPeriod.Gets theBusinessassociated with this session.Gets theBusinessIdassociated with this session.getPeriodFormForCreate(Type[] periodRecordTypes) Gets the period form for creating new periods.getPeriodFormForUpdate(Id periodId) Gets the period form for updating an existing period.voidupdatePeriod(PeriodForm periodForm) Updates an existing period.
-
Method Details
-
getPeriodFormsForCreate
PeriodBatchFormList getPeriodFormsForCreate(long number, Type[] periodRecordTypes) throws OperationFailedException, PermissionDeniedException Gets the period forms for creating a bunch of new periods.- Parameters:
number- the number of forms to retrieveperiodRecordTypes- array of period record types to be included in each create operation or an empty list if none- Returns:
- the period forms
- Throws:
NullArgumentException-periodRecordTypesisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException- unable to request forms with given record types- Compliance:
mandatory- This method must be implemented.
-
createPeriods
CreateResponseList createPeriods(PeriodBatchFormList periodForms) throws OperationFailedException, PermissionDeniedException Creates a new set ofPeriods. This method returns an error if the entire operation fails. Otherwise, the status of an individual create operation is indicated in theBatchCreateResponse.- Parameters:
periodForms- the period forms- Returns:
- the create responses
- Throws:
NullArgumentException-periodFormsisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getPeriodFormsForUpdate
PeriodBatchFormList getPeriodFormsForUpdate(IdList periodIds) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the period forms for updating an existing set of periods. A new period form should be requested for each update transaction.- Parameters:
periodIds- theIdsof thePeriod- Returns:
- the period form
- Throws:
NotFoundException- aperiodIdis not foundNullArgumentException-periodIdsisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
updatePeriods
UpdateResponseList updatePeriods(PeriodBatchFormList periodForms) throws OperationFailedException, PermissionDeniedException Updates existing periods. This method returns an error if the entire operation fails. Otherwise, the status of an individual update operation is indicated in theBatchCreateResponse.- Parameters:
periodForms- the form containing the elements to be updated- Returns:
- the update responses
- Throws:
NullArgumentException-periodFormsisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
deleteAllPeriods
Deletes allPeriodsin thisBusiness.- Returns:
- the delete responses
- Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
deletePeriods
DeleteResponseList deletePeriods(IdList periodIds) throws OperationFailedException, PermissionDeniedException Deletes periods for the givenIds.- Parameters:
periodIds- theIdsof the periods to delete- Returns:
- the delete responses
- Throws:
NullArgumentException-periodIdsisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
deletePeriodsByDate
DeleteResponseList deletePeriodsByDate(DateTime date) throws OperationFailedException, PermissionDeniedException Deletes periods containing the given date.- Parameters:
date- a date- Returns:
- the delete responses
- Throws:
NullArgumentException-dateisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
aliasPeriods
AliasResponseList aliasPeriods(AliasRequestList aliasRequests) throws OperationFailedException, PermissionDeniedException Adds anIdto aPeriodfor the purpose of creating compatibility. The primaryIdof thePeriodis determined by the provider. The newIdis an alias to the primaryId. If the alias is a pointer to another period, it is reassigned to the given periodId.- Parameters:
aliasRequests- the alias requests- Returns:
- the alias responses
- Throws:
NullArgumentException-aliasRequestsisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-