c# wpf free pdf viewer : Delete pages out of a pdf file control software platform web page windows winforms web browser ATGCommProgGuide52-part2132

ATG  C om mer ce P ro g ramm in g   Gui d e 
50 3  
21  -  M an agi n g  t h e  Ord er  A ppro val  P ro ces s 
μ
Is the order already approved?
approveOrder’s first processor, 
verifyApproval, checks whether the 
order is already approved. 
Yes
No
Execution of approveOrder 
chain stops. Order continues 
through checkout process in 
processOrder. 
Does the order require approval?
approveOrder’s second processor, 
runCheckRequiresApprovalChain, 
executes a separate chain, 
checkRequiresApproval. 
checkRequiresApproval determines 
whether the order requires approval 
and returns the answer to the 
approveOrder chain. 
Execution of approveOrder 
stops. Order continues 
through checkout process in 
processOrder. 
Does the approver approve 
the order? 
Approver approves or rejects 
order using form on page. 
No, order
rejected 
Yes, order
approved
ApprovalFormHandler’s 
handleApproveOrder 
method executes 
orderApproved chain. 
ApprovalFormHandler’s 
handleRejectOrder 
method executes 
orderRejected chain. 
Is the order approval process complete? 
CheckApprovalComplete service listens for 
ApprovalUpdate messages on 
/Approval/ApprovalUpdate. When it receives 
them, it executes the checkApprovalComplete 
chain to determine if the approval process for 
the order is complete. 
If the order was approved, the  
processOrder chain is executed 
again to take the order through the 
checkout process. If the order wasn’t 
approved, the order does not return 
to the processOrder chain. 
Order waits for action, such as an 
additional approval.  
Note: The default implementation 
never enters this state.  
Yes
No
Yes
No
As is briefly illustrated in the preceding diagram, the order approval process is as follows: 
1.
approveOrder
’s first processor, 
verifyApproval
, checks whether the order already 
is approved. 
If the order is approved, then execution of 
approveOrder
stops, and the order 
proceeds through the checkout process in 
processOrder
Delete pages out of a pdf file - control software platform: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 out of a pdf file - control software platform: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 
50 4  
21  -  M anag i n g  t h e  Ord er  A pprov al  P ro ces s  
If the order isn’t approved, then the order proceeds to the second processor in 
approveOrder
2.
approveOrder
’s second processor, 
runCheckRequiresApprovalChain
, executes a 
separate pipeline chain named 
checkRequiresApproval
checkRequiresApproval
determines whether approval is needed for the order and reports back to 
approveOrder
If approval is needed, then the order continues through the 
approveOrder
chain. 
approveOrder
changes the order’s state to PENDING_APPROVAL. The 
chain adds to the order’s 
authorizedApproverIds
property the list of profile 
IDs of the users who are allowed to approve the order, and it adds to the order’s 
approvalSystemMessages
property the conditions that triggered an approval 
to be required. Finally, 
approveOrder
sends out an 
ApprovalRequired
message to the 
/Approval/Scenarios
JMS message topic. This message can 
then be used to execute scenarios. 
If approval isn’t needed, then execution of 
approveOrder
stops, and the order 
proceeds through the checkout process in 
processOrder
. (For detailed 
information on the 
processOrder
pipeline, see Checking Out an Order in the 
Checking Out Orders section of the Configuring Purchase Process Services 
chapter.) 
Note: The default implementation of the 
checkRequiresApproval
chain checks the 
approvalRequired
property in the customer’s profile. If the 
approvalRequired
property is true, then approval is required for the customer. An error is then added to 
the 
PipelineResult
object, which tells the system that an approval is required, and 
the reason that approval is required is stored in the 
errorMessages
property of the 
Order. This reason for approval is later added to the order’s 
approvalSystemMessages
property by the 
approveOrder
chain’s 
addApprovalSystemMessagesToOrder
processor. If the 
approvalRequired
property is false, then approval isn’t required for the customer. 
You can edit the 
checkRequiresApproval
chain to create specific requirements for 
whether an approval is required for a given customer. For example, you might want to 
include a processor that checks the total amount of the customer’s order against an 
order limit specified in the customer’s profile. If the order amount exceeds the 
specified limit, then approval for the customer’s order would be required. Similarly, 
you might want to include a processor that checks the manufacturers of the items in 
the customer’s order against a list of preferred suppliers specified in the customer’s 
profile. If a manufacturer isn’t in the list of preferred suppliers, then approval for the 
customer’s order would be required. 
3.
If approval for the order is needed, an approver then approves or rejects the order and 
submits this decision in a form using the 
ApprovalFormHandler
form handler. The 
form’s “Approve” and “Reject” submit buttons call the 
handleApproveOrder
method 
or the 
handleRejectOrder
method, respectively. 
If the 
handleApproveOrder
method is called, the method executes the 
orderApproved
pipeline chain. 
orderApproved
adds the profile ID of the user 
who approved the order to the order’s 
approverIds
property, and adds the 
messages associated with the approver’s decision to the order’s 
approverMessages
property. Finally, 
orderApproved
sends out an 
ApprovalUpdate
message whose 
approvalStatus
property is set to 
control software platform:VB.NET PDF delete text library: delete, remove text from PDF file
Delete text from PDF file in preview without adobe PDF reader component installed. Able to pull text out of selected PDF page or all PDF document in .NET
www.rasteredge.com
control software platform:C# PDF delete text Library: delete, remove text from PDF file in
Able to pull text out of selected PDF page or all PDF option, The search and delete match rules. -. pageCount, The count of pages that will be deleted a string.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
50 5  
21  -  M an agi n g  t h e  Ord er  A ppro val  P ro ces s 
“approved.” This message is sent to both the 
/Approval/ApprovalUpdate
JMS message queue and the 
/Approval/Scenarios
JMS message topic. This 
message can then be used to execute scenarios. 
If the 
handleRejectOrder
method is called, the method executes the 
orderRejected
pipeline chain. 
orderRejected
adds the profile ID of the user 
who rejected the order to the order’s 
approverIds
property, and adds the 
messages associated with the approver’s decision to the order’s 
approverMessages
property. Finally, 
orderRejected
sends out an 
ApprovalUpdate
message whose 
approvalStatus
property is set to 
“rejected.” This message is sent to both the 
/Approval/ApprovalUpdate
JMS 
message queue and the 
/Approval/Scenarios
JMS message topic. This 
message can then be used to execute scenarios. 
Note: The 
orderApproved
and 
orderRejected
pipeline chains are the same with 
the exception of the value of 
approvalStatus
property of the 
ApprovalUpdate
message that is sent. You can edit these chains to add or remove functionality to meet 
your application’s needs. 
4.
The 
ApprovalCompleteService
, located in Nucleus at 
/atg/commerce/approval/ApprovalCompleteService
, is configured to listen for 
the 
ApprovalUpdate
messages sent by the 
orderApproved
and 
orderRejected
chains to the 
/Approval/ApprovalUpdate
JMS message queue. When 
ApprovalCompleteService
receives a message, it executes the 
checkApprovalComplete
pipeline chain. 
checkApprovalComplete
determines 
whether the approval process for the order is complete. By default, 
checkApprovalComplete
’s second processor, 
approvalCompleteAnalyzer
, checks 
whether at least one person has approved or rejected the order. If so, then the 
approval process for the order is considered to be complete. 
If at least one person has approved the order, 
checkApprovalComplete
changes the order’s state from PENDING_APPROVAL to APPROVED and 
executes the 
processOrder
chain so the order can go through the checkout 
process. (For detailed information on the 
processOrder
pipeline, see Checking 
Out an Order in the Checking Out Orders section of the Configuring Purchase 
Process Services chapter.) Additionally, the 
checkApprovalComplete
chain 
sends an 
ApprovalComplete
message whose 
approvalStatus
property is set 
to “
approval_passed
” to the 
/Approval/Scenarios
JMS message topic. This 
message can then be used to execute scenarios. 
If at least one person has rejected the order, 
checkApprovalComplete
changes 
the order’s state from PENDING_APPROVAL to FAILED_APPROVAL, and sends 
an 
ApprovalComplete
message whose 
approvalStatus
property is set to 
approval_failed
” to the 
/Approval/Scenarios
JMS message topic. This 
message can then be used to execute scenarios. 
Note: As previously mentioned, the default implementation of the 
approvalCompleteAnalyzer
processor merely checks whether at least one person 
has approved or rejected the order. If so, then the approval process for the order is 
considered completed. You can change the implementation of 
approvalCompleteAnalyzer
in order to change the requirements for completion of 
the approval process. 
control software platform:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
VB.NET comment annotate PDF, VB.NET delete PDF pages, VB.NET can view PDF document in single page or continue pages. Support to zoom in and zoom out PDF page.
www.rasteredge.com
control software platform:VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Auto Fill-in Field Data. Field: Insert, Delete, Update Field. can view PDF document in single page or continue pages. Support to zoom in and zoom out PDF page.
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
50 6  
21  -  M anag i n g  t h e  Ord er  A pprov al  P ro ces s  
For detailed information about the pipeline chains and processors mentioned in this section, refer to 
Appendix G: Commerce Pipeline Chains
Modifying the Order Approval Process 
The 
ApprovalPipelineManager
, located in Nucleus at 
/atg/commerce/approval/
, uses an approval 
pipeline configuration file to manage the pipelines in the order approval process. The configuration file is 
located at 
<ATG10dir>/B2BCommerce/atg/commerce/approval/approvalpipeline.xml
If you modify the pipelines in the order approval process, you’ll need to extend the 
approvalpipeline.xml
file to override the default configuration. To do so, create a new 
approvalpipeline.xml
file at 
/atg/commerce/approval/
in your 
config
directory. During 
deployment, the ATG platform uses XML file combination to combine the 
approvalpipeline.xml
files 
in the CONFIGPATH into a single composite XML file. 
For general information about how to modify existing pipelines, see the Processor Chains and the 
Pipeline Manager chapter. For more information on XML file combination, see the Nucleus: Organizing 
JavaBean Components chapter in the ATG Programming Guide
Servlet Beans and Form Handlers for Approving Orders 
When an order has been determined to require approval, and its order state has been set to 
PENDING_APPROVAL, an approver must then review the order and approve or reject it. 
ApprovalRequiredDroplet
and 
ApprovalFormHandler
are provided for this purpose. 
Additionally, an approver might want to view a historical list of the orders he or she has approved and/or 
rejected. 
ApprovedDroplet
is provided for this purpose. 
ApprovalRequiredDroplet Servlet Bean 
Use the 
ApprovalRequiredDroplet
servlet bean (class 
atg.b2bcommerce.approval.ApprovalRequiredDroplet
) to retrieve all orders requiring approval by 
a given approver. 
ApprovalRequiredDroplet
queries the order repository and returns all orders that 
meet the following two criteria: 
The order’s 
authorizedApproverIds
property contains the approver’s ID. 
The state of the order requires approval, meaning that the state is defined in the 
ApprovalRequiredDroplet
orderStatesRequiringApproval
property. The 
order’s state is held by the property of the order that is specified in the 
ApprovalRequireDroplet
orderStatePropertyName
property. The default value 
is 
PENDING_APPROVAL
Refer to Appendix: ATG Commerce Servlet Beans of the ATG Commerce Guide to Setting Up a Store for 
detailed information about the input, output, and open parameters of 
ApprovalRequiredDroplet
, as 
well as a JSP code example using this servlet bean. 
control software platform:C# WPF PDF Viewer SDK to view PDF document in C#.NET
Auto Fill-in Field Data. Field: Insert, Delete, Update Field. extract, copy, paste, C#.NET rotate PDF pages, C#.NET Abilities to zoom in and zoom out PDF page.
www.rasteredge.com
control software platform:VB.NET PDF replace text library: replace text in PDF content in vb
Able to pull text out of selected PDF page or all PDF document in VB.NET. VB.NET: Replace Text in PDF File. 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 
50 7  
21  -  M an agi n g  t h e  Ord er  A ppro val  P ro ces s 
ApprovedDroplet Servlet Bean 
Use the 
ApprovedDroplet
servlet bean (class 
atg.b2bcommerce.approval.ApprovedDroplet
) to 
retrieve all orders that have been approved and/or rejected by a given approver. 
ApprovedDroplet
queries the order repository and returns all orders that have the approver’s profile ID in the 
approverIds
property. 
Refer to Appendix: ATG Commerce Servlet Beans of the ATG Commerce Guide to Setting Up a Store for 
detailed information about the input, output, and open parameters of 
ApprovedDroplet
, as well as a JSP 
code example using this servlet bean. 
ApprovalFormHandler 
The 
ApprovalFormHandler
form handler (class 
atg.b2bcommerce.approval.ApprovalFormHandler
) processes an approver’s approval or rejection of 
an order. The 
ApprovalFormHandler
class contains two handle methods, 
handleApproveOrder
and 
handleRejectOrder
. You can associate these handle methods with Submit properties in the following 
manner: 
<input type=submit bean="ApprovalFormHandler.approveOrder" value=" Approve Order"> 
<input type=submit bean="ApprovalFormHandler.rejectOrder" value=" Reject Order"> 
If the 
handleApproveOrder
method is called for 
ApprovalFormHandler.approveOrder
, the 
handleApproveOrder
method executes the 
orderApproved
pipeline chain. Similarly, if the 
handleRejectOrder
method is called for 
ApprovalFormHandler.rejectOrder
, the 
handleRejectOrder 
method executes the 
orderRejected
pipeline chain. 
Refer to Implementing an Order Approval Process chapter of the ATG Commerce Guide to Setting Up a Store 
for a JSP code example that uses 
ApprovalFormHandler
. Refer to Appendix G: Commerce Pipeline 
Chains, for more information about the 
orderApproved
and 
orderRejected
chains. 
JMS Messages in the Order Approval Process 
The following JMS messagessupport the order approval process: 
ApprovalRequiredMessage 
JMS Type: 
atg.b2bcommerce.approval.ApprovalRequired
Extends the class 
atg.commerce.messaging.CommerceMessageImpl
This message includes the order requiring approval and the profile repository item for 
the customer associated with the order as 
order
and 
profile
message properties, 
respectively. If you are using ATG Commerce for multisite, the 
siteId
property is 
populated as well. 
This message is sent to the 
/Approval/Scenarios
JMS message topic, which allows 
the scenario server to interact with the message using SQL JMS and obtain the profile 
outside the current thread. 
control software platform:VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Auto Fill-in Field Data. Field: Insert, Delete, Update Field. extract, copy, paste, C#.NET rotate PDF pages, C#.NET Abilities to zoom in and zoom out PDF page.
www.rasteredge.com
control software platform:VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
document is unnecessary, you may want to delete this page get a PDF document which is out of order on creating, loading, merge and splitting PDF pages and Files
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
50 8  
21  -  M anag i n g  t h e  Ord er  A pprov al  P ro ces s  
ApprovalMessage 
JMS Type: 
atg.b2bcommerce.approval.ApprovalUpdate 
atg.b2bcommerce.approval.ApprovalComplete
Extends the class 
atg.commerce.messaging.CommerceMessageImpl
This message includes the order requiring approval and the profile repository item for 
the customer associated with the order as 
order
and 
profile
message properties, 
respectively. It also includes an 
approvalStatus
message property. 
If you are using ATG Commerce for multisite, the 
siteId
property is populated as 
well. 
A message with a 
JMSType
of either 
ApprovalUpdate
or 
ApprovalComplete
is sent 
to the 
/Approval/Scenarios
JMS message topic, which allows the scenario server to 
interact with the message using SQL JMS and obtain the profile outside the current 
thread. 
A message with a 
JMSType
of 
ApprovalUpdate
is also sent to the 
/Approval/ApprovalUpdate
JMS message queue. 
ApprovalCompleteService
listens for messages on this queue. 
control software platform:C# PDF Image Redact Library: redact selected PDF images in C#.net
Fill-in Field Data. Field: Insert, Delete, Update Field. extract, copy, paste, C#.NET rotate PDF pages, C#.NET NET control allows users to black out image in PDF
www.rasteredge.com
control software platform:C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF document. How to C#: Extract Text Content from PDF File. C# example code for text extraction from all PDF pages.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
50 9  
22  -   Usi n g  A ban d o ned   O rd er S ervice s 
22
Using Abandoned Order Services 
An abandoned order or shopping cart is one that a customer creates and adds items to, but never checks 
out. Instead, the customer simply exits the Web site, thus “abandoning” the incomplete order. 
The Abandoned Order Services module that is provided with base ATG Commerce includes a collection of 
services and tools that enable you to detect, respond to, and report on abandoned orders and related 
activity. As such, it enables you to better understand what kinds of orders your customers are 
abandoning, as well as what campaigns effectively entice them to reclaim and complete them. The result 
is an increase in order conversion and revenue. 
This chapter is intended for developers who must configure the module according to specific Web site 
requirements. It includes the following sections: 
An Overview of Abandoned Orders 
Defining and Detecting Abandoned Orders 
Configuring AbandonedOrderService 
Configuring AbandonedOrderTools 
Scenario Events and Actions 
Customizations and Extensions 
Important: When you want to work with the Abandoned Order Services module, you need to include 
DCS.AbandonedOrderServices
along with 
B2CCommerce
or 
B2BCommerce
module when you assemble 
your application. See the ATG Programming Guide for information on ATG modules and application 
assembly. 
For information on related tasks that are typically performed by merchants and other business users, such 
as creating scenarios that respond to abandonment activity, see the Managing Abandoned Orders chapter 
of the ATG Commerce Guide to Setting Up a Store
An Overview of Abandoned Orders 
Examine the following process flow diagram, which illustrates the various paths an order can take once 
created by a customer. 
ATG  C om merce  P ro gra mm in g  G ui d e 
51 0  
22  -  Us i n g  A ban d on ed   Ord er  Servi ces  
Customer 
creates 
an order.
Customer 
adds items 
to the order. 
Customer 
completes 
(checks out) 
the order. 
Customer does not complete 
(check out) the order within a 
given timeframe. Order is idle
.
Order remains idle 
for extended period 
of time. 
Customer modifies the 
order, for example, by 
adding an item. 
Order is abandoned 
Order is lost 
Order is  
reanimated
Order is  
converted
As mentioned in the introduction to this chapter, the Abandoned Order Services module contains a 
collection of services and tools that enable you to detect, respond to, and report on abandoned orders 
and related activity, that is, activity that falls within the shaded area of the diagram above. As the diagram 
implies, there are several general types of orders that fall within this area: 
Abandoned orders – Incomplete orders that have not been checked out by 
customers and instead have remained idle for a duration of time. 
Reanimated orders – Previously abandoned orders that have since been modified by 
the customer in some way, such as adding items or changing item quantities. 
Converted orders – Previously abandoned orders that have been successfully 
checked out by the customer. 
Lost orders – Abandoned orders that have been abandoned for so long that 
reanimation of the order is no longer considered realistic. 
Note in the diagram that the process flow is not always linear. For example, an order can be abandoned, 
then reanimated, then abandoned again. 
The subsections that follow describe the various abandonment states, repository extensions, and 
repositories that are required to support these orders and the tracking of related order abandonment 
activity: 
Abandonment States 
Order Repository Extensions 
Profile Repository Extensions 
The AbandonedOrderLogRepository 
ATG  C om mer ce P ro g ramm in g   Gui d e 
51 1  
22  -   Usi n g  A ban d o ned   O rd er S ervice s 
Abandonment States 
The table below describes the default abandonment states in the Abandoned Order Services module: 
State 
Description 
ABANDONED  The order is incomplete, that is, not checked out, and meets the criteria 
for identification as abandoned. Typically, an abandoned order is one that 
has been idle for a specific number of days. 
You define the criteria for abandoned orders in the 
AbandonedOrderService
component; see Defining and Detecting 
Abandoned Orders
REANIMATED  The order was previously abandoned or lost but has since been modified 
by the customer in some way, for example, by changing item quantities. 
CONVERTED 
The order was previously abandoned or lost but has since been checked 
out by the customer. 
LOST 
An abandoned order that meets the criteria for identification as lost. 
Typically, a lost order is one that has been idle for a specific number of 
days. 
You define the criteria for lost orders in the 
AbandonedOrderService
component; see Defining and Detecting Abandoned Orders
Order Repository Extensions 
The Abandoned Order Services module extends the repository definition for the order repository by 
adding: 
an additional property named 
abandonmentInfo
to the 
order
item descriptor. This 
property stores an item of type 
abandonmentInfo
an additional item descriptor named 
abandonmentInfo
. This item stores the 
abandonment information for an order. 
The following table describes each 
abandonmentInfo
property: 
Property 
Description 
version 
An integer that indicates the number of times the item has been 
modified. 
order 
The 
order
item associated with this 
abandonmentInfo
item. 
orderId 
The ID of the order. 
ATG  C om merce  P ro gra mm in g  G ui d e 
51 2  
22  -  Us i n g  A ban d on ed   Ord er  Servi ces  
orderLastUpdated 
The date the order was most recently modified. This property is 
used to detect activity on abandoned orders. 
It is important to distinguish this property from the 
lastModifiedDate
order property, which is updated whenever a 
session is created for a user who has an incomplete order 
associated with his or her profile. The 
lastModifiedDate
order 
property cannot be used to accurately detect abandoned order 
activity (or, more specifically, lack thereof) because it is updated 
even when a user has not accessed an incomplete order. 
state 
The order’s current abandonment state. For a list of possible 
states, see Abandonment States above. 
abandonmentCount 
The number of times the order has been identified as 
ABANDONED. Because an order can be abandoned multiple times, 
this count can be greater than one. 
abandonmentDate 
The date and time that the order was most recently abandoned. 
reanimationDate 
The date and time that the order was most recently reanimated. 
conversionDate 
The date and time that the order was converted, that is, checked 
out successfully. 
lostDate 
The date and time that the order was most recently lost. 
For more information, see the definition file at 
<ATG10dir>/DCS/AbandonedOrderServices/config/atg/commerce/order/orderrepository.xm
l
Profile Repository Extensions 
The Abandoned Order Services module extends the repository definition for the profile repository by 
adding: 
an additional item descriptor named 
abandoned-order
. Items of this type have two 
properties: 
orderId
, which stores the ID of the abandoned order. 
profileId
, which stores the ID of the user profile associated with the 
abandoned order. 
two additional properties to the 
user
item descriptor: 
abandonedOrders
, which stores the list of 
abandoned-order
items currently 
associated with the user. 
abandonedOrderCount
, which is a derived property that stores the number of 
items in the 
abandonedOrders
user property. 
Documents you may be interested
Documents you may be interested