Loading the return item into a transactional fact table is a process that requires a number of stages to obtain and work with the data in different ways. To clarify this process, it is presented as a data flow in which data flows from one processor to the next. Along the way the data is transformed until the final processor records the data into the transactional fact table.

Data loading starts with the implementation of the Loader. The atg.reporting.datawarehouse.
loader.Loader.Loader
component uses the queueName property to point to a log file. The Loader runs using a scheduler, creates a log file reader for returned items and invokes the processReader method of the PipelineDriver component.

The PipelineDriver reads delimited lines from the log file then parses them and populates a pipeline parameter. The parameter is then sent down a pipeline chain. The atg.reporting.datawarehouse.
loader.FilePipelineDriver.PipelineDriver
component uses the properties paramPropertyNames and paramClasses properties to specify the names and types of parameters that are read.

The PipelineManager runs the pipeline chain described in the pipeline.xml file. Pipelines consist of several processors. These processors collect data, prepare line items and insert them in into the data warehouse.

Returns and Exchanges Pipeline Processors

The following processors are used in the Submit Return pipeline:

Pipeline Link

Description

fetchReturn

/atg/reporting/datawarehouse/
processes/custsvc/
FetchReturnProcessor

$class=atg.reporting.datawarehouse.
commerce.csr.FetchReturnProcessor

Uses the return ID to look up the return/exchange in the repository.

returnRequestLookup

atg/reporting/datawarehouse/process/
custsvc/ReturnRequestLookupProcessor

$class=atg.reporting.datawarehouse.
process.LookupPipelineProcessor

This processor fetches all return items in the warehouse for the current return ID. If there are return items the parameter map entry is created for the resultPropertyName value.

checkReturnExists

/atg/reporting/datawarehouse/process/WarehouseItemExistsProcessor

$class=atg.reporting.datawarehouse.
process.WarehouseItemExistsProcessor

This processor allows a switch to be implemented in the pipeline by determining if a warehouse item exists in the properties. If a warehouseItemPropertyName value exists in the parameter map, the current log record does not need to be processed. If the map entry does not exist the pipeline will process the next link.

createReturnLineItems

/atg/reporting/datawarehouse/process/custsvc/
CreateReturnLineItemsProcessor

$class=atg.reporting.datawarehouse.
commerce.csr.CreateLineItemsProcessor

This processor creates an array or the returned items map.

allocateOtherRefund

/atg/reporting/datawarehouse/process/
custsvc/OtherRefundAllocatorProcessor
.properties

$class=atg.reporting.datawarehouse.
commerce.AmountAllocatorProcessor

This processor gets refund information from returnRequest.
actualOtherRefund
and then distributes the refund amount based on return item refund amount or quantity. The ItemRefundLineItemAlocator looks at the return item refund subtotal. If the subtotal is greater than zero, then it distributes the amount based on the item refund amount.

allocateReturnFee

/atg/reporting/datawarehouse/process/
custsvc/ReturnFeeAllocatorProcessor.
properties

$class=atg.reporting.datawarehouse.
commerce.AmountAllocatorProcessor

This processor gets the return fee from returnRequest.
returnFee
and uses the ItemRefundLineItemAlocator to distribute the return fee across all return items.

calculateTotalAdjustments

/atg/reporting/datawarehouse/process/
custsvc/LineItemTotalAdjustments
Processor

$class=atg.reporting.datawarehouse.
commerce.ComputerLineItemTotal
Processor

This process sums up all adjustments for each returned item, such as shipping share, tax share, and other return fee allocation amounts. The suggested shares are used to calculate the actual share. If the suggested share is zero, the share will be calculated based on the return item’s quantity.

calculateTotal

/atg/reporting/datawarehouse/process/
custsvc/LineItemTotalRefundProcessor

$class=atg.reporting.datawarehouse.
commerce.ComputerLineItemTotal
Processor

This processor sums up all total adjustments and item refund items.

localCurrencyLookup

/atg/reporting/datawarehouse/process/
custsvc/LocalCurrencyLookupProcessor

$class=atg.reporting.datawarehouse.
commerce.CurrencyConverterProcessor

This processor converts local currency to standard currency values.

CurrencyConverter

/atg/reporting/datawarehouse/process/
custsvc/CurrencyConverterProcessor

$class=atg.reporting.datawarehouse.
commerce.CurrencyConverterProcessor

This processor converts shipping, tax and other refunds, the return fee, total adjustments and refunds.

dayLookup

/atg/reporting/datawarehouse/process/
custsvc/DayLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.DayLookupProcessor

This processor looks for the ID of the day for a given time stamp. This processor uses the return request createdDate property to return the ID.

timeLookup

/atg/reporting/datawarehouse/process/
custsvc/TimeLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.TimeLookupProcessor

This processor looks for the ID of the time for a given time stamp. This processor uses the return request createdDate property to return the ID.

customerLookup

/atg/reporting/datawarehouse/process/
custsvc/CustomerLookupProcessor

