Accounting Apex API Developer Reference

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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
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.

Value Description
DistributeToGla Enables you to select the individual GLAs you want to allocate to.

FilterCriteria

The list of valid filter criteria types.

Value Description
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.

Value Description
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.

Value Description
Equals Equals Value
NotEquals Not Equals Value
Contains Contains Value

DistributionFields

The list of valid distribution field types.

Value Description
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.

Value Description
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.

Value Description
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

Name Type Description
refineFilterStructureList List<c2g.AllocationsService.RefineFilterStructure> A list of RefineFilterStructures

Return Value

This service returns a list of c2g.AllocationsService.FilterDataStructure objects

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
template c2g.AllocationsService.Template The information necessary to filter the transaction line items in the retrieve process.

Return Value

This service returns a c2g.AllocationsService.RetrieveStructure object.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
allocationsStructureList List<c2g.AllocationsService.AllocationsStructure> Holds a list of AllocationsStructures.

Return Value

A list of Id objects. This will be Journal Ids or Transaction Ids, depending on the chosen Destination Type.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
allocationsStructureList List<c2g.AllocationsService.AllocationsStructure> Holds a list of AllocationsStructures.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
templateList List<c2g.AllocationsService.Template> Holds a list of AllocationsStructures.

Return Value

This service a list of Id objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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} );

//When using the Lightning version it is required to add a distribution company on the 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

Name Type Description
templateIds Set<Id> List of templates.

Return Value

This service returns a list of Id objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
ruleIds Set<Id> List of fixed allocation rule Ids.

Return Value

This service returns a map of Id, c2g.AllocationsService.SplitStructure objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
ruleBasedStatisticalAllocation c2g.AllocationsService.RuleBasedStatisticalAllocation Holds an object of c2g.AllocationsService.RuleBasedStatisticalAllocation.

Return Value

This service returns a list of c2g.AllocationsService.SplitData objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
statisticalBasisAllocation c2g.AllocationsService.StatisticalBasisAllocation Holds an object of c2g.AllocationsService.StatisticalBasisAllocation.

Return Value

This service returns a list of c2g.AllocationsService.SplitData objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
splitStructureList List<c2g.AllocationsService.SplitStructure> Holds a list of SplitStructures.
allocationsStructure c2g.AllocationsService.AllocationsStructure Used to calculate the total amount of the sum of transaction line item values. It sums the home values when only one company is selected, and as current and dual values otherwise.

Return Value

This service returns a list of c2g.AllocationsService.SplitData objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
templateIds Set<Id> Holds a set of Allocation Templates IDs.

Return Value

This service returns a list of Allocation Templates objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

//Create a list of ids of templates we wish to activate
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

Name Type Description
allocationStructure List<c2g.AllocationsService.AllocationsStructureForLightning> Holds a list of AllocationsStructureForLightning.

Return Value

A list of Allocations ID objects.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

//Create a list of ids of allocation records we wish to run the allocation process.
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

c2g.AllocationsService.RefineFilterStructure refineFilterStructure = new c2g.AllocationsService.RefineFilterStructure();
refineFilterStructure.ObjectAPIName = 'codaGeneralLedgerAccount__c';
refineFilterStructure.RefineSearch = 'Accounts';

Properties

Name Type Description
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()

RefineFilterStructure

global RefineFilterStructure(String objectAPIName, String refineSearch, Id companyId)

Holds the filters to get the lookup values.

Input Parameters

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

List<AllocationsService.FilterDataStructure> filterDataStructureList = c2g.AllocationsService.getFiltersWithValues( new 
List<c2g.AllocationsService.RefineFilterStructure>{ new 
c2g.AllocationsService.RefineFilterStructure('c2g__codaGeneralLedgerAccount__c', '', null) } );

Properties

Name Type Description
DefaultEntityValue c2g.AllocationsService.EntityValue The default value of the list
FilterDataList List<c2g.AllocationsService.EntityValue> A list of entities.

Methods

FilterDataStructure

global FilterDataStructure()

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

Name Type Description
defaultEntityValue c2g.AllocationsService.EntityValue The default value of the list.
filterDataList List<c2g.AllocationsService.EntityValue> A list of entities.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
CompanyInfo c2g.AllocationsService.CompanyData The CompanyData.
RetrieveDataList List<c2g.AllocationsService.RetrieveData> A list of RetrieveData.

