You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 4
Next »
This section describes how a related archive entity can be created
What does this section cover?
Related archive entities are the entities that refer (have a foreign key) to an entity that can be archived.
In order for an entity to be considered related archive entity, it has to meet the following conditions:
The entity's table must include the following fields:
- A foreign key to PROCESSRUNLOG table.
- An integer field to indicate whether the entity's related entity is archived or not. (0 - not archived, 1- archived)
The entity's DO class must:
- Implement ICRMDORelatedArchiveEntity interface and its following methods:
- getRefersToArchivedEntity()
- isRefersToArchivedEntity()
- setRefersToArchivedEntity(Integer refersToArchivedEntity)
- getProcessRunLog()
- setProcessRunLog(CRMDOProcessRunLog processRunLog)
Example 1
ppublic class CUSTOMCRMDORental extends CRMDO implements ICRMDORelatedArchiveEntity{
private CUSTOMCRMDORentalType type;
private CUSTOMRentalState state;
private CRMDOAccountReceivable accountReceivable;
private Date effectiveDate;
private Date expirationDate;
private Integer refersToArchivedEntity;
private CRMDOProcessRunLog processRunLog;
private Set<CUSTOMCRMDORentalItem> items;
public CUSTOMRentalState getState() {
return state;
}
public void setState(CUSTOMRentalState state) {
setChange("state", this.state, state);
this.state = state;
}
public CRMDOAccountReceivable getAccountReceivable() {
return accountReceivable;
}
public void setAccountReceivable(CRMDOAccountReceivable accountReceivable) {
setChange("accountReceivable", this.accountReceivable, accountReceivable);
this.accountReceivable = accountReceivable;
}
public Date getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(Date effectiveDate) {
setChange("effectiveDate", this.effectiveDate, effectiveDate);
this.effectiveDate = effectiveDate;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
setChange("expirationDate", this.expirationDate, expirationDate);
this.expirationDate = expirationDate;
}
public Set<CUSTOMCRMDORentalItem> getItems() {
return items;
}
public void setItems(Set<CUSTOMCRMDORentalItem> items) {
setChange("items", this.items, items);
this.items = items;
}
public CUSTOMCRMDORentalType getType() {
return type;
}
public void setType(CUSTOMCRMDORentalType type) {
setChange("type", this.type, type);
this.type = type;
}
@Override
public Integer getRefersToArchivedEntity() {
return refersToArchivedEntity;
}
@Override
public void setRefersToArchivedEntity(Integer refersToArchivedEntity) {
setChange("refersToArchivedEntity", this.refersToArchivedEntity, refersToArchivedEntity);
this.refersToArchivedEntity = refersToArchivedEntity;
}
@Override
public CRMDOProcessRunLog getProcessRunLog() {
return processRunLog;
}
@Override
public void setProcessRunLog(CRMDOProcessRunLog processRunLog) {
setChange("processRunLog", this.processRunLog, processRunLog);
this.processRunLog = processRunLog;
}
@Override
public Boolean isRefersToArchivedEntity(){
return ((refersToArchivedEntity!=null && refersToArchivedEntity.equals(new Integer(1))) ? true : false);
}
}
In entities metadata file:
Archived entity's <archiverelatedentities> tag value must include the related archived entity's id. <archiverelatedentities> tag can include more that one entity ids, separated by semicolons. For more information on archived entities go to Create an Archive Entity.
<entityconfig>
<entities>
<entity>
<id>CUSTOMRENTALS</id>
<name>key_rental</name>
<tablename>TRN_RENTALS</tablename>
<classname>com.crm.dataobject.rentals.CUSTOMCRMDORental</classname>
<moduleid>CUSTOM_RENTALS</moduleid>
<metadatafile>rentals</metadatafile>
</entity>
<entity>
<id>CUSTOMRENTALTYPES</id>
<name>key_rental_type</name>
<tablename>TRN_RENTALTYPES</tablename>
<classname>com.crm.dataobject.rentals.CUSTOMCRMDORentalType</classname>
<moduleid>CUSTOMRENTALS</moduleid>
<metadatafile>rentaltypes</metadatafile>
<isarchived>true</isarchived>
<archivecollections>TRN_RENTTYPEPRODUCTS</archivecollections>
<archiverelatedentities>CUSTOMRENTALS</archiverelatedentities>
</entity>
<entity>
<id>CUSTOMRENTALTYPEPRODUCTS</id>
<name>key_rental_type_product</name>
<tablename>TRN_RENTTYPEPRODUCTS</tablename>
<classname>com.crm.dataobject.rentals.CUSTOMCRMDORentalTypeProduct</classname>
<moduleid>CUSTOMRENTALS</moduleid>
<isarchived>true</isarchived>
</entity>
...
</entities>
</entityconfig>