c# wpf free pdf viewer : Export pages from pdf preview application control tool html web page .net online ATGCommProgGuide59-part2139

ATG  C om mer ce P ro g ramm in g   Gui d e 
57 3  
25  -  P repari n g  t o   Us e C o mm erce  R eport i n g  
μ
Note: ATG does not populate the 
ARF_CURRENCY_CONV
table. Customers are 
responsible for acquiring and maintaining currency conversion rate data. 
lookupBillingRegion
—Uses the billing address in the order to determine the 
billing region. 
lookupSiteVisit
—Looks up visit information in the 
ARF_SITE_VISIT
table using 
the 
SESSION_ID
START_DATE
, and 
END_DATE
columns. 
lookupInternalUser
—Identifies the agent involved with the order. If not using ATG 
Commerce Service Center, this value is set to Unspecified. 
lookupOriginOfOrder
—Identifies the order’s place of creation. Orders can originate 
either from Web or Contact Center. If the order is created from a scheduled order 
template and the template is created by the Commerce site, the origin is Web. If the 
template is for the Commerce Service Center, the origin is Contact Center. 
lookupSalesChannel
—Identifies the sales channel through which the order was 
submitted. The sales channel for an order can be either Web or Contact Center. If the 
order is submitted from the Commerce site, the sales channel is Web. If the order is 
submitted from Commerce Service Center, the origin is Contact Center. 
lookupDay
—Uses the timestamp of the order to look up the day in the 
ARF_TIME_DAY
table. 
lookupTime
—Uses the timestamp of the order to look up the time in the 
ARF_TIME_TOD
table. 
lookupLocalCurrency
—Looks ups the currency used in the transaction in the 
ARF_CURRENCY
, using the 
ISO4217_ALPHA3
code for the currency. 
lookupCustomer
—Uses the profile ID in the order to look up the customer in the 
ARF_USER
table. 
lookupCustomerDemographic
—Examines the visitor’s date-of-birth, gender, marital 
status and home region as defined in the Data Warehouse. It uses this information to 
look up the record in the 
ARF_DEMOGRAPHIC
table that classifies this user. 
lookupPromotionGroup
—Examines the order for any promotions that were used 
and uses this information to look up a promotion group. 
lookupSegmentCluster
— Examines the order for segment clusters and looks up any 
associated with the order. 
runLineItems
—Runs the 
runLineItem
pipeline chain for each line item in the order. 
Note: The 
allocateTax
allocateShipping
, and 
allocateOrderDiscount
processors can be 
replaced with processors that use a uniform rather than a weighted allocation strategy. ATG provides a 
sample component for this purpose (the Nucleus location is 
/atg/reporting/datawarehouse/process/allocators/UniformLineItemAllocator
), or you can 
write your own processor that implements the 
atg.reporting.datawarehouse.commerce.LineItemAllocator
interface. See the Processor Chains 
and the Pipeline Manager chapter in this guide for information on editing pipeline chains. 
The 
runLineItem
pipeline includes the following processors: 
Export pages from pdf preview - application control tool:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Export pages from pdf preview - application control tool:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
57 4  
25  -  P reparin g   t o  Us e  C om merce  R epo rt in g  
lookupProduct
—Uses the product ID in the order to look up the product in the 
ARF_PRODUCT
table via the 
NPRODUCT_ID
column. 
lookupSku
—Uses the SKU ID associated with the order to look up the SKU in the 
ARF_SKU
table, using the 
NSKU_ID
column. 
lookupCategory
—Uses the 
PARENT_CAT_ID
of the product to find the category. 
listOrderStimuli
—Retrieves a list of stimuli from markers in the order. 
lookupStimulusGroup
—Uses all stimuli in the pipeline to look the stimulus group in 
the 
ARF_STIMGRP
table. Computes a hash code for all stimuli and uses the 
HASH_VALUE
column to look up the group. 
lookupShippingRegion
—Uses the order’s shipping address to find the region to 
which the line item is shipped. 
lookupQuestion
—If the 
DCS.DW.Search
module is running, runs an additional 
pipeline chain that determines what search fact, if any, was associated with this line 
item, and links the two in the 
ARF_LINE_ITEM_QUERY
table. If 
DCS.DW.Search
is not 
running, the question is “unspecified.” 
logLineItem
—Writes the line item to the Data Warehouse 
ARF_LINE_ITEM
table. 
tailLineItemProcessor
—If the 
DCS.DW.Search
module is running, starts the 
LineItemQuery
pipeline and its 
logLineItemQuery
processor,, which logs 
Commerce Search data for each line item in the ARF_LINE_ITEM_QUERY table. If 
DCS.DW.Search
is not running, does nothing. 
SegmentUpdate Pipeline 
The 
segmentUpdate
chain is triggered by the 
SegmentLoader
component. This pipeline chain consists 
of a single processor, 
/atg/reporting/datawarehouse/process/SegmentLoadProcessor
This processor handles insert, update and delete operations from the segment log files. Unlike the 
SiteVisit
and 
SubmitOrder
pipelines, it does not perform any lookups on the production system. 
Each time the 
SegmentLoadProcessor
component is invoked, it performs the following steps: 
1.
Gets a reference to the most recent Data Warehouse entry for the segment referred to 
in the log entry. 
2.
Determines what sort of change is to be applied (insert, update, or delete). 
3.
If an insert action and the item is not already in the database, the processor creates a 
new item. If the item already exists, the processor checks to see if a start date is 
specified. If not, which will typically be the case if an update or delete action is 
processed before an insert action, the start date of the existing item is set. If the start 
date has already been set, meaning there has been a prior insert action for the 
segment, then the current item is marked as expired and a new item is created. 
If an update action, if no matching item is found, creates a new item. 
If a delete action, if no matching item is found, a new item is created and marked as 
deleted. 
4.
Applies changes in the item to the repository. 
application control tool:VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview component enables compressing and
www.rasteredge.com
application control tool:C# PDF Page Insert Library: insert pages into PDF file in C#.net
applications. Support adding and inserting one or multiple pages to existing PDF document. Forms. Ability to add PDF page number in preview. Offer
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
57 5  
26  -  C u s t o mi zi ng   R epo rti n g   Dat a 
26
Customizing Reporting Data 
The provided ACI framework supports a wide variety of potential customizations. Customization projects 
can range in complexity from the very simple, such as adding a single property to an item in a repository, 
to the elaborate, such as adding support for reporting on an entirely new business process. Depending on 
the complexity of the data structures you are adding, these customizations may require changes to the 
following layers of the reporting infrastructure: 
Data Collection 
Data Loading 
Warehouse Schema 
Metadata Model 
Reports 
The examples in this chapter take you through two common and relatively simple examples: 
Adding an Attribute to a Dimension 
This represents a small expansion of the existing data structures, where you want to 
report on an attribute that is not represented by default. The example is based on the 
premise that you have added weight information to your product catalog, and would 
like to include this in your reports. 
Adding a New Dimension 
This is a more complex example than the first, and describes how you would go about 
adding a new data structure on which you can report. The example describes the steps 
necessary to add shipping information to your reports. 
More complicated customization projects involve integrating data from third-party sources, and are 
therefore not addressed in this document. For example, you may be considering a project that 
incorporates cost-of-goods data about from a non-ATG system. If you are considering a project of that 
level, thoroughly review the available ACI documentation, including the chapter on logging and loading 
components in this guide. Many existing components can be reused or adapted for these circumstances. 
Note: This chapter assumes that you are familiar with ACI, with database and dimensional modeling 
concepts, and with ATG repositories. Many books and Web sites provide information on dimensional 
modeling and data warehousing. Be sure to perform appropriate research before you begin your 
customization project if you are new to the subject. 
application control tool:C# PDF remove image library: remove, delete images from PDF in C#.
comment annotate PDF, VB.NET delete PDF pages, VB.NET Export high quality image from PDF document in .NET Remove PDF image in preview without adobe PDF reader
www.rasteredge.com
application control tool:C# PDF File Split Library: Split, seperate PDF into multiple files
Separate PDF file into single ones with defined pages. Advanced component for splitting PDF document in preview without any third-party plug-ins
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
57 6  
26  -  C u st o mi zi n g  R epo rt i ng   Dat a 
Adding an Attribute to a Dimension 
A very common practice for ATG customers is to add properties to existing repository items, for instance 
by extending the product catalog. The example in this section describes in detail the changes you would 
need to make if you had added a new attribute, weight, to the SKUs in your catalog. The example assumes 
that you have already made this change to your repository, and now want to include weight information 
in your reports. 
To add an attribute to a dimension: 
1.
Alter the 
ARF_SKU
table by adding a new column to represent weight. This column will 
contain a numeric attribute in your standard measurement system (for instance, 
pounds or kilograms). The table then contains the following columns: 
ID 
NSKU_ID 
... 
WEIGHT 
2.
Extend the 
/atg/reporting/datawarehouse/dataWarehouseRepository.xml
file to expose the 
weight
property as in this simplified sample: 
<item-descriptor name="sku"> 
<table name="ARF_SKU"> 
<property name="weight" column-name="WEIGHT" type="double"/> 
</table> 
1.
Map the 
weight
property in the product catalog to the weight 
property
in the data 
warehouse. This mapping is crucial for loading the product catalog dimension. The 
/atg/reporting/datawarehouse/process/Definition/DimensionProperties
.xml
file contains a 
data-warehouse-repository-item
element, which has a 
property-mappings
child element. For this example, we’ll add a new 
warehouse-
property
element under that, identifying how to map the data. 
<data-warehouse-repository-item item="sku"> 
<property-mappings> 
<warehouse-property name="weight"> 
<production-property name="catalog.sku.weight"/> 
</warehouse-property> 
</property-mappings> 
</data-warehouse-repository-item> 
This XML snippet maps the SKU’s 
weight
property in the product catalog to the 
weight
property in the data warehouse. 
2.
Use the Framework Manager to modify the metadata model to include the new 
attribute (Note: This tool is available only for Windows, and is an optional part of the 
ACI installation. See the Cognos Framework Manager User Guide). Copy the model to 
your local project before editing to prevent your changes being overwritten by future 
ATG updates. 
application control tool:VB.NET PDF File Split Library: Split, seperate PDF into multiple
Independent component for splitting PDF document in preview without using separate source PDF file to smaller PDF documents by every given number of pages.
www.rasteredge.com
application control tool:C# PDF insert image Library: insert images into PDF in C#.net, ASP
An independent .NET framework viewer component supports inserting image to PDF in preview without adobe PDF reader installed. Able
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
57 7  
26  -  C u s t o mi zi ng   R epo rti n g   Dat a 
The model is located in the 
<ATG10dir>/DCS/DW/cpf
directory. Modify the 
[ARF_SKU] query subject in the Database View, the [Sku] query subject in the Model 
View, and the [Catalog] regular dimension in the dimensional view. 
3.
Republish the metadata model with your changes. 
4.
Copy and modify the provided reports, or create new reports that use the new 
attribute. 
Adding a New Dimension 
The example in this section shows how you would add a new dimension, specifically a shipping method 
dimension. Having added this, you could then create reports that show sales by shipping method. 
Note: Take care when designing new dimensions. One potential pitfall lies in the reduction of 
performance that can result if your queries join your new dimension to existing, large dimensions such as 
the User dimension. Always consider whether you could extend an existing dimension instead, or 
otherwise streamline your data gathering process. 
To add a new dimension: 
1.
Create a table that represents this dimension in the data warehouse. In this case, we’ll 
call it 
ACME_SHIPPING_METHOD
. For purposes of this example, the table is very simple, 
consisting only of an identifier, the shipping method name, the estimated number of 
days for delivery, and the carrier. 
ACME_SHIPPING_METHOD
ID
NAME
—Name of shipping method, for instance, FedEx 3 day Ground 
DELIVERY_COMMENT
—For instance Same Day, 1-2 Business Days 
CARRIER
—Name of carrier, for instance, FedEx, UPS 
1.
Prepopulate the table with your data. This can be done many ways, including 
executing INSERT statements for static data or pipeline processors for more dynamic 
information. Since this table is your custom creation, you are responsible for its 
maintenance. For this example, since shipping methods are unlikely to change often, 
prepopulating it via INSERT statement would probably be used. 
2.
Modify the 
ARF_LINE_ITEM
table to add a 
SHIPPING_METHOD_ID
column, which is a 
foreign key reference to the 
ACME_SHIPPING_METHOD
table’s 
ID
column. 
3.
Extend the 
/atg/reporting/datawarehouse/dataWarehouseRepository.xml
file to add a 
ShippingMethod
item: 
<item-descriptor name="ShippingMethod"> 
<table name="ACME_SHIPPING_METHOD" id-column-names="id" type="primary"> 
<property name="carrier" column-name="CARRIER" type="string"/> 
<property name="deliveryComment" column-name="DELIVERY_COMMENT" 
type="string"/> 
<property name="name" column-name="NAME" type="string"/> 
application control tool:VB.NET PDF insert image library: insert images into PDF in vb.net
NET. An independent .NET framework component supports inserting image to PDF in preview without adobe PDF control installed. Access
www.rasteredge.com
application control tool:C# Create PDF Library SDK to convert PDF from other file formats
Preview PDF documents without other plug-ins. The following example will tell you how to create a PDF document with 2 empty pages.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
57 8  
26  -  C u st o mi zi n g  R epo rt i ng   Dat a 
</table> 
</item-descriptor> 
Modify the line item (you can use XML-combine to make this task easier; for 
information, see the ATG Repository Guide). 
<item-descriptor name="lineItem"> 
<table name="ARF_LINE_ITEM"> 
<property name="shippingMethodID" column-name="SHIPPING_METHOD_ID" 
type="int"/> 
</table> 
For this example, the ID is of type 
int
. If necessary, you can create a new item type 
instead. 
4.
Create a new pipeline processor in 
/atg/reporting/datawarehouse/process
called 
ShippingMethodLookupProcessor
. The new processor must do the 
following: 
Look up the shipping method ID. In this case, the pipeline should look up the 
shipping method based on some property in the order. 
At the end of the processor, set the output to the member value. In this case, set 
lineItem.shippingMethodID
to the member value as shown in the following 
code: 
runProcess(Object pParam, PipelineResult pResult) { 
// perform shipping method id lookup 
Dynamic.Beans.setPropertyValue(pParam, "lineItem.shippingMethodId", 
value) 
You may want to review the information on existing pipeline processors in this guide. 
The exact features of your pipeline will vary depending on what information you are 
retrieving and what, if any, transformations you want to make to the data. 
5.
Modify the pipeline chain to include your new lookup processor. Add the following 
line to the file: 
<pipelinelink name-"shippingMethodLookup" transaction="TX_MANDATORY"> 
<processor jndi="/atg/reporting/datawarehouse/process 
/ShippingMethodLookupProcessor"/> 
</pipelinelink> 
6.
Modify the 
/atg/reporting/datawarehouse/process/LineItemLoggerProcessor.proper
ties
file: 
lookupProperties += \lineItem.shippingMethodId 
dimensionProperties += \shippingMethodId 
application control tool:C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
www.rasteredge.com
application control tool:VB.NET PDF replace text library: replace text in PDF content in vb
Find and replace text in PDF file in preview without adobe PDF reader component installed. VB.NET: Replace Text in Consecutive PDF Pages.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
57 9  
26  -  C u s t o mi zi ng   R epo rti n g   Dat a 
7.
Use the Framework Manager to modify the metadata model to include the new 
attribute (Note: This tool is available only for Windows, and is an optional part of the 
ACI installation. See the Cognos Framework Manager User Guide). Copy the model to 
your local project before editing to prevent your changes being overwritten by future 
ATG updates. 
The model is located in the 
<ATG10dir>/DCS/DW/cpf
directory. 
8.
Republish the metadata model with your changes. 
9.
Copy and modify the provided reports, or create new reports that use the new 
attribute. 
Dimension Converters 
A dimension data converter modifies information before it is loaded in your data warehouse dimension 
tables. The data warehouse loader server invokes converter components if one is specified for a data 
warehouse repository item in the 
DimensionProperties.xml
file for a product. 
Dimension converters implement the 
atg.reporting.datawarehouse.process.DimensionConverter
interface. This interface expects 
only a single method called convert to be implemented. ATG Commerce includes several dimension 
converters. You can modify these converters or develop your own if needed. 
For example, the following warehouse-property element specifies that the data warehouse loader server 
should invoke the 
ProductParentCategoryConverter
dimension data converter when loading a 
product repository item into a data warehouse repository item. The 
conversion-component
attribute of 
the 
warehouse-property
element names the dimension converter. 
<warehouse-property 
name="parentCategory" 
conversion-component="/atg/reporting/datawarehouse/process/ 
converter/ProductParentCategoryConverter"> 
<production-property 
name="catalog.product" 
conversion-context-name="product"/> 
</warehouse-property> 
Conversion Context 
When the data warehouse loader server invokes a dimension converter, it passes it a context object. The 
context object is a map of parameters that the converter can use as it modifies the information that will 
be loaded in the data warehouse. 
ATG  C om merce  P ro gra mm in g  G ui d e 
58 0  
26  -  C u st o mi zi n g  R epo rt i ng   Dat a 
All dimension loader components implement a 
convert
method. This method takes the context object 
as its only argument. 
Each parameter in a context object has a conversion context name. These names are defined in the 
DimensionProperties.xml
file. You can use 
atg.beans.DynamicBeans.getPropertyValue
to get 
the value of a parameter in the context object. See Example Dimension Converter. 
Setting Conversion Property Parameters 
You can pass parameters to a dimension data converter that you create or modify. Use the 
production-
property
and 
conversion-property
elements to define these parameters in the 
DimensionProperties.xml
files for your ATG Commerce products. A dimension data converter will use 
the parameters when it converts specific production repository items before they are loaded into your 
data warehouse. 
The production-property Element 
Include the 
production-property
element in a 
warehouse-property
element to pass the name of a 
production repository item to a dimension converter component. The 
production-property
element is 
shown in the example below. 
<data-warehouse-repository-item item="product" natural-key="productId"> 
<production-repository 
repository="/atg/commerce/catalog/ProductCatalog" 
nickname="catalog"> 
<production-repository-item item="product"/> 
</production-repository> 
<property-mappings> 
<warehouse-property 
name="parentCategory" 
conversion-component="/atg/reporting/datawarehouse/process/ 
converter/ProductParentCategoryConverter"> 
<production-property 
name="catalog.product"<!-- This attribute indicates the production 
repository item. The name "catalog" refers 
to the nickname of the production repository 
specified in the production-respository 
element above. --> 
conversion-context-name="product"/> 
</warehouse-property> 
</property-mappings> 
</data-warehouse-repository-item> 
The following table explains the attributes of the 
production-property
element. 
ATG  C om mer ce P ro g ramm in g   Gui d e 
58 1  
26  -  C u s t o mi zi ng   R epo rti n g   Dat a 
Attribute 
Explanation 
name 
The identifier of a production repository item. Include the nickname of 
the production repository specified in the 
production-repository 
element
of a 
data-warehouse-repository-item
element. For 
example, 
catalog.product
conversion-context-name  An identifier for the parameter. Use this identifier in your dimension data 
converter implementation. 
The conversion-property Element 
Include the 
conversion-property
element in a 
warehouse-property
element when you need to pass 
additional parameters to a dimension converter component. The 
conversion-property
element is 
shown in the example below. 
<warehouse-property 
name="parentCategory" 
conversion-component="/atg/reporting/datawarehouse/process/ 
converter/ProductParentCategoryConverter"> 
<production-property 
name="catalog.product" 
conversion-context-name="product"/> 
<conversion-property 
property-value="1" 
property-type="java.lang.Integer" 
conversion-context-name="productIndex"/> 
</warehouse-property> 
The following table explains the attributes of the 
conversion-property
element. 
Attribute 
Explanation 
property-value 
The value that is passed to the dimension data converter. 
property-type 
The Java data type of the value that is passed to the dimension data 
converter. 
conversion-context-name  An identifier for the parameter. Use this identifier in your dimension data 
converter implementation. 
ATG  C om merce  P ro gra mm in g  G ui d e 
58 2  
26  -  C u st o mi zi n g  R epo rt i ng   Dat a 
Example Dimension Converter 
The following two examples show the definition for a simple conversion parameter and the 
implementation of a dimension data converter that uses it. 
The warehouse-property element specifies that the data loader server should invoke the dimension data 
converter named 
EchoConverter
when it loads the 
myProperty
data warehouse repository item. 
Because this example is extremely simple, it does not take source data from a production repository item. 
<warehouse-property 
name="myProperty" 
conversion-component="/atg/reporting/datawarehouse/process/ 
converter/EchoConverter"> 
<conversion-property 
property-value="Hello, World!" 
property-type="java.lang.String" 
conversion-context-name="message"/> 
</warehouse-property> 
The implementation of 
EchoConverter
shows one way to use parameters in a custom dimension 
converter. The convert method uses 
atg.beans.DynamicBeans.getPropertyValue
to get the value of 
the parameter named “message.” This parameter and its value are defined in the 
warehouse-property
element shown above. See information about the ATG classes used here in ATG API Reference. 
This example is very simple. The data that it produces is nothing more than the value of the string 
parameter that was passed in from the 
DimensionProperties.xml
file. 
package atg.reporting.datawarehouse.process.converter; 
import atg.beans.DynamicBeans; 
/** 
* Echos the message property 
*/ 
public 
class EchoConverter 
implements DimensionConverter 
//------------------------------------- 
// Constructors 
//------------------------------------- 
/** 
* Constructs an instanceof EchoConverter 
*/ 
public EchoConverter() { 
/** 
* Returns the message property of context, otherwise 
* the emptry string 
* @param pContext converation contexnt 
Documents you may be interested
Documents you may be interested