Methods

RetrieveStructure

global RetrieveStructure()

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

Name Type Description
companyInfo c2g.AllocationsService.CompanyData The values for CompanyData.
retrieveDataList List<c2g.AllocationsService.RetrieveData> Holds a list of RetrieveData.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

c2g.AllocationsService.Entities entities = new c2g.AllocationsService.Entities();
entities.GeneralLedgerAccountId = 'a1Lw00000020For';
entities.Dimension1Id = 'a1Cw00000002w45';
entities.Dimension2Id = 'a1Dw0000001BIuj';
entities.Dimension3Id = 'a1Ew000000Io7j6';
entities.Dimension4Id = 'a1Fw00000014wzA';

Properties

Name Type Description
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()

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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()

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
Amount Decimal Value of the amount of the split.

Methods

SplitData

global SplitData()

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

c2g.AllocationsService.EntityValue entityValue = new c2g.AllocationsService.EntityValue();
entityValue.Id = 'a1Lw00000020For';
entityValue.Name = 'Sales - Parts';

Properties

Name Type Description
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()

EntityValue

global EntityValue(String id, String name)

Holds the ID and Name.

Input Parameters

Name Type Description
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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

c2g.AllocationsService.CompanyData companyData = new c2g.AllocationsService.CompanyData();
companyData.CompanyId = 'a0m24000000cST6';

Properties

Name Type Description
CompanyId Id The company ID.

Methods

CompanyData

global CompanyData()

CompanyData

global CompanyData(Id companyId)

Holds the company ID.

Input Parameters

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// Using ID
c2g.AllocationsService.Template template = new c2g.AllocationsService.Template();
template.Id = 'a04240000008ALi';
template.ToDate = system.today();
c2g.AllocationsService.RetrieveStructure retrieveStr = c2g.AllocationsService.retrieve(template);
// Using Name
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

Name Type Description
Id String An existing Allocation Template ID record.
Name String An existing Allocation Template Name record. This field is also used by the save method to specify the name for the new template.
Description String Template description.
AllocatedItem c2g.AllocationsService.AllocationItem Name of the object you want to allocate.
AllocationRuleId String Id of allocation rule.
AllocationMethod c2g.AllocationsService.AllocationMethod Method of allocation.
DestinationCompanyId String ID of the destination company.
DestinationItem c2g.AllocationsService.DestinationType Type of object created as a result of the allocation process.
PostDescription String Posting description.
BasisType c2g.AllocationsService.BasisType Basis type used for the allocation template.
CopyGla c2g.AllocationsService.CopyGla Indicates where the distribution GLAs should be copied from for use in the allocation template.
DistributeToGlas List<Id> Used in the allocation template to specify the ID of ths GLAs that will be distributed to.
DistributionFields List<c2g.AllocationsService.DistributionField> The fields you want to distribute to. The distribution is made using the statistical basis set on the allocation template.
StatisticalBasis String Statistical basis the template is linked to.
FilterStructureList List<c2g.AllocationsService.FilterStructure> A list of FilterStructures.
SplitStructureList List<c2g.AllocationsService.SplitStructure> The list of SplitStructures.
StatisticalBasisFilter List<c2g.AllocationsService.StatisticalFilter> The list of statistical basis filters.
DateRangeType c2g.AllocationsService.DateRangeType Select by date range or by period range.
SoftDateRangeType c2g.AllocationsService.SoftDateRangeType Soft Date Type.
SoftPeriodRangeType c2g.AllocationsService.SoftPeriodRangeType Soft Period Type.
NValue Integer Value of N in case of Soft Date/Period criteria.
FromDate Date The FromDate filter.
ToDate Date The ToDate filter.
FromPeriodId Id The FromPeriodId filter.
ToPeriodId Id The ToPeriodId filter.
CompanyId Id The Id of the corresponding company.
ICTOnly Boolean Indicates that you want to retrieve only intercompany transactions. The default is false.

Methods

Template

global Template()

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

Name Type Description
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