$class=atg.reporting.datawarehouse.
process.RepositoryItemLookupProcessor
$scope=global

This processor gets the customer ID from the returnRequest.
order.profileId
. If the customer is not found in the data warehouse, it will look in the production schema. If found in neither schemas, the processor will return Unspecified.

agentLookup

/atg/reporting/datawarehouse/process/
custsvc/InternalUserLookupProcessor

$class=atg.reporting.datawarehouse.
process.InternalUserLookupProcessor
$scope=global

This processor gets the agent ID from the returnRequest.
agent.repositoryId.
If the agent is not found in the data warehouse, it will look in the production schema. If found in neither schemas, the processor will return Unspecified.

returnSalesChannelLookup

/atg/reporting/datawarehouse/process/
custsvc/ReturnSalesChannelLookup
Processor

$class=atg.reporting.datawarehouse.
process.EnumeratedPropertyLookup
Processor

This processor looks up the return channel ID in the data warehouse.

runReturnLineItemPipelineChain

/atg/reporting/datawarehouse/process/
custsvc/ReturnItemPipelineProcessor

This processor runs the return item pipeline for each element of the LineItems array.

The following processors are available in the returnItem chain:

Pipeline Link

Description

lookupReturnSku

/atg/reporting/datawarehouse/process/
custsvc/SkuLookupProcessor

$class=atg.reporting.datawarehouse.
process.LookupPipelineProcessor

This processor looks up the SKU ID for each return item in the data warehouse.

lookupReturnProduct

/atg/reporting/datawarehouse/process/
custsvc/ProductLookupProcessor

$class=atg.reporting.datawarehouse.
process.LookupPipelineProcessor

This processor looks up the product ID for each return item in the data warehouse.

lookupReturnReason

/atg/reporting/datawarehouse/process/
custsvc/ReturnReasonLookupProcessor

$class=atg.reporting.datawarehouse.
process.LookupPipelineProcessor

This processor looks up the return reason ID for each return item in the data warehouse.

logReturnItem

/atg/reporting/datawarehouse/process/
custsvc/ReturnItemLoggerProcessor

$class=atg.reporting.datawarehouse.
process.RepositoryLoggerProcessor

This processor creates a repository item for the logged data that is based upon the lookup properties.

Calls Pipeline Processors

The following processors are used in the call pipeline chain:

Pipeline Link

Description

callLookup

/atg/reporting/datawarehouse/process
/svc/CallLookupProcessor.properties

$class=atg.reporting.datawarehouse.
process.LookupPipelineProcessor

This processor obtains the call item for the call ID. If the call item exists, the parameter map entry is created for the resultPropertyName.

checkCallExists

/atg/reporting/datawarehouse/process/
WarehouseItemExistsProcessor

$class=atg.reporting.datawarehouse.
process.WarehouseItemExistsProcessor

This processor implements a switch in the pipeline by determining if a warehouse item exists in the properties. If a warehouseItemPropertyName value exists in the parameter map, the current log record does not need to be processed. If the map entry does not exist, the pipeline will process the next link.

customerLookup

/atg/reporting/datawarehouse/process/
custsvc/CustomerLookupProcessor

$class=atg.reporting.datawarehouse.
process.RepositoryItemLookupProcessor
$scope=global

This processor gets the customer ID from the parameter map. If the customer is not found in the data warehouse, it will look in the production schema. If found in neither schemas, the processor will return Unspecified.

agentLookup

/atg/reporting/datawarehouse/process/
custsvc/InternalUserLookupProcessor

$class=atg.reporting.datawarehouse.
process.InternalUserLookupProcessor
$scope=global

This processor gets the agent ID from the parameter map. If the agent is not found in the data warehouse, it will look in the production schema. If found in neither schemas, the processor will return Unspecified.

dayLookup

/atg/reporting/datawarehouse/process/
custsvc/DayLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.DayLookupProcessor

This processor looks for the start time timestamp from the parameter map as well as the lookup for the day of the time stamp.

timeLookup

/atg/reporting/datawarehouse/process/
custsvc/TimeLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.TimeLookupProcessor

This processor looks for the start time timestamp from the parameter map as well as the lookup for the time of the time stamp.

enddayLookup

/atg/reporting/datawarehouse/process/
custsvc/DayLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.DayLookupProcessor

This processor looks for the end time timestamp from the parameter map as well as the lookup for the end day of the time stamp.

endtimeLookup

/atg/reporting/datawarehouse/process/
custsvc/TimeLookupPipelineProcessor

$class=atg.reporting.datawarehouse.
process.TimeLookupProcessor

This processor looks for the end time timestamp from the parameter map as well as the lookup for the end time of the time stamp.

totalTime

This processor calculates the total amount of call time in seconds.

callLogger

$class=atg.reporting.datawarehouse.
process.RepositoryLoggerProcessor

This processor creates a repository item for the logged data based on the lookup properties.


Copyright © 1997, 2013 Oracle and/or its affiliates. All rights reserved. Legal Notices