c# wpf free pdf viewer : Delete pages from pdf without acrobat SDK application service wpf windows web page dnn ATGCommProgGuide56-part2136

ATG  C om mer ce P ro g ramm in g   Gui d e 
54 3  
24  -  U si n g  R eq u i si t i on s   and   C o nt ract s  
μ
24
Using Requisitions and Contracts 
If you are using B2B Commerce, requisitions give your customers another way to track their purchases 
through your Web sites by attaching requisition numbers to their orders. Contracts allow you to associate 
a particular catalog, price list(s), and payment terms with a specific organization. 
This chapter includes the following sections: 
Requisitions 
Contract Repository Items 
Using Contracts 
Requisitions 
Requisition numbers provide another way for buying organizations to track orders from the purchase 
process through billing. A buyer can add a requisition number to any payment group when placing an 
order. ATG Business Commerce keeps track of the requisition number and carries it over to the billing 
process when invoices are generated. 
For example, a customer could make a purchase using a corporate credit card, and include a requisition 
number with the order for the benefit of their company’s finance department. The finance department 
could then link the credit card bill back to a requisition form filled out before making the purchase. 
Since the requisition number is part of the payment group, your back-end code and JSPs can access it like 
any other property. Linking the requisition number to the payment group rather than the order allows 
purchasing departments to aggregate purchases involving multiple buyers into a single order without 
losing information. After the order is created, someone at the purchasing organization must approve the 
order and supply any payment information your system requires. You can override this functionality 
changing the 
checkRequiresApproval
pipeline chain. See the Managing the Order Approval Process 
chapter for more information. 
ATG Business Commerce classes include several features to permit use of requisitions. The 
atg.commerce.order.PaymentGroup
and 
PaymentGroupImpl
classes include the 
requisitionNumber
property, as does the 
PaymentGroup
item descriptor in the order repository (these 
objects are discussed in depth in the Working With Purchase Process Objects chapter of this manual). The 
requisitionNumber
is generated by the purchasing organization. These properties exist in ATG 
Consumer Commerce but are not persisted to the database. 
Delete pages from pdf without acrobat - SDK application service: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
Delete pages from pdf without acrobat - SDK application service: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 
54 4  
24  -  Us i n g  R eq u is i t io n s  an d   C o nt ract s  
The database stores requisition numbers in the 
dbcpp_pmt_req
table and includes an index on the 
req_number
column, allowing quick searches. 
Requisition number use is optional. If your sites do not need to support requisition-based purchasing, you 
can simply omit requisition number fields from your order processing and checkout pages. 
Contract Repository Items 
The Contract repository item includes these properties: 
Property 
Description 
catalog 
The catalog to associate with this contract. This property is 
commented out; to use, uncomment it.  
comments 
String holding additional comments on the contract. 
creationDate 
Date the contract was created. 
creator 
Profile of the user who created the contract. 
displayName 
Name of the contract. 
endDate 
Date the contract ends. 
negotiatorInfo 
ContactInfo
item with information on the entity that 
negotiated the contract. 
priceList 
If using 
priceLists
, the 
priceList
to associate with this 
contract. This property is commented out; to use, uncomment it. 
startDate 
Date the contract goes into effect. 
terms 
contractTerms
repository object. 
The 
contractTerms
repository item includes these properties: 
Property 
Description 
paymentDiscountPerc
ent 
Discount on the price if the invoice is paid within the 
discountDays
period. 
paymentDiscountDays 
Period within which the 
discountPercentage
applies. 
paymentNetDays 
Time at which payment in full of the net price is due. 
SDK application service:C# PDF Converter Library SDK to convert PDF to other file formats
manipulate & convert standard PDF documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat.
www.rasteredge.com
SDK application service:C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. PowerPoint to PDF Conversion.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
54 5  
24  -  U si n g  R eq u i si t i on s   and   C o nt ract s  
Using Contracts 
Invoices in ATG Business Commerce are automatically set up to handle contracts appropriately. Whenever 
a new 
InvoiceRequest
is created (see the Generating Invoices chapter for further information), it 
consults the user’s organization information to see if a contract exists, and copies over the 
paymentNetDays
paymentDiscountDays
, and 
paymentDiscountPercent
information. 
SDK application service:C# Word - Word Conversion in C#.NET
Word documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Word to PDF Conversion.
www.rasteredge.com
SDK application service:C# Windows Viewer - Image and Document Conversion & Rendering in
image and document in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Convert to PDF.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
54 6  
24  -  Us i n g  R eq u is i t io n s  an d   C o nt ract s  
SDK application service:C# Excel - Excel Conversion & Rendering in C#.NET
documents in .NET class applications independently, without using other external third-party dependencies like Adobe Acrobat. Excel to PDF Conversion.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
54 7  
25  -  P repari n g  t o   Us e C o mm erce  R eport i n g  
25
Preparing to Use Commerce 
Reporting 
Commerce Reporting draws on data stored in the ATG Data Warehouse, described in detail in the ATG 
Customer Intelligence Data Warehouse Guide. Before you can use this feature, data must be gathered and 
loaded into the warehouse. Data is collected in the form of log files, which include information about 
orders placed, visits to your sites, and changes to the product catalog or user records. This chapter 
describes the components, processes, and configuration required to create and load these logs. 
This chapter includes the following sections: 
Setting Up Commerce Reporting Environments 
Configuring a Parent Catalog 
Logging Data for Commerce Reporting 
Loading Data for Commerce Reporting 
Setting Up Commerce Reporting Environments 
A typical setup for Commerce Reporting involves three ATG environments: 
An asset management environment running ATG Merchandising. This environment is 
used for maintaining the versioned site data, which it deploys to the production 
environment. 
A production environment that runs the actual Commerce site. This site logs data 
about customer activity. 
A data loading environment that loads the data logged by the production 
environment into the Data Warehouse database tables. This Data Warehouse can then 
be used for running reports. 
This section describes how to set up these three environments. For additional information about 
installing database tables for ATG Commerce, see the Configuring and Populating a Production Database 
chapter. For more information about setting up reporting, see the ATG Customer Intelligence Installation 
and Configuration Guide
ATG  C om merce  P ro gra mm in g  G ui d e 
54 8  
25  -  P reparin g   t o  Us e  C om merce  R epo rt in g  
Setting up the Asset Management Environment 
The asset management environment runs the ATG Merchandising application (which also requires ATG 
Commerce and ATG Content Administration). It manages the Commerce catalog and other data in 
versioned repositories, and deploys data from these versioned repositories to nonversioned repositories 
on the production environment. Note that the data loading environment also accesses this data, so both 
the production environment and the data loading environment need to be deployment targets for the 
merchandising environment to ensure that the repository caches on these environments remain in synch. 
For information about installing and running ATG Merchandising, see theATG Merchandising 
Administration Guide. In addition to following the instructions found there, run the following import script 
to create the default segment lists for reporting: 
<ATG10dir>/DCS/Versioned/install/importDCSVersioned 
When you assemble your EAR file for the asset management environment, include the 
ARF.base
application module. 
See also, Configuring an Asset Management Server in the ATG Customer Intelligence Installation and 
Configuration Guide
Setting Up the Production Environment 
The production environment runs your site application (that is, the web application that constitutes your 
online store). As customers interact with your site, the production environment logs data about orders 
placed, site visits, and other customer activities. No additional tables or data are required for this 
environment. 
Setting Up the Data Loading Environment 
The data loading environment processes the data logged by the production environment and stores 
results in the Data Warehouse, where it can be used for running reports. 
For information on creating the database tables for the Data Warehouse and data loaders, configuring 
data sources, and assembling the loading environment EAR file, see the ATG Customer Intelligence 
Installation and Configuration Guide
Note that the data loading environment includes several repositories whose tables are part of the 
production environment. These repositories include the user profile repository, the product catalog, and 
the order repository. Make sure the datasources for these repositories are configured to point to the 
production database. For information about configuring datasources in general, see the ATG Installation 
and Configuration Guide
Configuring a Parent Catalog 
Each product can have multiple parent categories, one for each catalog that includes the product. 
Therefore, you must designate a reporting catalog, which determines which catalog supplies the parent 
ATG  C om mer ce P ro g ramm in g   Gui d e 
54 9  
25  -  P repari n g  t o   Us e C o mm erce  R eport i n g  
category information for a given product. You can do this in the 
reportingCatalogId
property of the 
/atg/reporting/datawarehouse/CommerceWarehouseConfiguration
component. This property is 
null
by default. If the property is 
null
and a product has only a single parent category, that category is 
used. If it is null and there is more than one potential parent category, the first category is used, and a 
warning is logged. 
Logging Data for Commerce Reporting 
Data logging takes place in two environments in an ATG Commerce context. Some data comes from your 
production environment, including site visits, orders, customer/visitor changes and segment definition 
changes. Other data comes from the merchandising environment, including changes to categories, 
products, SKUs and promotions. 
Data logging components for users, segments, and site visits are located in 
/atg/reporting/datacollection/userprofiling
. The logging components for orders and the 
product catalog are located in 
/atg/reporting/datacollection/commerce
. All loggers have the 
following common characteristics: 
1.
A listener monitors for one or more event types that signify log-worthy activity in the 
listener’s domain. The event is placed on a queue, which notifies its associated logging 
component of the event. The type of event that triggers logging differs among the 
various types of logged data. 
2.
Depending on the log type, filtering may be performed to ensure that only changes of 
interest for reporting are logged. 
3.
The data logger writes information about the events to a tab-delimited text file. Each 
log file has a unique name in the format 
log-type_timestamp_unique-ID
.data
For example: 
catalog_12-04-2006_03-27-31-442_200055200055.data 
The unique ID is generated by the 
/atg/dynamo/service/IdGenerator
component. Including the ID in the filename means that even if you configure your 
system to send all log files generated by any number of Dynamo instances to a central 
location, there is no risk that they will overwrite one another. 
All log files consist of one tab-delimited line per entry. 
Log files are rotated by the 
FileLogger
components, either at a scheduled time or 
when a configured limit on the number of log entries is reached. During rotation, the 
currently open log file is closed and a new one opened. The logging component fires a 
JMS message, which is received by the 
LogRotationSink
, which adds the closed log 
file and its type to the queue in the 
DataWarehouseLoaderRepository
Note: Rotation occurs only if the current log file contains data. 
The sections that follow provide specific information on each logger. Since all loggers are configured in 
similar ways, for logger configuration, see the Data Logging Configuration section. 
ATG  C om merce  P ro gra mm in g  G ui d e 
55 0  
25  -  P reparin g   t o  Us e  C om merce  R epo rt in g  
Site Visit Data Logging 
The 
/atg/reporting/datacollection/userprofiling/SiteVisitManager
Nucleus component 
listens for session start, session end and page view events. It accumulates information about a site visit in 
a session-scoped component called 
/atg/reporting/datacollection/userprofiling/SiteVisitRequest
. When the session ends, the 
SiteVisitManager
sends a JMS message. The 
siteVisit
message has a JMS type of 
atg.dps.SiteVisit
, and is an instance of the 
atg.userprofiling.dms.SiteVisitMessage
class. 
This message is received by the 
SiteVisitMessageSink
, which calls the 
/atg/reporting/datacollection/userprofiling/SiteVisitQueue
component. The 
SiteVisitQueue
component calls the 
/atg/reporting/datacollection/userprofiling/SiteVisitFileLogger
component, which 
adds an entry to the 
site-visit_
timestamp
_
unique-ID
.data
file. 
The log file includes the following details for each visit: 
Session ID 
Profile ID 
Session start timestamp 
Session end timestamp 
Visit duration in seconds 
Number of pages viewed 
The following is an example of the site visit log: 
0385E85E9E8BC68D34354D132AFAB29C 
170003  11/07/2006 14:38:46 
11/07/2006 14:38:46 
65F444358B90D134E745E0E9859F3974 
120000  11/07/2006 14:35:27 
11/07/2006 15:01:55 
1588 
25 
Order Submit Data Logging 
To log order data, the 
CommerceOrderSubmitPipeline
emits a 
SubmitOrder
event. The event is 
received by the 
/atg/reporting/datacollection/commerce/OrderLogEntryQueueSink
and 
forwarded on to the 
/atg/reporting/datacollection/commerce/OrderFileLogger
component. 
There is one log entry per order. The logging file is named 
order_
timestamp
_
unique ID
.data
, and it 
includes the following: 
Timestamp 
Profile ID of the user who placed the order 
Order ID 
Set of segments the user was in when the 
OrderSubmit
message was fired 
This means those segments for which both of the following apply: 
ATG  C om mer ce P ro g ramm in g   Gui d e 
55 1  
25  -  P repari n g  t o   Us e C o mm erce  R eport i n g  
The user is a member of the segment 
The segment is part of the 
CommerceReporting
segment list 
If the logger encounters a null value, it writes the empty string to the log file. If you prefer the logger to 
write the string 
null
instead, set the 
skipNullOjbect
property of the 
OrderFileLogger
component to 
false
The following is an example of the order log: 
12/04/2006 16:39:42 
o10004  110002  5E47ED51379664EBA2077AEFCDC0F90D 
UserProfiles:ValueShoppers 
Commerce Search Data Logging 
This section applies if you are using ATG Search as part of your ATG Commerce site, and want to report on 
the integration between these products. Commerce Search logs information when searches are 
performed, and when customers click links in search results to view or purchase items. See the ATG Search 
Administration Guide for information on the former; this section discusses the latter. 
To associate search terms with items that are viewed or purchased, your sites must record “click-through” 
events. These occur when a customer clicks on a product or SKU returned by a search, to view it or 
purchase it. The recording of these events works like this: 
For each search result, the 
/atg/search/droplet/GetClickThroughId
servlet 
bean generates a click-through ID, which you append to the URL for that result using a 
query parameter. The servlet bean also adds the result document to a cache. 
When a customer clicks a link to view a search result, the 
/atg/search/servlet/pipeline/SearchClickThroughServlet
examines the 
request URL, finds the click-through ID, and uses it to look up the document in the 
cache. If it finds the document, the servlet fires an 
atg.search.events.SearchClickThroughMessage
JMS event containing the 
search request and response objects and the selected document. This event is logged 
to be used for reporting. 
The 
QueryFileLogger
component logs the search information; see Data Logging for Reports in the ATG 
Search Administration Guide for information on this component. 
For more information about configuring your Commerce site to log data for Commerce Search reports, 
see the ATG Search Administration Guide. 
Product Catalog Data Logging 
When you make changes to category, product, SKU or promotion items in your catalog, ATG Content 
Administration creates a list of changed items to deploy. Once the deployment is completed and the 
publishing clients have switched their data sources, the 
/atg/reporting/datacollection/commerce/ProductCatalogDeploymentListener
component 
on the ATG Content Administration server is notified of the switch and the list of changes. 
ATG  C om merce  P ro gra mm in g  G ui d e 
55 2  
25  -  P reparin g   t o  Us e  C om merce  R epo rt in g  
The 
sourceRepositoryPathToItemDecriptorNames
property of the 
ProductCatalogDeploymentListener
component defines the item types for which changes should be 
logged and the Data Warehouse updated. 
sourceRepositoryPathToItemDecriptorNames=\ 
/atg/commerce/catalog/ProductCatalog=category;product;sku;promotion 
You can use the 
ignorableTargets
property to specify any Content Administration targets where 
changes should not be logged, such as your staging environment: 
ignorableTargets=Staging 
Note: If you do a full deploy of your product catalog, all items are logged as changed, though the data 
may not be any different. During its next scheduled run, the loader will then compare every item in the 
catalog with the dimension data in the Warehouse Repository, and only actual changes are loaded. For 
large catalogs, this process can take a long time. 
The JMS message type used to identify log rotation is 
atg.reporting.productCatalogUpdate
The 
catalog_
timestamp_unique id
.data
file contains the following logged information: 
Timestamp when the logging component received notification of the successful data 
source switch, which approximates the time when the change went live on the 
production server 
Nucleus path to the repository component 
Type of item that changed 
Repository item ID for the changed item 
Change type (insert, update, or delete) 
The following is an example of the product catalog log: 
10/19/2006 10:08:39     /atg/commerce/catalog/ProductCatalog product 
prod70002     insert 
10/19/2006 10:08:39     /atg/commerce/catalog/ProductCatalog sku 
sku81007     update 
10/19/2006 10:10:39     /atg/commerce/catalog/ProductCatalog product 
prod70004     delete 
User Data Logging 
The 
/atg/reporting/datacollection/userprofiling/UserEventListener
component is notified 
whenever an insert, update, or delete is performed on either User or ContactInfo repository item 
descriptors in the Profile Repository. The 
user_
timestamp_unique ID
.data
log created by the 
/atg/reporting/datacollection/userprofiling/UserFileLogger
component includes the 
following data: 
Documents you may be interested
Documents you may be interested