Name Type Description
id Id An existing Allocation Template ID record.
name String An existing Allocation Template Name record.
description String An existing Allocation Template Description.
filterStructureList List<c2g.AllocationsService.FilterStructure> A list of FilterStructures.
splitStructureList List<c2g.AllocationsService.SplitStructure> A list of the SplitStructures.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
FilterStructureType c2g.AllocationsService.FilterStructureType The filter structure types.
FilterFor c2g.AllocationsService.FilterFor The object types this filter is for.
FilterPosition Integer The integer of the filter set position.
FilterList List<c2g.AllocationsService.Filter> A list of filters.
DefaultFilterCriteria c2g.AllocationsService.DefaultFilterCriteria The picklist value of FilterCriteria by default.

Methods

FilterStructure

global FilterStructure()

FilterStructure

global FilterStructure(String type, Integer filterPosition, List<c2g.AllocationsService.Filter> filterList)

Holds the structure of each filter set.

Input Parameters

Name Type Description
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

Name Type Description
filterStructureType c2g.AllocationsService.FilterStructureType The filter structure types.
filterPosition Integer The position of the filter set.
filterList List<c2g.AllocationsService.Filter> A list of filters.
defaultFilterCriteria c2g.AllocationsService.DefaultFilterCriteria The value of FilterCriteria by default.

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

Name Type Description
filterStructureType c2g.AllocationsService.FilterStructureType The filter structure types.
filterPosition Integer The position of the filter set.
filterList List<c2g.AllocationsService.Filter> A list of filters.
defaultFilterCriteria c2g.AllocationsService.DefaultFilterCriteria The value of FilterCriteria by default.
filterFor c2g.AllocationsService.FilterFor Item for which this filter is for.

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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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()

Filter

global Filter(c2g.AllocationsService.FilterCriteria filterCriteria, List<Object> values)

Holds the values for each FilterStructure depending on the FilterCriteria.

Input Parameters

Name Type Description
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.

This class extends c2g.AllocationsService.Entities

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
Percentage Decimal Value of the split percentage.
id Id Id of the split line.

Methods

SplitStructure

global SplitStructure()

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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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 The GLADistribution value.
RetrieveStructure c2g.AllocationsService.RetrieveStructure The RetrieveStructure value.

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.

This class extends c2g.AllocationsService.StatisticalBasisDistributionEntities

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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

StatisticalBasisAllocation

global StatisticalBasisAllocation()

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

Name Type Description
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

Name Type Description
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.
retrieveStructure c2g.AllocationsService.RetrieveStructure Holds the reference of RetrieveStructure.
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, 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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

c2g.AllocationsService.StatisticalFilter statisticalFilter = new c2g.AllocationsService.StatisticalFilter();
statisticalFilter.Id = 'b24240000356ALi';
statisticalFilter.FilterField = 'General Ledger Account';
statisticalFilter.Operator = 'Contains';
statisticalFilter.Value = 'Apex';

Properties

Name Type Description
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()

StatisticalFilter

global StatisticalFilter(c2g.AllocationsService.DistributionFields filterField, c2g.AllocationsService.FilterOperator operator, String value)

Constructor to assign the values to the properties.

Input Parameters

Name Type Description
filterField c2g.AllocationsService.DistributionFields The DistributionFields value.
operator c2g.AllocationsService.FilterOperator The FilterOperator value.
value String Value of a filterField.

c2g.AllocationsService.RuleBasedStatisticalAllocation

global with sharing class RuleBasedStatisticalAllocation extends StatisticalBasisDistributionEntities

Holds the fields from StatisticalBasisDistributionEntities class and Statistical allocation rule Id.

This class extends c2g.AllocationsService.StatisticalBasisDistributionEntities

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
RuleId Id Id of a Statistical Allocation rule.

Methods

RuleBasedStatisticalAllocation

global RuleBasedStatisticalAllocation()

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

Name Type Description
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

Name Type Description
ruleId Id Statistical allocation rule Id.
retrieveStructure c2g.AllocationsService.RetrieveStructure Holds the reference of RetrieveStructure.
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, 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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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

Name Type Description
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

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

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

Name Type Description
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()

AllocationsStructureForLightning

global AllocationsStructureForLightning(Id templateId, Date fromDate, Date toDate, Date postingDate, Id postingPeriod)

Holds the data to create allocation using date filter.

Input Parameters

Name Type Description
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

Name Type Description
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.

© Copyright 2009–2024 Certinia Inc. All rights reserved. Various trademarks held by their respective owners.