c2g.AllocationsService
global with sharing class AllocationsService
The service class relating to Allocations.
Enums
DateRangeType
Indicates whether the allocation process will select transactions using a date range or a period range.
DateRange
By date range (FromDate and ToDate) on the allocation template.
PeriodRange
By period range (FromPeriodId and ToPeriodId) on the allocation template.
SoftDateRangeType
SoftPeriodRangeType
BasisType
The list of valid basis types.
Statistical
The allocation is created by selecting statistical basis.
CopyGla
The list of valid places you can copy GLAs from to use in the allocation.
FromSource
The GLAs specified in the source data are used.
FromBasis
The GLAs specified in the statistical basis used for this allocation are used.
DistributionField
The list of valid distribution fields.
Company
Statistical values are distributed by Company.
GeneralLedgerAccount
Statistical values are distributed by GeneralLedgerAccount.
Dimension1
Statistical values are distributed by Dimension1.
Dimension2
Statistical values are distributed by Dimension2.
Dimension3
Statistical values are distributed by Dimension3.
Dimension4
Statistical values are distributed by Dimension4.
AllocationMethod
The list of valid allocation methods.
Fixed
The allocation is created by a fixed allocation rule or by manual allocation.
Variable
The allocation is created by a variable allocation rule or by selecting a statistical basis.
AllocationItem
The list of valid allocation items.
Transaction
The allocation is created for transactions.
FilterStructureType
The list of valid filter structure types. Set the FilterStructureType of the filter structure with the field values of this enumeration.
Company
Company value
Dimension1
Dimension1 value.
Dimension2
Dimension2 value.
Dimension3
Dimension3 value.
Dimension4
Dimension4 value.
GeneralLedgerAccount
General Ledger Account value.
Period
Accounting period value.
Account
Account value.
DefaultFilterCriteria
The list of valid default filter criteria types.
EqualsValue
Enables you to select a single value. When this type is selected, the value must be unique.
FromToValue
Enables you to select a range of values.
MultiselectValue
Enables you to select multiple values.
FilterFor
The list of valid default filter for values.
DistributeToGla
Enables you to select the individual GLAs you want to allocate to.
FilterCriteria
The list of valid filter criteria types.
EqualsValue
Enables you to select a single value for the filter.
FromValue
Enables you to select a From value for a range.
MultiselectValue
This type indicates that the value will be used on the filter as the multi-select value. You could filter the object by more than one record.
ToValue
Enables you to select a To value for a range.
GLADistribution
The list of GLA distribution options.
Manual
Select the distribution GLAs manually.
FromSource
Copy the source GLAs.
FromBasis
Copy the GLAs from the associated statistical basis.
FilterOperator
The list of valid filter operators.
Equals
Equals Value
NotEquals
Not Equals Value
Contains
Contains Value
DistributionFields
The list of valid distribution field types.
GeneralLedgerAccount
Enables you to select General Ledger Account as the distribution field.
Dimension1
Enables you to select Dimension 1 as the distribution field.
Dimension2
Enables you to select Dimension 2 as the distribution field.
Dimension3
Enables you to select Dimension 3 as the distribution field.
Dimension4
Enables you to select Dimension 4 as the distribution field.
DestinationType
The list of valid destination types. These are the document types that the Allocation process creates.
Journals
The process will create a journal.
Transactions
The process will create a transaction. This is the default.
AllocationType
The list of valid allocation types. These are the allocation types that the Allocation process creates.
Fixed
Allocation is of fixed type. This is the default.
Statistical
Allocation is of variable type.
Methods
getFiltersWithValues
global static List<c2g.AllocationsService.FilterDataStructure> getFiltersWithValues(List<c2g.AllocationsService.RefineFilterStructure> refineFilterStructureList)
This method returns the reference values that contain the ID and Name.
Input Parameters
Return Value
This service returns a list of c2g.AllocationsService.FilterDataStructure objects
Sample Code
1
2
3
4
5
6
7
List<AllocationsService.FilterDataStructure> filterDataStructureList = c2g.AllocationsService.getFiltersWithValues(
new
List<c2g.AllocationsService.RefineFilterStructure>{
new
c2g.AllocationsService.RefineFilterStructure(
'c2g__codaGeneralLedgerAccount__c'
,
''
,
null
) } );
retrieve
global static c2g.AllocationsService.RetrieveStructure retrieve(c2g.AllocationsService.Template template)
Retrieves a RetrieveStructure with the required information to create Allocation Transaction Line Items. For example, Company, General Ledger Accounts and Dimensions.
Input Parameters
Return Value
This service returns a c2g.AllocationsService.RetrieveStructure object.
Sample Code
1
2
3
4
5
6
7
8
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Id =
'a04240000008ALi'
;
template.ToDate = system.today();
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(template);
createAllocations
global static List<Id> createAllocations(List<c2g.AllocationsService.AllocationsStructure> allocationsStructureList)
This method creates the allocation transaction or journal based on an AllocationStructure created by the developer. Use ManageAllocations (Manage Allocations) custom permission to grant permissions on this method.
Input Parameters
Return Value
A list of Id objects. This will be Journal Ids or Transaction Ids, depending on the chosen Destination Type.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
c2g.AllocationsService.RetrieveData retrieveData1 =
new
c2g.AllocationsService.RetrieveData();
retrieveData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
retrieveData1.Dimension1Id =
'a1Cw00000002w45'
;
retrieveData1.Dimension2Id =
'a1Dw0000001BIuj'
;
retrieveData1.Dimension3Id =
'a1Ew000000Io7j6'
;
retrieveData1.Dimension4Id =
'a1Fw00000014wzA'
;
retrieveData1.TransactionLineItemsSumValue =
100
;
c2g.AllocationsService.SplitData splitData1 =
new
c2g.AllocationsService.SplitData();
splitData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData1.Dimension1Id =
'a1Cw00000002w45'
;
splitData1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitData1.Amount =
25
;
c2g.AllocationsService.SplitData splitData2 =
new
c2g.AllocationsService.SplitData();
splitData2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData2.Dimension3Id =
'a1Ew000000Io7j6'
;
splitData2.Dimension4Id =
'a1Fw00000014wzA'
;
splitData2.Amount =
75
;
c2g.AllocationsService.AllocationsStructure allocationStr =
new
c2g.AllocationsService.AllocationsStructure();
allocationStr.RetrieveDataList =
new
List<c2g.AllocationsService.RetrieveData> {retrieveData1};
allocationStr.SplitDataList =
new
List<c2g.AllocationsService.SplitData>{splitData1, splitData2};
allocationStr.AllocationsDate = System.today();
allocationStr.PeriodId =
'a1uw0000001Kd6l'
;
List<Id> transactionIdList = c2g.AllocationsService.createAllocations(
new
List<c2g.AllocationsService.AllocationsStructure> {allocStructure});
createAllocationsWithBatch
global static List<Id> createAllocationsWithBatch(List<c2g.AllocationsService.AllocationsStructure> allocationsStructureList)
This method creates the allocation transaction or journal based on an AllocationStructure created by the developer. Allocations with higher volumes will be processed in batch. All limits are defined in codaDocumentLineVolumeSettings__c. Journal limits are defined by the ManualJournalLinesLimit__c field, and Transactions are defined by the AllocationBatchLinesLimit__c field. Use ManageAllocations (Manage Allocations) custom permission to grant permissions on this method.
Input Parameters
Return Value
A list of Id objects. If batch is not used because line limits were not reached, this will be Journal Ids or Transaction Ids, depending on the chosen Destination Type. If batch is used due to high volumes, this will be Allocation Ids.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
c2g.AllocationsService.RetrieveData retrieveData1 =
new
c2g.AllocationsService.RetrieveData();
retrieveData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
retrieveData1.Dimension1Id =
'a1Cw00000002w45'
;
retrieveData1.Dimension2Id =
'a1Dw0000001BIuj'
;
retrieveData1.Dimension3Id =
'a1Ew000000Io7j6'
;
retrieveData1.Dimension4Id =
'a1Fw00000014wzA'
;
retrieveData1.TransactionLineItemsSumValue =
100
;
c2g.AllocationsService.SplitData splitData1 =
new
c2g.AllocationsService.SplitData();
splitData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData1.Dimension1Id =
'a1Cw00000002w45'
;
splitData1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitData1.Amount =
25
;
c2g.AllocationsService.SplitData splitData2 =
new
c2g.AllocationsService.SplitData();
splitData2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData2.Dimension3Id =
'a1Ew000000Io7j6'
;
splitData2.Dimension4Id =
'a1Fw00000014wzA'
;
splitData2.Amount =
75
;
c2g.AllocationsService.AllocationsStructure allocationStr =
new
c2g.AllocationsService.AllocationsStructure();
allocationStr.RetrieveDataList =
new
List<c2g.AllocationsService.RetrieveData> {retrieveData1};
allocationStr.SplitDataList =
new
List<c2g.AllocationsService.SplitData>{splitData1, splitData2};
allocationStr.AllocationsDate = System.today();
allocationStr.PeriodId =
'a1uw0000001Kd6l'
;
List<Id> transactionIdList = c2g.AllocationsService.createAllocations(
new
List<c2g.AllocationsService.AllocationsStructure> {allocStructure});
saveTemplates
global static List<Id> saveTemplates(List<c2g.AllocationsService.Template> templateList)
This method saves a list of templates. This method also deletes the existing record and creates a new one with the old and new values. Use ManageAllocations (Manage Allocations) custom permission to grant permissions on this method.
Input Parameters
Return Value
This service a list of Id objects.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
c2g.AllocationsService.Filter filter1 =
new
c2g.AllocationsService.Filter();
filter1.FilterCriteria = c2g.AllocationsService.FilterCriteria.MultiselectValue;
filter1.Values =
new
List<Object> {
'a1Cw00000002w45'
};
c2g.AllocationsService.FilterStructure filterStr1 =
new
c2g.AllocationsService.FilterStructure();
filterStr1.FilterPosition =
1
;
filterStr1.FilterStructureType = c2g.AllocationsService.FilterStructureType.Dimension1;
filterStr1.DefaultFilterCriteria = c2g.AllocationsService.DefaultFilterCriteria.MultiselectValue;
filterStr1.FilterList =
new
List<c2g.AllocationsService.Filter>{filter1};
c2g.AllocationsService.SplitStructure splitStr1 =
new
c2g.AllocationsService.SplitStructure();
splitStr1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr1.Dimension1Id =
'a1Cw00000002w45'
;
splitStr1.Percentage =
20
;
c2g.AllocationsService.SplitStructure splitStr2 =
new
c2g.AllocationsService.SplitStructure();
splitStr2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr2.Dimension1Id =
'a1Cw00000002w45'
;
splitStr2.Percentage =
80
;
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Name =
'Template1'
;
template.Description =
'Template Description'
;
template.FilterStructureList =
new
List<c2g.AllocationsService.FilterStructure> {filterStr1};
template.SplitStructureList =
new
List<c2g.AllocationsService.SplitStructure> {splitStr1, splitStr2};
List<id> templateId = c2g.AllocationsService.saveTemplates(
new
List<c2g.AllocationsService.Template> {template} );
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Name =
'Template1'
;
template.Description =
'Template Description'
;
template.DestinationCompanyId =
'a1Cw00000002w45'
;
template.FilterStructureList =
new
List<c2g.AllocationsService.FilterStructure> {filterStr1};
template.SplitStructureList =
new
List<c2g.AllocationsService.SplitStructure> {splitStr1, splitStr2};
List<id> templateId = c2g.AllocationsService.saveTemplates(
new
List<c2g.AllocationsService.Template> {template} );
loadTemplates
global static List<c2g.AllocationsService.Template> loadTemplates(Set<Id> templateIds)
This method creates the allocation transaction or journal based on an AllocationStructure created by the developer.
Input Parameters
templateIds
Set<Id>
List of templates.
Return Value
This service returns a list of Id objects.
Sample Code
1
2
3
4
5
List<c2g.AllocationsService.Template> templateList = c2g.AllocationsService.loadTemplates(
new
Set<id> {
'a04240000008ALi'
});
calculateSplitStructureLinesForFixedAllocation
global static Map<Id, List<c2g.AllocationsService.SplitStructure>> calculateSplitStructureLinesForFixedAllocation(Set<Id> ruleIds)
This method calculates the Split Structure lines from rule Ids.
Input Parameters
ruleIds
Set<Id>
List of fixed allocation rule Ids.
Return Value
This service returns a map of Id, c2g.AllocationsService.SplitStructure objects.
Sample Code
1
2
3
4
5
Map<Id, List<c2g.AllocationsService.SplitStructure>> splitStructureMap = c2g.AllocationsService.calculateSplitStructureLinesForFixedAllocation(
new
Set<id> {
'a04240000008ALi'
});
calculateSplitDataLinesForStatisticalAllocation
global static List<c2g.AllocationsService.SplitData> calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.RuleBasedStatisticalAllocation ruleBasedStatisticalAllocation)
This method calculates the Split Data lines from rule based statistical allocation.
Input Parameters
Return Value
This service returns a list of c2g.AllocationsService.SplitData objects.
Sample Code
1
2
3
4
5
6
7
8
9
c2g.AllocationsService.RuleBasedStatisticalAllocation ruleBasedStatisticalAllocation =
new
c2g.AllocationsService.RuleBasedStatisticalAllocation();
ruleBasedStatisticalAllocation.RuleId =
'a04240000008ALi'
;
ruleBasedStatisticalAllocation.GlaIds =
new
Set<Id>{
'a1Lw00000020For'
,
'a1Lw00000030For'
};
ruleBasedStatisticalAllocation.Amount =
33.33
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.RuleBasedStatisticalAllocation ruleBasedStatisticalAllocation);
calculateSplitDataLinesForStatisticalAllocation
global static List<c2g.AllocationsService.SplitData> calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.StatisticalBasisAllocation statisticalBasisAllocation)
This method calculates the Split Data lines from statistical basis allocation.
Input Parameters
Return Value
This service returns a list of c2g.AllocationsService.SplitData objects.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
c2g.AllocationsService.StatisticalFilter statisticalFilter =
new
c2g.AllocationsService.StatisticalFilter();
statisticalFilter.Id =
'b24240000356ALi'
;
statisticalFilter.FilterField =
'General Ledger Account'
;
statisticalFilter.Operator =
'Contains'
;
statisticalFilter.Value =
'Apex'
;
c2g.AllocationsService.StatisticalFilter statisticalFilter1 =
new
c2g.AllocationsService.StatisticalFilter();
statisticalFilter1.Id =
'b24240000365ALi'
;
statisticalFilter1.FilterField =
'Dimension 1'
;
statisticalFilter1.Operator =
'Equals'
;
statisticalFilter1.Value =
'Dim 1'
;
List<c2g.AllocationsService.StatisticalFilter> statisticalFilters =
new
List<c2g.AllocationsService.StatisticalFilter>{statisticalFilter, statisticalFilter1};
c2g.AllocationsService.StatisticalBasisAllocation statisticalBasisAllocation =
new
c2g.AllocationsService.StatisticalBasisAllocation();
statisticalBasisAllocation.BasisName =
'Statistical Basis Name'
;
statisticalBasisAllocation.DistributionFields =
new
List<String>{
'General Ledger Account'
,
'Dimension 1'
,
'Dimension 2'
,
'Dimension 3'
,
'Dimension 4'
};
statisticalBasisAllocation.DistributionFieldFilters = statisticalFilters;
statisticalBasisAllocation.GlaIds =
new
Set<Id>{
'a1Lw00000020For'
,
'a1Lw00000030For'
};
statisticalBasisAllocation.Amount =
33.33
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.StatisticalBasisAllocation statisticalBasisAllocation);
calculateSplitDataLines
global static List<c2g.AllocationsService.SplitData> calculateSplitDataLines(List<c2g.AllocationsService.SplitStructure> splitStructureList, Decimal totalAmount)
This method calculates Split Data Lines from Split Structure Lines and total amount.
Input Parameters
splitStructureList
List<c2g.AllocationsService.SplitStructure >
Holds a list of SplitStructures.
totalAmount
Decimal
Holds the total amount of the sum of transaction line item home values.
Return Value
This service a list of c2g.AllocationsService.SplitData objects.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
c2g.AllocationsService.SplitStructure splitStr1 =
new
c2g.AllocationsService.SplitStructure();
splitStr1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr1.Dimension1Id =
'a1Cw00000002w45'
;
splitStr1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitStr1.percentage=
20
;
c2g.AllocationsService.SplitStructure splitStr2 =
new
c2g.AllocationsService.SplitStructure();
splitStr2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr2.Percentage =
80
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLines(
new
List<c2g.AllocationsService.SplitStructure>{splitStr1, splitStr2},
33.33
);
calculateSplitDataLines
global static List<c2g.AllocationsService.SplitData> calculateSplitDataLines(List<c2g.AllocationsService.SplitStructure> splitStructureList, c2g.AllocationsService.AllocationsStructure allocationsStructure)
This method calculates Split Data Lines from Split Structure Lines and Allocations Structure in single or multi-company mode.
Input Parameters
Return Value
This service returns a list of c2g.AllocationsService.SplitData objects.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
c2g.AllocationsService.SplitStructure splitStructure1 =
new
c2g.AllocationsService.SplitStructure();
splitStructure1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStructure1.Dimension1Id =
'a1Cw00000002w45'
;
splitStructure1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitStructure1.percentage=
20
;
c2g.AllocationsService.SplitStructure splitStructure2 =
new
c2g.AllocationsService.SplitStructure();
splitStructure2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStructure2.Percentage =
80
;
List<c2g.AllocationsService.SplitStructure> splitStructureList =
new
List<c2g.AllocationsService.SplitStructure>{splitStructure1,splitStructure2};
c2g.AllocationsService.RetrieveData retrieveData =
new
c2g.AllocationsService.RetrieveData();
retrieveData.GeneralLedgerAccountId =
'a1Lw00000020For'
;
retrieveData.Dimension1Id =
'a1Cw00000002w45'
;
retrieveData.Dimension4Id =
'a1Dw0000001BIuj'
;
retrieveData.TransactionLineItemsSumValue =
10000
;
List<c2g.AllocationsService.RetrieveData> retrieveDataList =
new
List<c2g.AllocationsService.RetrieveData>{retrieveData};
c2g.AllocationsService.AllocationsStructure allocationsStructure =
new
c2g.AllocationsService.AllocationsStructure();
allocationsStructure.RetrieveDataList = retrieveDataList;
List<c2g.AllocationsService.SplitData> splitDataList = c2g.AllocationsService.calculateSplitDataLines(splitStructureList, allocationsStructure);
activateTemplates
global static List<c2g__AllocationTemplate__c> activateTemplates(Set<Id> templateIds)
This method activates the Allocation Templates. This method is intended to be used in Allocations Lightning flow.
Input Parameters
templateIds
Set<Id>
Holds a set of Allocation Templates IDs.
Return Value
This service returns a list of Allocation Templates objects.
Sample Code
1
2
3
4
5
6
7
Set<Id> templateToActivate =
new
Set<Id>{};
List<AllocationTemplate__c> allocationTemplateList = c2g.AllocationsService.activateTemplates(templateToActivate);
createAllocationRecordsFromTemplateIds
global static List<Id> createAllocationRecordsFromTemplateIds(List<c2g.AllocationsService.AllocationsStructureForLightning> allocationStructure)
This method creates Allocation objects based on an AllocationsStructureForLightning created by the developer. This method is intended to be used in Allocations Lightning flow.
Input Parameters
Return Value
A list of Allocations ID objects.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
c2g.AllocationsService.AllocationsStructureForLightning allocationStr =
new
c2g.AllocationsService.AllocationsStructureForLightning();
allocationStr.TemplateId =
'a1Cw00000002w45'
;
allocationStr.FromDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.ToDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.PostingDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.PostingPeriod =
'a1Cw00000002w45'
;
List<Id> allocationIdList = c2g.AllocationsService.createAllocationRecordsFromTemplateIds(
new
List<c2g.AllocationsService.AllocationsStructureForLightning> {allocationStr});
runAllocation
global static List<Id> runAllocation(Set<Id> recordIds)
This method creates the allocation transaction or journal using the Allocation object IDs. Allocations with higher volumes will be processed in batch. All limits are defined in codaDocumentLineVolumeSettings__c. Journal limits are defined by the ManualJournalLinesLimit__c field, and Transactions are defined by the AllocationBatchLinesLimit__c field. This method is intended to be used in Allocations Lightning flow.
Input Parameters
recordIds
Set<Id>
Holds a list of Allocation object IDs.
Return Value
A list of ID objects. If the batch process is not used because of fewer lines, this will return Journal IDs or Transaction IDs, depending on the chosen output or destination type. If the batch process is used due to high volumes, this will not return any IDs.
Sample Code
1
2
3
4
5
6
7
Set<Id> allocationToProcess =
new
Set<Id>{};
List<Id> transactionOrJournalIdList = c2g.AllocationsService.runAllocation(allocationToProcess);
c2g.AllocationsService.RefineFilterStructure
global with sharing class RefineFilterStructure
Holds the filters to retrieve the lookup values.
Sample Code
1
2
3
4
5
6
7
c2g.AllocationsService.RefineFilterStructure refineFilterStructure =
new
c2g.AllocationsService.RefineFilterStructure();
refineFilterStructure.ObjectAPIName =
'codaGeneralLedgerAccount__c'
;
refineFilterStructure.RefineSearch =
'Accounts'
;
Properties
ObjectAPIName
String
ObjectAPIName The object API name to query the records on base data. For example: "codaGeneralLedgerAccount__c".
RefineSearch
String
RefineSearch The word to filter the names of the records. For example: "Accounts" for "codaGeneralLedgerAccount__c".
CompanyId
Id
CompanyId The company ID takes into account when the object belongs to a company.
Methods
RefineFilterStructure
global RefineFilterStructure(String objectAPIName, String refineSearch, Id companyId)
Holds the filters to get the lookup values.
Input Parameters
objectAPIName
String
The object API name to query the records on base data. For example, "codaGeneralLedgerAccount__c".
refineSearch
String
The word to filter the names of the records. For example, "Accounts" for "codaGeneralLedgerAccount__c".
companyId
Id
The company ID.
Return Value
This constructor does not return a value.
hasObjectAPIName
global Boolean hasObjectAPIName()
Determines if the ObjectAPIName has been populated in the RefineFilterStructure.
Return Value
This service returns a Boolean object.
Sample Code
1
2
3
4
5
6
7
c2g.AllocationsService.RefineFilterStructure refineFilterStructure =
new
c2g.AllocationsService.RefineFilterStructure();
refineFilterStructure.ObjectAPIName =
'codaGeneralLedgerAccount__c'
;
System.assertEquals(
true
, refineFilterStructure.hasObjectAPIName());
c2g.AllocationsService.FilterDataStructure
global with sharing class FilterDataStructure
Holds a list of entities and the default entity value.
Sample Code
1
2
3
4
5
6
7
List<AllocationsService.FilterDataStructure> filterDataStructureList = c2g.AllocationsService.getFiltersWithValues(
new
List<c2g.AllocationsService.RefineFilterStructure>{
new
c2g.AllocationsService.RefineFilterStructure(
'c2g__codaGeneralLedgerAccount__c'
,
''
,
null
) } );
Properties
Methods
FilterDataStructure
global FilterDataStructure(c2g.AllocationsService.EntityValue defaultEntityValue, List<c2g.AllocationsService.EntityValue> filterDataList)
Holds a list of entities as well as the default entity value.
Input Parameters
Return Value
This constructor does not return a value.
c2g.AllocationsService.RetrieveStructure
global inherited sharing class RetrieveStructure
Holds the company ID and required information to create Allocation Transaction Line Items grouped by general ledger accounts and dimensions.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<c2g.AllocationsService.Template> templateList = c2g.AllocationsService.loadTemplates(
new
Set<id> {
'a04240000008ALi'
});
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(templateList[
0
]);
Decimal totalAmount =
0
;
for
(c2g.AllocationsService.RetrieveData retrieveData : retrieveStr.RetrieveDataList)
{
totalAmount += retrieveData.TransactionLineItemsSumValue;
}
List<c2g.AllocationsService.SplitData> splitDataList = c2g.AllocationsService.calculateSplitDataLines(templateList[
0
].SplitStructureList, totalAmount);
c2g.AllocationsService.AllocationsStructure allocationStr =
new
c2g.AllocationsService.AllocationsStructure();
allocationStr.RetrieveDataList = retrieveStr.RetrieveDataList;
allocationStr.SplitDataList = splitDataList;
allocationStr.AllocationsDate = System.today();
List<Id> transactionIdList = c2g.AllocationsService.createAllocations(
new
List<c2g.AllocationsService.AllocationsStructure>{allocationStr} );
Properties
Methods
RetrieveStructure
global RetrieveStructure(c2g.AllocationsService.CompanyData companyInfo, List<c2g.AllocationsService.RetrieveData> retrieveDataList)
Retrieves a RetrieveStructure with the required information to create Allocation Transaction Line Items. For example, Company, General Ledger Accounts and Dimensions.
Input Parameters
Return Value
This constructor does not return a value.
c2g.AllocationsService.Entities
global with sharing abstract class Entities
Holds general ledger accounts (EntityValue), with Dimensions 1 to 4 (EntityValue). You can only populate the general ledger account or general ledger account and dimensions. The general ledger account is mandatory.
Sample Code
1
2
3
4
5
6
7
8
9
10
c2g.AllocationsService.Entities entities =
new
c2g.AllocationsService.Entities();
entities.GeneralLedgerAccountId =
'a1Lw00000020For'
;
entities.Dimension1Id =
'a1Cw00000002w45'
;
entities.Dimension2Id =
'a1Dw0000001BIuj'
;
entities.Dimension3Id =
'a1Ew000000Io7j6'
;
entities.Dimension4Id =
'a1Fw00000014wzA'
;
Properties
id
Id
The record ID of the entity
GeneralLedgerAccountId
Id
The ID of the general ledger account.
Dimension1Id
Id
The ID of Dimension 1.
Dimension2Id
Id
The ID of Dimension 2.
Dimension3Id
Id
The ID of Dimension 3.
Dimension4Id
Id
The ID of Dimension 4.
Methods
Entities
global Entities(Id generalLedgerAccountId, Id dimension1Id, Id dimension2Id, Id dimension3Id, Id dimension4Id)
CHolds a general ledger EntityValue and may have Dimension1, 2, 3 or 4 EntityRetrieveValue.
Input Parameters
generalLedgerAccountId
Id
The ID of the general ledger account.
dimension1Id
Id
The ID of the Dimension 1.
dimension2Id
Id
The ID of the Dimension 2.
dimension3Id
Id
The ID of the Dimension 3.
dimension4Id
Id
The ID of the Dimension 4.
Return Value
This constructor does not return a value.
c2g.AllocationsService.RetrieveData
global with sharing class RetrieveData extends Entities implements IConvertToJournalLineItem, IConvertToTransactionLineItem
Holds the same fields as the Entities class as well as the sum of HomeValues.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
c2g.AllocationsService.RetrieveData retrieveData1 =
new
c2g.AllocationsService.RetrieveData();
retrieveData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
retrieveData1.Dimension1Id =
'a1Cw00000002w45'
;
retrieveData1.Dimension2Id =
'a1Dw0000001BIuj'
;
retrieveData1.Dimension3Id =
'a1Ew000000Io7j6'
;
retrieveData1.Dimension4Id =
'a1Fw00000014wzA'
;
retrieveData1.TransactionLineItemsSumValue =
100
;
c2g.AllocationsService.SplitData splitData1 =
new
c2g.AllocationsService.SplitData();
splitData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData1.Dimension1Id =
'a1Cw00000002w45'
;
splitData1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitData1.Amount =
25
;
c2g.AllocationsService.SplitData splitData2 =
new
c2g.AllocationsService.SplitData();
splitData2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData2.Dimension3Id =
'a1Ew000000Io7j6'
;
splitData2.Dimension4Id =
'a1Fw00000014wzA'
;
splitData2.Amount =
75
;
c2g.AllocationsService.AllocationsStructure allocationStr =
new
c2g.AllocationsService.AllocationsStructure();
allocationStr.RetrieveDataList =
new
List<c2g.AllocationsService.RetrieveData> {retrieveData1};
allocationStr.SplitDataList =
new
List<c2g.AllocationsService.SplitData>{splitData1, splitData2};
allocationStr.AllocationsDate = System.today();
allocationStr.PeriodId =
'a1uw0000001Kd6l'
;
List<Id> transactionIdList = c2g.AllocationsService.createAllocations(
new
List<c2g.AllocationsService.AllocationsStructure> {allocStructure});
Properties
TransactionLineItemsSumValue
Decimal
The sum of the home values of the transaction line item, grouped by general ledger account and dimension.
CompanyId
Id
Automatically populated by the retrieve operation when in multi-company mode.
AccountId
Id
Methods
RetrieveData
global RetrieveData(Id generalLedgerAccountId, Id dimension1Id, Id dimension2Id, Id dimension3Id, Id dimension4Id, Decimal transactionLineItemsSumValue)
Holds the same fields as the Entities class and the sum of HomeValues.
Input Parameters
generalLedgerAccountId
Id
The ID of the General Ledger Account.
dimension1Id
Id
The ID of Dimension 1.
dimension2Id
Id
The ID of Dimension 2.
dimension3Id
Id
The ID of Dimension 3.
dimension4Id
Id
The ID of Dimension 4.
transactionLineItemsSumValue
Decimal
The sum of the home values of the transaction line items grouped by general ledger account and dimension.
Return Value
This constructor does not return a value.
c2g.AllocationsService.SplitData
global inherited sharing class SplitData extends Entities implements IConvertToJournalLineItem, IConvertToTransactionLineItem
Holds the same fields as the Entities class as well as the split amount.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c2g.AllocationsService.SplitStructure splitStr1 =
new
c2g.AllocationsService.SplitStructure();
splitStr1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr1.Dimension1Id =
'a1Cw00000002w45'
;
splitStr1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitStr1.percentage=
20
;
c2g.AllocationsService.SplitStructure splitStr2 =
new
c2g.AllocationsService.SplitStructure();
splitStr2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr2.Percentage =
80
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLines(
new
List<c2g.AllocationsService.SplitStructure>{splitStr1, splitStr2},
33.33
);
Properties
Amount
Decimal
Value of the amount of the split.
Methods
SplitData
global SplitData(Id generalLedgerAccountId, Id dimension1Id, Id dimension2Id, Id dimension3Id, Id dimension4Id, Decimal amount)
Holds the same fields as the Entities class as well as the amount of the split.
Input Parameters
generalLedgerAccountId
Id
The ID of the General Ledger Account.
dimension1Id
Id
The ID of Dimension 1.
dimension2Id
Id
The ID of Dimension 2.
dimension3Id
Id
The ID of Dimension 3.
dimension4Id
Id
The ID of Dimension 4.
amount
Decimal
The value of the amount of the split.
Return Value
This constructor does not return a value.
c2g.AllocationsService.EntityValue
global with sharing class EntityValue
Holds the ID and name of the entity.
Sample Code
1
2
3
4
5
6
7
c2g.AllocationsService.EntityValue entityValue =
new
c2g.AllocationsService.EntityValue();
entityValue.Id =
'a1Lw00000020For'
;
entityValue.Name =
'Sales - Parts'
;
Properties
Id
String
Globally unique string that identifies the record.
Name
String
The name of the entity.
Type
String
The Type of the entity.
Methods
EntityValue
global EntityValue(String id, String name)
Holds the ID and Name.
Input Parameters
id
String
The ID of the entity.
name
String
The name of the entity.
Return Value
This constructor does not return a value.
EntityValue
global EntityValue(String id, String name, String type)
Holds the ID and Name.
Input Parameters
id
String
The ID of the entity.
name
String
The name of the entity.
type
String
The Type of the entity.
Return Value
This constructor does not return a value.
c2g.AllocationsService.CompanyData
global with sharing class CompanyData
Holds the company ID.
Sample Code
1
2
3
4
5
6
c2g.AllocationsService.CompanyData companyData =
new
c2g.AllocationsService.CompanyData();
companyData.CompanyId =
'a0m24000000cST6'
;
Properties
CompanyId
Id
The company ID.
Methods
CompanyData
global CompanyData(Id companyId)
Holds the company ID.
Input Parameters
companyId
Id
The company ID.
Return Value
This constructor does not return a value.
c2g.AllocationsService.Template
global inherited sharing class Template
Holds the information necessary to filter the transaction line items in the retrieve process. It is also used to save, update and load a template. Template class is referenced from both with sharing(AllocationsService) and without sharing(AllocationScheduleWorkerServiceImpl.PostWithoutSharing) contexts. c2g.AllocationsService is service class for Allocations. AllocationScheduleWorkerServiceImpl.PostWithoutSharing specifically uses without sharing in order to post schedules in different company other than user's current company. So the context behaviour of this class depends on the caller class. Therefore this class should be in inherited context.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Id =
'a04240000008ALi'
;
template.ToDate = system.today();
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(template);
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Name =
'Template 2'
;
template.ToDate = system.today();
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(template);
Properties
Methods
Template
global Template(Id id, String name, Date fromDate, Date toDate)
Holds the information necessary to filter the transaction line items in the retrieve process.
Input Parameters
id
Id
An existing Allocation Template ID record.
name
String
An existing Allocation Template Name record.
fromDate
Date
The from date filter.
toDate
Date
The to date filter.
Return Value
This constructor does not return a value.
Template
global Template(Id id, String name, String description, List<c2g.AllocationsService.FilterStructure> filterStructureList, List<c2g.AllocationsService.SplitStructure> splitStructureList)
Holds the information necessary to filter the transaction line items in the retrieve process.
Input Parameters
Return Value
This constructor does not return a value.
c2g.AllocationsService.FilterStructure
global with sharing class FilterStructure
Holds the structure of each filter set.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
c2g.AllocationsService.Filter filter1 =
new
c2g.AllocationsService.Filter();
filter1.FilterCriteria = c2g.AllocationsService.FilterCriteria.MultiselectValue;
filter1.Values =
new
List<Object> {
'a1Cw00000002w45'
};
c2g.AllocationsService.FilterStructure filterStr1 =
new
c2g.AllocationsService.FilterStructure();
filterStr1.FilterPosition =
1
;
filterStr1.FilterStructureType = c2g.AllocationsService.FilterStructureType.Dimension1;
filterStr1.DefaultFilterCriteria = c2g.AllocationsService.DefaultFilterCriteria.MultiselectValue;
filterStr1.FilterList =
new
List<c2g.AllocationsService.Filter>{filter1};
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.ToDate = system.today();
template.FilterStructureList =
new
List<c2g.AllocationsService.FilterStructure> {filterStr1};
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(template);
Properties
Methods
FilterStructure
global FilterStructure(String type, Integer filterPosition, List<c2g.AllocationsService.Filter> filterList)
Holds the structure of each filter set.
Input Parameters
type
String
The filter structure types. For example, GeneralLedgerAccount, Dimension1, 2, 3 or 4.
filterPosition
Integer
The position of the filter set.
filterList
List<c2g.AllocationsService.Filter >
A list of filters.
Return Value
This constructor does not return a value.
FilterStructure
global FilterStructure(c2g.AllocationsService.FilterStructureType filterStructureType, Integer filterPosition, List<c2g.AllocationsService.Filter> filterList, c2g.AllocationsService.DefaultFilterCriteria defaultFilterCriteria)
Holds the structure of each filter set.
Input Parameters
Return Value
This constructor does not return a value.
FilterStructure
global FilterStructure(c2g.AllocationsService.FilterStructureType filterStructureType, Integer filterPosition, List<c2g.AllocationsService.Filter> filterList, c2g.AllocationsService.DefaultFilterCriteria defaultFilterCriteria, c2g.AllocationsService.FilterFor filterFor)
Holds the structure of each filter set.
Input Parameters
Return Value
This constructor does not return a value.
c2g.AllocationsService.Filter
global with sharing class Filter
Holds the values for each FilterStructure depending on the FilterCriteria.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
c2g.AllocationsService.Filter filter1 =
new
c2g.AllocationsService.Filter();
filter1.FilterCriteria = c2g.AllocationsService.FilterCriteria.MultiselectValue;
filter1.Values =
new
List<Object> {
'a1Cw00000002w45'
};
c2g.AllocationsService.FilterStructure filterStr1 =
new
c2g.AllocationsService.FilterStructure();
filterStr1.FilterPosition =
1
;
filterStr1.FilterStructureType = c2g.AllocationsService.FilterStructureType.Dimension1;
filterStr1.DefaultFilterCriteria = c2g.AllocationsService.DefaultFilterCriteria.MultiselectValue;
filterStr1.FilterList =
new
List<c2g.AllocationsService.Filter>{filter1};
c2g.AllocationsService.SplitStructure splitStr1 =
new
c2g.AllocationsService.SplitStructure();
splitStr1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr1.Dimension1Id =
'a1Cw00000002w45'
;
splitStr1.Percentage =
20
;
c2g.AllocationsService.SplitStructure splitStr2 =
new
c2g.AllocationsService.SplitStructure();
splitStr2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr2.Dimension1Id =
'a1Cw00000002w45'
;
splitStr2.Percentage =
80
;
c2g.AllocationsService.Template template =
new
c2g.AllocationsService.Template();
template.Name =
'Template1'
;
template.Description =
'Template Description'
;
template.FilterStructureList =
new
List<c2g.AllocationsService.FilterStructure> {filterStr1};
template.SplitStructureList =
new
List<c2g.AllocationsService.SplitStructure> {splitStr1, splitStr2};
List<id> templateId = c2g.AllocationsService.saveTemplates(
new
List<c2g.AllocationsService.Template> {template} );
Properties
Values
List<Object>
A list of the objects with the ID of the general ledger accounts or dimensions depending on FilterCriteria.
FilterCriteria
c2g.AllocationsService.FilterCriteria
The FilterCriteria values.
Methods
Filter
global Filter(c2g.AllocationsService.FilterCriteria filterCriteria, List<Object> values)
Holds the values for each FilterStructure depending on the FilterCriteria.
Input Parameters
filterCriteria
c2g.AllocationsService.FilterCriteria
The filter criteria values
values
List<Object>
A list of objects with the ID of general ledger accounts or dimensions depending on FilterCriteria.
Return Value
This constructor does not return a value.
c2g.AllocationsService.SplitStructure
global with sharing class SplitStructure extends Entities
Holds the same fields as the Entities class as well as the split percentage.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c2g.AllocationsService.SplitStructure splitStr1 =
new
c2g.AllocationsService.SplitStructure();
splitStr1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr1.Dimension1Id =
'a1Cw00000002w45'
;
splitStr1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitStr1.percentage=
20
;
c2g.AllocationsService.SplitStructure splitStr2 =
new
c2g.AllocationsService.SplitStructure();
splitStr2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitStr2.Percentage =
80
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLines(
new
List<c2g.AllocationsService.SplitStructure>{splitStr1, splitStr2},
33.33
);
Properties
Percentage
Decimal
Value of the split percentage.
id
Id
Id of the split line.
Methods
SplitStructure
global SplitStructure(Id generalLedgerAccountId, Id dim1Id, Id dim2Id, Id dim3Id, Id dim4Id, Decimal percentage)
Holds the same fields as the Entities class as well as the split percentage.
Input Parameters
generalLedgerAccountId
Id
The ID of the general ledger account.
dim1Id
Id
The ID of Dimension 1.
dim2Id
Id
The ID of Dimension 2.
dim3Id
Id
The ID of Dimension 3.
dim4Id
Id
The ID of Dimension 4.
percentage
Decimal
The value of the split percentage.
Return Value
This constructor does not return a value.
c2g.AllocationsService.StatisticalBasisDistributionEntities
global abstract with sharing class StatisticalBasisDistributionEntities
Holds general ledger account Ids, total amount of sum of transaction line item home values and GLADistribution value.
Sample Code
1
2
3
4
5
6
7
8
c2g.AllocationsService.StatisticalBasisDistributionEntities statisticalBasisDistributionEntities =
new
c2g.AllocationsService.RuleBasedStatisticalAllocation();
statisticalBasisDistributionEntities.GlaIds =
new
Set<Id>{
'a1Lw00000020For'
,
'a1Lw00000030For'
};
statisticalBasisDistributionEntities.Amount =
33.33
;
statisticalBasisDistributionEntities.Distribution = c2g.AllocationsService.GLADistribution.Manual
Properties
c2g.AllocationsService.StatisticalBasisAllocation
global with sharing class StatisticalBasisAllocation extends StatisticalBasisDistributionEntities
Holds the fields from StatisticalBasisDistributionEntities class, Basis Name and other required information to create SplitData records.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
c2g.AllocationsService.StatisticalFilter statisticalFilter =
new
c2g.AllocationsService.StatisticalFilter();
statisticalFilter.Id =
'b24240000356ALi'
;
statisticalFilter.FilterField =
'General Ledger Account'
;
statisticalFilter.Operator =
'Contains'
;
statisticalFilter.Value =
'Apex'
;
c2g.AllocationsService.StatisticalFilter statisticalFilter1 =
new
c2g.AllocationsService.StatisticalFilter();
statisticalFilter1.Id =
'b24240000365ALi'
;
statisticalFilter1.FilterField =
'Dimension 1'
;
statisticalFilter1.Operator =
'Equals'
;
statisticalFilter1.Value =
'Dim 1'
;
List<c2g.AllocationsService.StatisticalFilter> statisticalFilters =
new
List<c2g.AllocationsService.StatisticalFilter>{statisticalFilter, statisticalFilter1};
c2g.AllocationsService.StatisticalBasisAllocation statisticalBasisAllocation =
new
c2g.AllocationsService.StatisticalBasisAllocation();
statisticalBasisAllocation.BasisName =
'Statistical Basis Name'
;
statisticalBasisAllocation.DistributionFields =
new
List<String>{
'General Ledger Account'
,
'Dimension 1'
,
'Dimension 2'
,
'Dimension 3'
,
'Dimension 4'
};
statisticalBasisAllocation.DistributionFieldFilters = statisticalFilters;
statisticalBasisAllocation.GlaIds =
new
Set<Id>{
'a1Lw00000020For'
,
'a1Lw00000030For'
};
statisticalBasisAllocation.Amount =
33.33
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.StatisticalBasisAllocation statisticalBasisAllocation);
Properties
BasisName
String
Name of a Statistical Basis.
DistributionFields
List<String>
List of Strings that represent the distribution fields.
DistributionFieldFilters
List<c2g.AllocationsService.StatisticalFilter >
List of filters applied on the distribution fields.
Methods
global StatisticalBasisAllocation()
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, Set<Id> glaIds, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, c2g.AllocationsService.RetrieveStructure retrieveStructure, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
StatisticalBasisAllocation
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, Set<Id> glaIds, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'Manually'
Input Parameters
basisName
String
Name of a Statistical Basis.
distributionFields
List<String>
List of distribution fields.
distributionFieldFilters
List<c2g.AllocationsService.StatisticalFilter >
List of filters applied to Distribution Fields.
glaIds
Set<Id>
List of General Ledger Account Ids.
amount
Decimal
Value of the total amount of the sum of transaction line item home values.
distribution
c2g.AllocationsService.GLADistribution
Value of a GLADistribution.
StatisticalBasisAllocation
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, c2g.AllocationsService.RetrieveStructure retrieveStructure, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'From Source'
Input Parameters
StatisticalBasisAllocation
global StatisticalBasisAllocation(String basisName, List<String> distributionFields, List<c2g.AllocationsService.StatisticalFilter> distributionFieldFilters, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'From Basis'
Input Parameters
basisName
String
Name of a Statistical Basis.
distributionFields
List<String>
List of distribution fields.
distributionFieldFilters
List<c2g.AllocationsService.StatisticalFilter >
List of filters applied to Distribution Fields.
amount
Decimal
Value of the total amount of the sum of transaction line item home values.
distribution
c2g.AllocationsService.GLADistribution
Value of a GLADistribution.
c2g.AllocationsService.StatisticalFilter
global with sharing class StatisticalFilter
Holds information about the Statistical Filters.
Sample Code
1
2
3
4
5
6
7
8
9
c2g.AllocationsService.StatisticalFilter statisticalFilter =
new
c2g.AllocationsService.StatisticalFilter();
statisticalFilter.Id =
'b24240000356ALi'
;
statisticalFilter.FilterField =
'General Ledger Account'
;
statisticalFilter.Operator =
'Contains'
;
statisticalFilter.Value =
'Apex'
;
Properties
Id
Id
Id of Statistical Basis Filter.
FilterField
String
Name of a filter.
Operator
String
Operator name applied on filters.
Value
String
The value of a filter field.
Methods
StatisticalFilter
global StatisticalFilter(c2g.AllocationsService.DistributionFields filterField, c2g.AllocationsService.FilterOperator operator, String value)
Constructor to assign the values to the properties.
Input Parameters
c2g.AllocationsService.RuleBasedStatisticalAllocation
global with sharing class RuleBasedStatisticalAllocation extends StatisticalBasisDistributionEntities
Holds the fields from StatisticalBasisDistributionEntities class and Statistical allocation rule Id.
Sample Code
1
2
3
4
5
6
7
8
9
c2g.AllocationsService.RuleBasedStatisticalAllocation ruleBasedStatisticalAllocation =
new
c2g.AllocationsService.RuleBasedStatisticalAllocation();
ruleBasedStatisticalAllocation.RuleId =
'a04240000008ALi'
;
ruleBasedStatisticalAllocation.GlaIds =
new
Set<Id>{
'a1Lw00000020For'
,
'a1Lw00000030For'
};
ruleBasedStatisticalAllocation.Amount =
33.33
;
List<c2g.AllocationsService.SplitData> splitLines = c2g.AllocationsService.calculateSplitDataLinesForStatisticalAllocation(c2g.AllocationsService.RuleBasedStatisticalAllocation ruleBasedStatisticalAllocation);
Properties
RuleId
Id
Id of a Statistical Allocation rule.
Methods
RuleBasedStatisticalAllocation
global RuleBasedStatisticalAllocation(Id ruleId, Set<Id> glaIds, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'Manual'
Input Parameters
ruleId
Id
Statistical allocation rule Id.
glaIds
Set<Id>
List of General Ledger Account Ids.
amount
Decimal
Value of the total amount of the sum of transaction line item home values.
distribution
c2g.AllocationsService.GLADistribution
Value of a GLADistribution.
RuleBasedStatisticalAllocation
global RuleBasedStatisticalAllocation(Id ruleId, c2g.AllocationsService.RetrieveStructure retrieveStructure, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'From Source'
Input Parameters
RuleBasedStatisticalAllocation
global RuleBasedStatisticalAllocation(Id ruleId, Decimal amount, c2g.AllocationsService.GLADistribution distribution)
Holds the Basis Name and other required information to create SplitData records. This constructor is called when Distribution Type is 'From Basis'
Input Parameters
ruleId
Id
Statistical allocation rule Id.
amount
Decimal
Value of the total amount of the sum of transaction line item home values.
distribution
c2g.AllocationsService.GLADistribution
Value of a GLADistribution.
c2g.AllocationsService.AllocationsStructure
global inherited sharing class AllocationsStructure
Holds information of the RetrieveDataList and the SplitDataList of the RetrieveStructure. AllocationsStructure class is referenced from both with sharing(AllocationsService) and without sharing(AllocationScheduleWorkerServiceImpl.PostWithoutSharing) contexts. c2g.AllocationsService is service class for Allocations. AllocationScheduleWorkerServiceImpl.PostWithoutSharing specifically uses without sharing in order to post schedules in different company other than user's current company. So the context behaviour of this class depends on the caller class. Therefore this class should use the inherited context.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
c2g.AllocationsService.RetrieveData retrieveData1 =
new
c2g.AllocationsService.RetrieveData();
retrieveData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
retrieveData1.Dimension1Id =
'a1Cw00000002w45'
;
retrieveData1.Dimension2Id =
'a1Dw0000001BIuj'
;
retrieveData1.Dimension3Id =
'a1Ew000000Io7j6'
;
retrieveData1.Dimension4Id =
'a1Fw00000014wzA'
;
retrieveData1.TransactionLineItemsSumValue =
100
;
c2g.AllocationsService.SplitData splitData1 =
new
c2g.AllocationsService.SplitData();
splitData1.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData1.Dimension1Id =
'a1Cw00000002w45'
;
splitData1.Dimension2Id =
'a1Dw0000001BIuj'
;
splitData1.Amount =
25
;
c2g.AllocationsService.SplitData splitData2 =
new
c2g.AllocationsService.SplitData();
splitData2.GeneralLedgerAccountId =
'a1Lw00000020For'
;
splitData2.Dimension3Id =
'a1Ew000000Io7j6'
;
splitData2.Dimension4Id =
'a1Fw00000014wzA'
;
splitData2.Amount =
75
;
c2g.AllocationsService.AllocationsStructure allocationStr =
new
c2g.AllocationsService.AllocationsStructure();
allocationStr.RetrieveDataList =
new
List<c2g.AllocationsService.RetrieveData> {retrieveData1};
allocationStr.SplitDataList =
new
List<c2g.AllocationsService.SplitData>{splitData1, splitData2};
allocationStr.AllocationsDate = System.today();
allocationStr.PeriodId =
'a1uw0000001Kd6l'
;
List<Id> transactionIdList = c2g.AllocationsService.createAllocations(
new
List<c2g.AllocationsService.AllocationsStructure> {allocStructure});
Properties
RetrieveDataList
List<c2g.AllocationsService.RetrieveData >
A list of RetrieveData.
SplitDataList
List<c2g.AllocationsService.SplitData >
A list of SplitData that represents values where total amount is split.
AllocationsDate
Date
The date for all AllocationsRetrieveData.
PeriodId
Id
The period for all RetrieveData.
Description
String
Details of the allocation transaction description.
DestinationCompanyId
Id
Selects the destination company in multi-company mode.
DestinationType
c2g.AllocationsService.DestinationType
The type of document created when createAllocations is called. Values: Transactions (default) or Journals.
AllocationType
c2g.AllocationsService.AllocationType
The type of allocation created when createAllocations is called. The values are: Fixed (default) or Statistical.
Methods
AllocationsStructure
global AllocationsStructure()
the allocation record associated with this allocation structure.
AllocationsStructure
global AllocationsStructure(List<c2g.AllocationsService.RetrieveData> retrieveDataList, List<c2g.AllocationsService.SplitData> splitDataList, Date allocationsDate, Id periodId, String description)
Holds the RetrieveStructure and adds the SplitDataList.
Input Parameters
retrieveDataList
List<c2g.AllocationsService.RetrieveData >
A list of RetrieveData.
splitDataList
List<c2g.AllocationsService.SplitData >
A list of SplitData that represents values where total amount is split.
allocationsDate
Date
The date for all RetrieveData.
periodId
Id
The period for all RetrieveData.
description
String
The description for the allocation structure.
Return Value
This constructor does not return a value.
c2g.AllocationsService.AllocationsStructureForLightning
global inherited sharing class AllocationsStructureForLightning
Holds information of the TemplateId, FromDate, ToDate, FromPeriodId, ToPeriodId, PostingDate, PostingPeriod to create the Allocation object. AllocationsStructureForLightning class is referenced from with sharing(AllocationsService). AllocationsStructureForLightning is service class for Allocations. This class should use the inherited context.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
c2g.AllocationsService.AllocationsStructureForLightning allocationStr =
new
c2g.AllocationsService.AllocationsStructureForLightning();
allocationStr.TemplateId =
'a1Cw00000002w45'
;
allocationStr.FromDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.ToDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.FromPeriodId =
'a1Cw00000002w45'
;
allocationStr.ToPeriodId =
'a1Cw00000002w45'
;
allocationStr.PostingDate = Date.valueOf(
'2014-02-01 00:00:00'
);
allocationStr.PostingPeriod =
'a1Cw00000002w45'
;
Properties
TemplateId
Id
The Allocation Template ID.
FromDate
Date
The FromDate filter.
ToDate
Date
The ToDate filter.
FromPeriodId
Id
The FromPeriodId filter.
ToPeriodId
Id
The ToPeriodId filter.
PostingDate
Date
The posting date for document.
PostingPeriod
Id
The posting period for document.
Methods
AllocationsStructureForLightning
global AllocationsStructureForLightning(Id templateId, Date fromDate, Date toDate, Date postingDate, Id postingPeriod)
Holds the data to create allocation using date filter.
Input Parameters
templateId
Id
A template ID to use on allocation.
fromDate
Date
A starting date from when the data is retrieved.
toDate
Date
A date until when the data is retrieved.
postingDate
Date
The posting date for document.
postingPeriod
Id
The posting period for document.
Return Value
This constructor does not return a value.
AllocationsStructureForLightning
global AllocationsStructureForLightning(Id templateId, Id fromPeriodId, Id toPeriodId, Date postingDate, Id postingPeriod)
Holds the data to create allocation using period filter.
Input Parameters
templateId
Id
A template ID to use on allocation.
fromPeriodId
Id
The ID for the period from when the data is retrieved.
toPeriodId
Id
The ID for the period until when the data is retrieved.
postingDate
Date
The posting date for document.
postingPeriod
Id
The posting period for document.
Return Value
This constructor does not return a value.